最近在学习k8s,想搭建一个单机的环境以练习,于是尝试基于Docker for macOS的Kubernetes本地环境搭建与应用部署,杰哥的同名文章已经写的很清楚了,我还是搞下来,再加一点内容,主要加的是手动更新镜像解决网络问题的内容。
安装Docker for macOS
安装
下载最新的Docker for Mac Edge 版本,跟普通mac软件一样安装,然后运行它,会在右上角菜单栏看到多了一个鲸鱼图标,这个图标表明了 Docker 的运行状态。
配置镜像加速地址
鉴于国内网络问题,国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务。
点击设置菜单里的Preferences
可以在这里配置镜像仓库。
填入内容如下:
{
"experimental": true,
"features": {
"buildkit": true
},
"registry-mirrors": ["https://registry.docker-cn.com"]
}
检查docker环境
可执行以下命令检查docker环境
$ docker --version
Docker version 19.03.13, build 4484c46d9d
$ docker-compose --version
docker-compose version 1.27.4, build 40524192
# 如果 docker version、docker info 都正常的话,可以尝试运行一个 Nginx 服务器:
$ docker run -d -p 80:80 --name webserver nginx
# 访问一下Nginx服务器
$ curl http://localhost
# 停止 Nginx 服务器并删除
$ docker stop webserver
$ docker rm webserver
搭建k8s本地开发环境
启用k8s
点击设置菜单里的Preferences
,点击启动k8s的checkbox,这里会拉取比较多的镜像,可能要等好一会儿。(注意,这里如果你的网络真的不好,可能要等很长时间,但是没关系我们有更好的办法处理这个问题)
Mac下Docker Desktop的Kubernetes一直处于starting状态的解决办法
启用Kubernetes功能,Docker需要从镜像仓库拉取Kubernetes相关镜像。
由于国内访问Docker Hub网速太慢,镜像无法成功拉取,导致Kubernetes一直处于starting状态。
将此库的代码下载至本地,可直接在终端中执行下面的命令:
git clone git@github.com:hummerstudio/k8s-docker-desktop-for-mac.git
查看你的k8s版本,我的是v1.18.8
,在上一张图里面可以看到版本号。把image_list
里的全部如图的版本改成我们的目标版本
$ cat image_list
k8s.gcr.io/kube-proxy:v1.18.8=gotok8s/kube-proxy:v1.18.8
k8s.gcr.io/kube-controller-manager:v1.18.8=gotok8s/kube-controller-manager:v1.18.8
k8s.gcr.io/kube-scheduler:v1.18.8=gotok8s/kube-scheduler:v1.18.8
k8s.gcr.io/kube-apiserver:v1.18.8=gotok8s/kube-apiserver:v1.18.8
k8s.gcr.io/coredns:1.6.2=gotok8s/coredns:1.6.2
k8s.gcr.io/pause:3.1=gotok8s/pause:3.1
k8s.gcr.io/etcd:3.3.15-0=gotok8s/etcd:3.3.15-0
k8s.gcr.io/kubernetes-dashboard-amd64=gotok8s/kubernetes-dashboard-amd64:v1.10.1
执行根目录下load_images.sh脚本即可正常下载镜像:
sh load_images.sh
搞定以后重启docker,等一会就可以了。
检查k8s环境
可执行以下命令检查k8s环境
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready master 2d13h v1.18.8
$ kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
引用
Mac下Docker Desktop的Kubernetes一直处于starting状态的解决办法基于Docker for macOS的Kubernetes本地环境搭建与应用部署
评论