Mac上使用Docker Desktop啟動Kubernetes,踩坑後才搞定

千鋒Python唐小強發表於2020-07-03

1 寫在前面

Kubernetes又簡稱k8s,是Google開源的容器叢集管理系統,最近也是火熱。閒來無事(為了發文),搗鼓了一下,在Mac上搭建Kubernetes,遇到一些坑,也記錄一下。

另外,Docker相關的概念可參考下面文章:Docker入門——理解Docker的核心概念。

2 問題Kubernetes is starting

2.1 卡在starting

當Mac安裝完Docker Desktop後,可以啟動Docker了,而要啟動Kubernetes,需要Enable。

Mac上使用Docker Desktop啟動Kubernetes,踩坑後才搞定

本以為就如此簡單方便,誰料一直顯示Kubernetes is starting,卡了很久都沒有反應。那是由於網路原因(你懂的),啟動Kubernetes所需要的映象無法下載。

2.2 下載映象

所需映象可以手動一個個下載,當然也有人準備好了指令碼可以一鍵下載,指令碼在倉庫: 上。

將倉庫克隆下來:

$ git 
clone https:
//github.com/hummerstudio/k8s-docker-desktop-for-mac.git

然後看一下檔案image_list上的版本跟自己安裝的版本能不能對得上,建議直接更新Docker Desktop為最新版本。

$ cat image_list

k8s.gcr. io/kube-proxy:v1 .16 .5=gotok8s/kube-proxy:v1 .16 .5
k8s.gcr. io/kube-controller-manager:v1 .16 .5=gotok8s/kube-controller-manager:v1 .16 .5
k8s.gcr. io/kube-scheduler:v1 .16 .5=gotok8s/kube-scheduler:v1 .16 .5
k8s.gcr. io/kube-apiserver:v1 .16 .5=gotok8s/kube-apiserver:v1 .16 .5
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

同為v1.16.5版本:

Mac上使用Docker Desktop啟動Kubernetes,踩坑後才搞定

沒有問題就可以執行指令碼拉取相關映象:

$ ./load_images.sh

2.3 重啟驗證

下載完成後,重啟Kubernetes,驗證 Kubernetes 叢集狀態:

$ kubectl cluster-info

$ kubectl get nodes
$ kubectl describe node

3 安裝Dashboard

Dashboard並不是必須的,它可以方便我們檢視和操作,建議還是安裝。將檔案( )下載到本地,然後執行以下命令即可:

$ kubectl apply -f recommended.yaml 

namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s. io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s. io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s. io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s. io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

啟動:

$ kubectl proxy

建議使用下面命令啟動,不然會一直佔著終端:

$ nohup kubectl proxy >
/dev/
null &

啟動後可登陸訪問:

介面如下:

Mac上使用Docker Desktop啟動Kubernetes,踩坑後才搞定

需要獲取Token,命令如下:

$ kubectl -n kube-system 
describe secret 
default| awk 
'$1=="token:"{print $2}'

eyJhbGciOiJSUzI1NiIsImtpZCI6IjNiT1o4eW5ORHpkVlp6Q2VJakxMOENlZEUxSU16YmRZcHZqV3BfXzhQTm8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLTJoNnpkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhODk5MDkwMS1hOWE4LTQyZTAtOGMxNi1iNmQwZTY1NjgyZTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.Oo1Sa5GcWC7SknJ_qoGgoIXyGJKIp1nB4ApZqvTsj32DcoAA4mBmo0VB_zqdmlG0x29FO132x_6I2ejOnCwZ9IRlUWBtEYsKCChZb9kUjbAA9FLyIln4AW0K3V7F1ns_YIKLYaudnkHJPWpqE2FXwTVDs-ZpGgUUk2Fs-Sw8KEFOLnHNFzi-lIajsbicmUMyKPimcv51vN-Mgc9gH-_PfvLKBL-h3vbsCep -0xsRE2zOtsfqv9cbaVNhFaYkVvZuYzCBD1TY9v5Q5R6jPsB2IBZzEYMKw8lHGNrPzN0vrKCM_VBRSeUgzUnjAH6MLuVVWbzBmYYiOluCjuAyKf1eWA

就可以透過Token登陸了。Dashboard介面如下所示:

Mac上使用Docker Desktop啟動Kubernetes,踩坑後才搞定

4 總結

至此,安裝已經完成,後面再透過一個小案例講解如何應用。注意我的電腦連了阿里雲的映象倉庫,需要設定的請自動Google。想玩k8s還有其它方式搭建環境,如Minikube,以後有機會再折騰吧。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2702320/,如需轉載,請註明出處,否則將追究法律責任。

相關文章