家里老的台式机已经被淘汰掉了,之前kubeadm
方式按照的k8s集群也不复存在,打算在mac上使用Docker Desktop
安装了一下单节点的Kubernetes尝尝鲜,果然又踩坑了,随手记录下。
传送门(https://www.docker.com/products/docker-desktop)按照提示安装即可,这里不再赘述。
因为有些镜像国内访问需要加速,所以可以配置下镜像,这里推荐七牛云、中科大、Azure、网易云、阿里云、Docker-cn的源。Preferencs->Docker Engine
{
"registry-mirrors": [
"https://xxx.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com",
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"https://registry.docker-cn.com"
],
"experimental": false,
"features": {
"buildkit": true
}
}
在Docker Desktop
设置中选中Enable Kubernetes
选项,Apply&Restart
即可。
到这一步就尴尬了,一直处于Starting...
状态。
总结了下网上的解决办法:
Docker Engine
配置脚本中的镜像配置就被重置了,卸载前注意备份。cat /etc/hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
rm -rf ~/.docker
rm -rf ~/.kube
rm -rf ~/Library/Group\ Containers/group.com.docker/pki/
绝大多数处于Starting
状态的原因都是因为下载不下来Kubernetes镜像导致的,原因都懂。好在有人帮忙准备好了一份脚本,传送门:(https://github.com/AliyunContainerService/k8s-for-docker-desktop)
使用起来也比较简单,先确定自己安装的Kubernetes的版本
docker desktop
然后执行下面命令即可。
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop
# 根据自己版本选择分支
git checkout $targetBranch
./load_images.sh
等待下载完毕,重启Docker和Kubernetes即可
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/desktop-kubernetes kubernetes-v1.19.7-cni-v0.8.5-critools-v1.17.0-debian 93b3398dbfde 2 months ago 285MB
k8s.gcr.io/kube-proxy v1.19.7 9d368f4517bb 3 months ago 118MB
k8s.gcr.io/kube-controller-manager v1.19.7 67b3bca112d1 3 months ago 111MB
k8s.gcr.io/kube-apiserver v1.19.7 c15e4f843f01 3 months ago 119MB
k8s.gcr.io/kube-scheduler v1.19.7 4fa642720eea 3 months ago 45.6MB
k8s.gcr.io/etcd 3.4.13-0 0369cf4303ff 7 months ago 253MB
k8s.gcr.io/coredns 1.7.0 bfe3a36ebd25 10 months ago 45.2MB
k8s.gcr.io/pause 3.2 80d28bedfe5d 14 months ago 683kB
Kubernetes Dashboard
是一个管理Kubernetes
集群的全功能Web界面,其旨在以UI的方式完全替代命令行工具(kubectl 等)。需要注意的是,因为 Dashboard 的版本是单独演进的,参见 https://github.com/kubernetes/dashboard 。当前版本为 v2.2.0。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml
或者你也可以选择使用Helm来安装
https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard
要从你的本地工作站访问Dashboard,你必须创建一个通往Kubernetes集群的安全通道。运行以下命令:
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
然后,打开浏览器,通过如下 URL 访问 Kubernetes Dashboard
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
此时会提示你需要一个token来进行登录
dashboard token
Kubernetes Dashboard 登录
通过以下脚本,配置访问控制台所需的令牌。macOS 平台:
TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN
复制生成的令牌字符串,并在登录对话框中选择“令牌”方式登录后,粘贴到输入框中,登录即可。
要想重新找到令牌字符串,可以查看 kubeconfig 文件。macOS 平台:
~/.kube/config
然后你就可以进入dashborad主界面:
kubernetes dashboard
值得一提的是,Docker Desktop还为我们提供了Troubleshoot
的功能
troubleshoot
如果在使用 Docker 中还是出现各种异常,可以考虑使用状态栏图标的下拉菜单项 “Troubleshoot”,打开故障排除对话框,以解决各种疑难杂症。比如:如果是从旧版本升级,出现始终无法正常启动时,可以 Clear / Purge Data 一下,完全从头再执行一遍。
这种方式安装的Kubernetes缺点是只有单个节点,无法体验Kubernetes完整的功能。好处是对于新手学习和测试比较方便。