赞
踩
学习 kubernetes (下文简称为 k8s)的前提是需要一个 k8s 运行环境。k8s 官网上推荐使用 minikube 开始 k8s 的学习之旅。由于自己的 mac 上已安装了 docker desktop(下文简称 desktop),且 desktop 集成了 kubernetes 功能,可以满足最快完成 k8s 学习环境搭建的需求。
如果没有安装 docker desktop,可以直接下载最新版本进行安装。如果已安装 docker,为了更新至最新版本,也可以使用下载最新版本安装的方式进行版本更新。下载地址:https://www.docker.com/products/docker-desktop。
成功安装 desktop,可以在 About 菜单中看到其版本号:

为了更顺畅地运行 k8s,调整 desktop 的资源配置:

上图底部可以看到 kubernetes 已正常运行,这是由于作者已成功搭建好 k8s 环境,读者可参考资源配置的情况即可。
为了运行 k8s ,desktop 需要下载 k8s 相关的镜像。如果通过直接在 desktop 运行 k8s ,会一直看到 k8s 在启动中的状态提示,无法成功运行 k8s。因此,可以通过先下载 k8s 镜像,再运行 k8s 的方式来将 k8s 运行起来。
为加速 docker 镜像的下载,配置国内 docker 镜像源:

即配置如下:
{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://xxxxxxx.mirror.aliyuncs.com",
"https://reg-mirror.qiniu.com",
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"https://hub-mirror.c.163.com",
"https://registry.docker-cn.com"
]
}
其中,阿里云镜像加速器地址,可以在阿里云容器镜像服务中申请得到,此处不再赘述。
参考 k8s 镜像的下载脚本(链接),编写 shell 脚本 docker-images-k8s.sh:
#!/bin/bash set -e KUBE_VERSION=v1.18.8 KUBE_PAUSE_VERSION=3.2 ETCD_VERSION=3.4.3-0 COREDNS_VERSION=1.6.7 GCR_URL=k8s.gcr.io ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers # get images images=(kube-proxy:${KUBE_VERSION} kube-scheduler:${KUBE_VERSION} kube-controller-manager:${KUBE_VERSION} kube-apiserver:${KUBE_VERSION} pause:${KUBE_PAUSE_VERSION} etcd:${ETCD_VERSION} coredns:${COREDNS_VERSION}) for imageName in ${images[@]} ; do docker pull $ALIYUN_URL/$imageName docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName docker rmi $ALIYUN_URL/$imageName done # show images docker images
执行该脚本,即可以完成 k8s 镜像的下载。
在 desktop 勾选 Enable Kubernetes,这时,就可以看到 k8s 可以正常运行起来了:

kubectl 可以用来操作 k8s。可以在 github 上下载指定版本的 kubectl,下载地址:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.18.md#client-binaries
下载后,解压,然后将 kubectl 复制到 /usr/local/bin 目录:
$ tar zxvf kubernetes-client-darwin-amd64.tar.gz
$ cd ./kubernetes/client/bin
$ chmod +x kubectl && mv kubectl /usr/local/bin/kubectl
完成上述操作后,执行 kubectl version,输出:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:12:48Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:04:18Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}
安装 k8s dashboard 是可选的,即使不安装,也可以使用 kubectl 命令来操作 k8s。
如果需要安装 k8s dashboard,需要下载相关的镜像,镜像下载脚本 docker-images-dashboard.sh:
#!/bin/bash set -e KUBE_DASHBOARD_VERSION=v2.0.3 METRICS_SCRAPER=v1.0.4 KUBENETESUI_URL=kubernetesui ALIYUN_KUBENETESUI_URL=registry.cn-hangzhou.aliyuncs.com/kubernetes_ns # get images (ui) imagesui=(dashboard:${KUBE_DASHBOARD_VERSION} metrics-scraper:${METRICS_SCRAPER}) for imageName in ${imagesui[@]} ; do docker pull $ALIYUN_KUBENETESUI_URL/$imageName docker tag $ALIYUN_KUBENETESUI_URL/$imageName $KUBENETESUI_URL/$imageName docker rmi $ALIYUN_KUBENETESUI_URL/$imageName done # show images docker images
同样地,执行 docker-images-dashboard.sh 脚本。
下载 recommended.yaml 到本地,然后执行:
kubectl apply -f recommended.yaml
在 https://github.com/kubernetes/dashboard/releases/tag/v1.10.1 下载 kubernetes-dashboard.yaml(目录:src/deploy/recommended/kubernetes-dashboard.yaml),然后执行:
kubectl apply -f kubernetes-dashboard.yaml
执行成功后,启动 K8s api server 访问代理:
kubectl proxy
为生成访问 dashboard 的 token,创建 token.sh 脚本:
TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN
执行:
chmod +x token.sh
./token.sh
打开 dashboard 地址 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login,复制上面生成的 token,登录成功后,可以看到页面:

就这样,docker desktop 的 k8s 环境就搭建好了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。