前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次mac安装Kubernetes

记一次mac安装Kubernetes

作者头像
用户3904122
发布2022-06-29 14:57:16
8710
发布2022-06-29 14:57:16
举报
文章被收录于专栏:光华路程序猿光华路程序猿

家里老的台式机已经被淘汰掉了,之前kubeadm方式按照的k8s集群也不复存在,打算在mac上使用Docker Desktop安装了一下单节点的Kubernetes尝尝鲜,果然又踩坑了,随手记录下。

安装Docker Desktop

传送门(https://www.docker.com/products/docker-desktop)按照提示安装即可,这里不再赘述。

因为有些镜像国内访问需要加速,所以可以配置下镜像,这里推荐七牛云、中科大、Azure、网易云、阿里云、Docker-cn的源。Preferencs->Docker Engine

代码语言:javascript
复制
{
  "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
  }
}

启用kubernetes

Docker Desktop设置中选中Enable Kubernetes选项,Apply&Restart即可。

到这一步就尴尬了,一直处于Starting...状态。

总结了下网上的解决办法:

  1. 卸载重装下docker 需要注意的是: 卸载重装之后Docker Engine配置脚本中的镜像配置就被重置了,卸载前注意备份。
  2. 检查hosts
代码语言:javascript
复制
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
  1. 删除相关文件 (操作时最好做下备份)
代码语言:javascript
复制
rm -rf ~/.docker
rm -rf ~/.kube
rm -rf ~/Library/Group\ Containers/group.com.docker/pki/
  1. 下载Kubernetes镜像

绝大多数处于Starting状态的原因都是因为下载不下来Kubernetes镜像导致的,原因都懂。好在有人帮忙准备好了一份脚本,传送门:(https://github.com/AliyunContainerService/k8s-for-docker-desktop)

使用起来也比较简单,先确定自己安装的Kubernetes的版本

docker desktop

然后执行下面命令即可。

代码语言:javascript
复制
git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git
cd k8s-for-docker-desktop
# 根据自己版本选择分支
git checkout $targetBranch
./load_images.sh

等待下载完毕,重启Docker和Kubernetes即可

代码语言:javascript
复制
$ 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

启用 Dashboard(可选)

Kubernetes Dashboard是一个管理Kubernetes集群的全功能Web界面,其旨在以UI的方式完全替代命令行工具(kubectl 等)。需要注意的是,因为 Dashboard 的版本是单独演进的,参见 https://github.com/kubernetes/dashboard 。当前版本为 v2.2.0。

安装

代码语言:javascript
复制
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

或者你也可以选择使用Helm来安装

代码语言:javascript
复制
https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard

要从你的本地工作站访问Dashboard,你必须创建一个通往Kubernetes集群的安全通道。运行以下命令:

代码语言:javascript
复制
$ kubectl proxy
Starting to serve on 127.0.0.1:8001

然后,打开浏览器,通过如下 URL 访问 Kubernetes Dashboard

代码语言:javascript
复制
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

此时会提示你需要一个token来进行登录

dashboard token

创建一个认证token(RBAC)

Kubernetes Dashboard 登录

通过以下脚本,配置访问控制台所需的令牌。macOS 平台:

代码语言:javascript
复制
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 平台:

代码语言:javascript
复制
~/.kube/config

然后你就可以进入dashborad主界面:

kubernetes dashboard

值得一提的是,Docker Desktop还为我们提供了Troubleshoot的功能

troubleshoot

如果在使用 Docker 中还是出现各种异常,可以考虑使用状态栏图标的下拉菜单项 “Troubleshoot”,打开故障排除对话框,以解决各种疑难杂症。比如:如果是从旧版本升级,出现始终无法正常启动时,可以 Clear / Purge Data 一下,完全从头再执行一遍。

这种方式安装的Kubernetes缺点是只有单个节点,无法体验Kubernetes完整的功能。好处是对于新手学习和测试比较方便。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光华路程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Docker Desktop
  • 启用kubernetes
  • 启用 Dashboard(可选)
    • 安装
      • 创建一个认证token(RBAC)
      相关产品与服务
      容器镜像服务
      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档