千家信息网

Minikube如何搭建Kubernetes集群

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Minikube如何搭建Kubernetes集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Minikube打开
千家信息网最后更新 2026年11月03日Minikube如何搭建Kubernetes集群

这篇文章主要介绍了Minikube如何搭建Kubernetes集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Minikube

打开 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下载最新版本的二进制软件包(deb、rpm包),再使用 apt 或 yum 安装。

或者直接下载 minikube 最新版本二进制文件(推荐)。

curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.19.0/minikube-linux-amd64# 上面的是阿里云构建的版本,如果使用 google 构建的,需要翻qiang。#linux版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64#win版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin

通过 minikube version 命令可以查看 minikube 的版本,接下来我们使用 minikube start 命令,可以直接创建一个 kubernetes 集群。minikube 会自动下载 kubeadm、kubectl、kubelet。

如果启动不起来,可以创建一个 docker 用户。

    useradd -m docker    passwd docker    # 修改密码后,加入用户组    gpasswd -a docker docker

打开 /etc/sudoers 文件,在 root ALL=(ALL:ALL) ALL 下 增加新的一行:

docker ALL=(ALL)ALL

然后切换为 docker 用户:su docker 。

笔者注:如果使用 root 用户启动 minikube 命令,会提示错误,需要使用非 root 用户(一般为docker)。如果你不想切换为别的用户,可以使用 --driver==none。

minikube start --driver=none
* Pulling base image ...* Downloading Kubernetes v1.20.2 preload ...    > preloaded-images-k8s-v10-v1...: 491.71 MiB / 491.71 MiB  100.00% 60.04 Mi    > gcr.io/k8s-minikube/kicbase...: 357.67 MiB / 357.67 MiB  100.00% 7.41 MiB* Creating docker container (CPUs=2, Memory=4000MB) .../

接下来 minikube 会拉取各种镜像,需要一些时间。minikube 完成初始化后,打开新的终端窗口,执行 minikube dashboard 启动面板,根据 URL 地址,可以访问面板。

PS:如果报 X Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.20.2 requires conntrack to be installed in root's path,则需要安装 constrack ,apt install constrack。

正常的话,执行 docker ps 后是这样的。

脚本

如果觉得麻烦。。。可以用脚本。。。

新建一个 start.sh,文件内容如下:

echo -n "Starting Kubernetes..."minikube versionminikube start --wait=falsesleep 2n=0until [ $n -ge 10 ]do   minikube addons enable dashboard && break   n=$[$n+1]   sleep 1donesleep 1n=0until [ $n -ge 10 ]do   kubectl apply -f /opt/kubernetes-dashboard.yaml &>/dev/null  && break   n=$[$n+1]   sleep 1doneecho "Kubernetes Started"

新建一个 kubernetes-dashboard.yaml ,文件内容如下:

apiVersion: v1kind: Namespacemetadata:  labels:    addonmanager.kubernetes.io/mode: Reconcile    kubernetes.io/minikube-addons: dashboard  name: kubernetes-dashboard  selfLink: /api/v1/namespaces/kubernetes-dashboardspec:  finalizers:  - kubernetesstatus:  phase: Active---apiVersion: v1kind: Servicemetadata:  labels:    app: kubernetes-dashboard  name: kubernetes-dashboard-katacoda  namespace: kubernetes-dashboardspec:  ports:  - port: 80    protocol: TCP    targetPort: 9090    nodePort: 30000  selector:    k8s-app: kubernetes-dashboard  type: NodePort

把 kubernetes-dashboard.yaml 放到 /opt 目录中。

然后启动 启动 start.sh 即可。

创建 Deployment

Kubernetes Deployment 可以检查 Pod 的健康状况,并在 Pod 中的容器终止的情况下重新启动新的容器。

deployment 可以部署应用并管理实例数量,它提供了一种故障的自我修复机制,当应用挂了后,deployment 可以自动启动一个新的实例,维护固定数量的 pod。

kubectl create 命令创建管理 Pod 的 Deployment。

kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4# k8s.gcr.io/echoserver:1.4 是镜像名称,hello-node 是 node 名称

k8s.gcr.io/echoserver 镜像暴露了 8080 端口。

查看 Deployment:

kubectl get deployments

查看 pod :

kubectl get pods

查看集群事件:

kubectl get events

查看 kubectl 配置:

kubectl config view

创建 Service

默认情况下,pod 只能在 kubernetes 集群的内部网络访问,如果要外部网络访问,则需要暴露 pod 为 kubnetes service。这里我们把上一小节的 hello-node 节点暴露出去。

kubectl expose deployment hello-node --type=LoadBalancer --port=8080

然后查看刚刚创建的 service:

kubectl get services
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGEhello-node   LoadBalancer   10.96.194.154        8080:31686/TCP   85skubernetes   ClusterIP      10.96.0.1               443/TCP          22m

然后试用 minikube service 提供一个 ip 供外界访问。

minikube service hello-node
root@instance-1:~# minikube service hello-node|-----------|------------|-------------|-------------------------|| NAMESPACE |    NAME    | TARGET PORT |           URL           ||-----------|------------|-------------|-------------------------|| default   | hello-node |        8080 | http://10.170.0.2:31686 ||-----------|------------|-------------|-------------------------|* Opening service default/hello-node in default browser...  http://10.170.0.2:31686

清理集群资源

首先生成 service、deployment 。

kubectl delete service hello-nodekubectl delete deployment hello-node

然后停止 Minikube 虚拟机(VM):

minikube stop

接着删除 Minikube 虚拟机(VM):

minikube delete

感谢你能够认真阅读完这篇文章,希望小编分享的"Minikube如何搭建Kubernetes集群"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

集群 版本 用户 命令 文件 篇文章 镜像 接下来 二进制 内容 名称 实例 容器 情况 数量 网络 脚本 面板 切换 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司怎么样 广州紫鲸互联网科技有限公司 蓝思科技飞鸽互联网 科技创新与互联网经济 港股互联网科技股 互联网科技革命 北京禾田雨橡互联网科技 万达互联网科技 互联网科技小额贷款 盛创互联网科技有限公司 联恩商钥互联网科技有限公司 以后互联网后是啥科技 茂名市互联网科技产业园 苏州五指互联网络科技有限 天津腾达互联网科技有限公司 河南住房之家互联网科技 中科明德北京互联网科技 小米互联网科技园入驻 梅州GM互联网络科技有限公司 绵阳真晨互联网科技有限公司 互联网与科技 喔噻互联网科技有限公司 百单网互联网科技有限公司怎么样 南京欣网互联网科技 盛创互联网科技有限公司 互联网巨头投资的硬核科技 中国航天科技大学国际工业互联网 千方科技属于互联网企业吗 互联网科技职业技能培训学校 如何强化互联网金融科技
0