Mac上使用Docker Desktop啓動Kubernetes,踩坑後終於搞掂

1 前言

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

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

2 問題Kubernetes is starting

2.1 卡在starting

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

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

2.2 下載鏡像

所需鏡像可以手動一個個下載,當然也有人準備好了腳本可以一鍵下載,腳本在倉庫:https://github.com/hummerstudio/k8s-docker-desktop-for-mac 上。

將倉庫克隆下來:

$ 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版本:

沒有問題就可以執行腳本拉取相關鏡像:

$ ./load_images.sh

2.3 重啓驗證

下載完成後,重啓Kubernetes,驗證 Kubernetes 集羣狀態:

$ kubectl cluster-info
$ kubectl get nodes
$ kubectl describe node

3 安裝Dashboard

Dashboard並不是必須的,它可以方便我們查看和操作,建議還是安裝。將文件( https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml )下載到本地,然後執行以下命令即可:

$ 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 &

啓動後可登陸訪問:http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

界面如下:

需要獲取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界面如下所示:

4 總結

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


歡迎訪問南瓜慢說 www.pkslow.com獲取更多精彩文章!

歡迎關注微信公衆號<南瓜慢說>,將持續爲你更新...

多讀書,多分享;多寫作,多整理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章