minikube安装教程

minikube 是 K8S 官方为了开发者能在个人电脑上运行 K8S 而提供的一套工具。实现上是通过 Go 语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。

本次安装的minikube版本为1.2.0(k8s 1.15.0),并没有安装最新版1.9.2,原因是我要基于k8s安装kubeflow,kubeflow对k8s 1.16及以上版本存在兼容性问题,所以为避免不必要的麻烦就安装了老版本的minikube。

安装docker

1
2
3
4
5
6
7
8
9
apt-get update
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
Stable"
apt-get update
apt-get install -y docker-ce

测试是否安装成功

1
docker run hello-world

安装kubectl

1
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl

如果由于墙的问题无法下载可以访问下面的github地址,点击选择对应版本md进入,找到client binaries(也就是kubectl),选择对应操作系统的客户端然后复制连接地址下载

1
https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG

赋予执行权限

1
2
chmod +x ./kubectl
sudo mv ./kubectl /usr/bin/kubectl

查看版本

1
sudo kubectl version --client

结果如下

1
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

安装minikube

下载minikube

1
https://github.com/kubernetes/minikube/releases/download/v1.2.0/minikube_1.2.0.deb

安装minikube

1
sudo dpkg -i minikube_1.2.0.deb

启动minikube

1
sudo minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --cpus 6 --memory 12288 --disk-size=120g --extra-config=apiserver.authorization-mode=RBAC --extra-config=kubelet.resolv-conf=/run/systemd/resolve/resolv.conf --extra-config kubeadm.ignore-preflight-errors=SystemVerification

执行结果如下表示部署启动成功

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
😄  minikube v1.2.0 on linux (amd64)
✅ using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
🔥 Creating none VM (CPUs=6, Memory=12288MB, Disk=120000MB) ...
🐳 Configuring environment for Kubernetes v1.15.0 on Docker 19.03.8
▪ apiserver.authorization-mode=RBAC
▪ kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
▪ kubeadm.ignore-preflight-errors=SystemVerification
▪ kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
🚜 Pulling images ...
🚀 Launching Kubernetes ...
🤹 Configuring local host environment ...

⚠️ The 'none' driver provides limited isolation and may reduce system security and reliability.
⚠️ For more information, see:
👉 https://github.com/kubernetes/minikube/blob/master/docs/vmdriver-none.md

⚠️ kubectl and minikube configuration will be stored in /home/liby
⚠️ To use kubectl or minikube commands as your own user, you may
⚠️ need to relocate them. For example, to overwrite your own settings:

▪ sudo mv /home/liby/.kube /home/liby/.minikube $HOME
▪ sudo chown -R $USER $HOME/.kube $HOME/.minikube

💡 This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
⌛ Verifying: apiserver proxy etcd scheduler controller dns
🏄 Done! kubectl is now configured to use "minikube"

执行sudo minikube status查看minikube运行情况

1
2
3
4
host: Running
kubelet: Running
apiserver: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.0.110

查看pod运行情况

1
sudo kubectl get pods --all-namespaces

如下pod运行正常

1
2
3
4
5
6
7
8
9
10
11
NAMESPACE         NAME                                                           READY   STATUS      RESTARTS   AGE
kube-system coredns-6967fb4995-svq2c 1/1 Running 79 3d19h
kube-system coredns-6967fb4995-wlk48 1/1 Running 79 3d19h
kube-system etcd-minikube 1/1 Running 0 13h
kube-system kube-addon-manager-minikube 1/1 Running 5 3d19h
kube-system kube-apiserver-minikube 1/1 Running 0 13h
kube-system kube-controller-manager-minikube 1/1 Running 45 3d19h
kube-system kube-proxy-fxp74 1/1 Running 5 3d19h
kube-system kube-scheduler-minikube 1/1 Running 37 3d19h
kube-system kubernetes-dashboard-95564f4f-ql2zr 1/1 Running 8 3d19h
kube-system storage-provisioner 1/1 Running 0 12h

执行sudo minikube dashboard打开Kubernetes控制台

1
2
3
4
🤔  Verifying dashboard health ...
🚀 Launching proxy ...
🤔 Verifying proxy health ...
🎉 Opening http://127.0.0.1:41123/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...

为了安全起见,默认情况下dashboard已经不向外提供服务,在我们学习过程中,总有些不方便,这时我们可以利用 kubectl proxy 命令来实现外网提供服务

1
nohup kubectl proxy --address='0.0.0.0' --port=8888 --accept-hosts='^*$' > dashboard.log &

minikube基本操作

检测集群状态

1
sudo kubectl cluster-info

minikube的配置文件在如下路径

1
~/.minikube/machines/minikube/config.json

检验node状态

1
sudo kubectl get nodes

停止运行中的kubernetes集群

1
sudo minikube stop

删除本地的kubernetes集群

1
sudo minikube delete

如果安装了kubeflow,通过以下命令获取Kubeflow Dashboard的访问ip和端口

1
2
export INGRESS_HOST=$(sudo minikube ip)
export INGRESS_PORT=$(sudo kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}’)
欢迎关注我的微信公众号,订阅最新文章!
🐶 您的支持将鼓励我继续创作 🐶
0%