Mac中搭建Kubernetes
Kubernetes
是Google
和RadHat
公司共同主导的开源容器编排项目,功能非常强大,也非常的火热和流行,但同时里面也有很多的概念和名词需要我们去学习和理解。学习任何一个技术先需要把基础环境搭建起来,本篇就介绍怎样在Mac
中启动单节点的Kubernetes
。
启用Kubernetes
在Mac
中安装了Docker
之后,会自动安装了Kubernetes
,正常情况下,我们只需要在Docker
的Preferrences->Kubernetes
中勾选Enable Kubernetes
,然后点击Apply
按钮即可。但由于伟大的墙的存在,这么一个简单的启动也会变得一波三折。
如果您是直接在Docker
中启用Kubernetes
,Kubernetes
的状态会一直都是kubernetes is starting...
,原因是有一些Kubernetes
依赖的镜像不能正常的下载。
所以需要手动拉取镜像,执行命令修改项目tag。有多种开源项目已经有脚本执行。
###参考 k8s-docker-for-mac
Github
上有个开源项目可以帮我们手动拉取镜像,执行下面命令拉去改项目代码到本地
1 | git clone https://github.com/maguowei/k8s-docker-for-mac |
在命令行进入到k8s-docker-for-mac
目录,执行sh load_images.sh
就可以拉去镜像了。
且慢,如果您直接执行了上面拉取镜像的命令,还是不能正常启用Kubernetes
,因为有些镜像的版本没对应上。修改k8s-docker-for-mac
目录中的images
文件,将所有的v1.13.0
修改为v1.10.11
,因为我本机的Kubernetes
版本为1.10.11
。
修改完保存后,再执行sh load_images.sh
拉去镜像即可。
images
文件如下
1 | k8s.gcr.io/kube-proxy:v1.15.5=gotok8s/kube-proxy:v1.15.5 |
参考k8s-deploy
也可以参考另外一个
https://github.com/cookcodeblog/k8s-deploy/blob/master/kubeadm/04_pull_kubernetes_images_from_aliyun.sh
镜像拉取完成后,勾选Enable Kubernetes
,点击Apply
按钮,等待几分钟,出现下图的状态表示启用成功。
参考AliyunContainerService
也可以参考阿里云方式AliyunContainerService/k8s-for-docker-desktop
我尝试上面方式不成功,最终使用此方式成功。
错误处理
在Mac上,如果在Kubernetes部署的过程中出现问题,可以通过docker desktop应用日志获得实时日志信息:
1 | pred='process matches ".*(ocker|vpnkit).*" |
验证
验证 Kubernetes 集群状态
1 | kubectl cluster-info |
运行dashboard
Kubernetes dashboard
是一个Web
界面的管理工具,如果您习惯使用命令行可以可以忽略。执行下面命令:
1 | kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml |
执行上面命令后,会监听本机的8001
的端口,这时访问http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,可以进入登录界面,如下图:
我们采用令牌的方式进行登录,首先创建管理员角色,新建一个名为k8s-admin.yaml
的文件,内容如下:
1 | apiVersion: v1 |
在命令行中进入到k8s-admin.yaml
文件所在目录,执行下面命令添加管理员角色
1 | kubectl create -f k8s-admin.yaml |
获取管理员角色的secret
名称
1 | kubectl get secret -n kube-system |
获取token
值
1 | kubectl describe secret dashboard-admin-token-tc5wk -n kube-system |
secret
后面名称就是上图中红框的名称
将登陆界面切换到令牌的模式,上图中的token
值粘贴到令牌输入框中,点击登录可以进入到管理界面,如下图: