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

1 前言

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

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

2 問題Kubernetes is starting

2.1 卡在starting

當Mac安裝完Docker Desktop後,能夠啓動Docker了,而要啓動Kubernetes,須要Enablegithub

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

2.2 下載鏡像

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

將倉庫克隆下來:bash

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

沒有問題就能夠執行腳本拉取相關鏡像:app

$ ./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獲取更多精彩文章!

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

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

相關文章
相關標籤/搜索