minikube 是 K8S 官方为了开发者能在个人电脑上运行 K8S 而提供的一套工具。实现上是通过 Go 语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。
本次安装的minikube版本为1.2.0(k8s 1.15.0),并没有安装最新版1.9.2,原因是我要基于k8s安装kubeflow,kubeflow对k8s 1.16及以上版本存在兼容性问题,所以为避免不必要的麻烦就安装了老版本的minikube。
安装docker
1 | apt-get update |
测试是否安装成功
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 | chmod +x ./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 | 😄 minikube v1.2.0 on linux (amd64) |
执行sudo minikube status
查看minikube运行情况
1 | host: Running |
查看pod运行情况
1 | sudo kubectl get pods --all-namespaces |
如下pod运行正常
1 | NAMESPACE NAME READY STATUS RESTARTS AGE |
执行sudo minikube dashboard
打开Kubernetes控制台
1 | 🤔 Verifying dashboard health ... |
为了安全起见,默认情况下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 | export INGRESS_HOST=$(sudo minikube ip) |