Macos下安装Docker和Kubernutes最方便的工具就是Docker Desktop 了。
安装Docker 访问Docker Desktop 官网,点击下载Mac版。会跳转到dockerhub进行下载。需要注册dockerhub才可以进行下载。
下载过后双击Docker.dmg文件进行安装即可。 安装完毕后,Docker就可以正常使用了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ docker version
Client: Docker Engine - Community
Version: 19.03.4
API version: 1.40
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:44:48 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.4
API version: 1.40 (minimum version 1.12)
Go version: go1.12.10
Git commit: 9013bf5
Built: Thu Oct 17 23:50:38 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
$
安装Kubernetes 说明 原先是想按照官方推荐,安装minikube的。可折腾了一下没成功。转而尝试用Docker Desktop自带的kubernetes。 以下步骤参照了如下两篇文章结合实际的安装步骤,记录如下:
安装步骤 Docker Desktop 中自带了Kubernetes,以stable 2.1.0.4为例。自带了v1.14.7的Kubernetes
照道理直接在Preference中Enable Kubernetes即可使用了。可是kubernetes的安装需要去k8s.gcr.io下载镜像。国内没法直接访问。 直接Enable kubernetes的话,会一直处在Kubernetes is starting
状态。
解决办法是手动先从其他地方下载kubernetes相关的image,然后再打上原始的tag。 github上有前人制作了相关的工具,k8s-docker-desktop-for-mac
git clone代码到本地1
git clone https://github.com/gotok8s/k8s-docker-desktop-for-mac.git
然后修改images文件中kubernetes的版本号为Docker Desktop集成的Kubernetes的版本。 以v1.14.7为例,我修改后的版本如下:1
2
3
4
5
6
7
k8s.gcr.io/kube-proxy:v1.14.7=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.7
k8s.gcr.io/kube-controller-manager:v1.14.7=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.14.7
k8s.gcr.io/kube-scheduler:v1.14.7=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.14.7
k8s.gcr.io/kube-apiserver:v1.14.7=registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.14.7
k8s.gcr.io/coredns:1.3.1=gotok8s/coredns:1.3.1
k8s.gcr.io/pause:3.1=gotok8s/pause:3.1
k8s.gcr.io/etcd:3.3.10=gotok8s/etcd:3.3.10
修改点有两处:
替换原版本为v1.14.7,
修改了原文件中dockerhub上的地址为阿里云的docker镜像地址
执行./load_images.sh
,安装镜像并打上k8s.gcr.io的tag。
再在Docker Desktop 的Preferences中开启Enable Kubernetes,就可以启动Kubernetes了。
使用命令kubectl version
来验证Kubernetes服务。如果能同时显示Client和Server的Version,就说明启动成功。1
2
3
4
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.7", GitCommit:"8fca2ec50a6133511b771a11559e24191b1aa2b4", GitTreeState:"clean", BuildDate:"2019-09-18T14:47:22Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.7", GitCommit:"8fca2ec50a6133511b771a11559e24191b1aa2b4", GitTreeState:"clean", BuildDate:"2019-09-18T14:39:02Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
$
Unable to connect to the server的异常 在安装过程中,启动了Kubernetes,但执行命令就报Unable to connect to the server: EOF
的错误。 按照Kubernetes on Mac is stuck very often. Needs restart all the time. 的说明,调高了内存
再执行kubectl version
,还是报Unable to connect to the server: EOF
错误。多次Reset Kubernetes也还是不行。 折腾了一通,最后发现是原先Terminal中装minikube时修改了部分环境变量。重新起一个Terminal后,就可以访问到kubernetes服务了。
Reference