基于Docker for macOS的Kubernetes本地环境搭建与应用部署(解决网络问题)

2020年10月5日 1 135 views 2201字阅读7分20秒

最近在学习k8s,想搭建一个单机的环境以练习,于是尝试基于Docker for macOS的Kubernetes本地环境搭建与应用部署,杰哥的同名文章已经写的很清楚了,我还是搞下来,再加一点内容,主要加的是手动更新镜像解决网络问题的内容。

安装Docker for macOS

安装

下载最新的Docker for Mac Edge 版本,跟普通mac软件一样安装,然后运行它,会在右上角菜单栏看到多了一个鲸鱼图标,这个图标表明了 Docker 的运行状态。

DbHl6i1018

配置镜像加速地址

鉴于国内网络问题,国内从 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,这里会拉取比较多的镜像,可能要等好一会儿。(注意,这里如果你的网络真的不好,可能要等很长时间,但是没关系我们有更好的办法处理这个问题)

k8s版本

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本地环境搭建与应用部署

weinxin
公众号
在号内与我交流,回复【资源】获取技术大礼包
小熊