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 &
界面如下:
需要獲取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獲取更多精彩文章!
歡迎關注微信公眾號<南瓜慢說>,將持續為你更新...
多讀書,多分享;多寫作,多整理。