下載 Docker Desktop 按提示進行安裝。html
點擊 Docker 圖標,選擇 Preferences... > Kubernetes 進入 Kubernetes 配置頁:git
而後勾選 Enable Kubernetes,點擊下方 Apply 按鈕,啓動 Kubernetes。github
這樣就大功告成了?每每事情並不會這麼順利。因爲衆所周知的緣由,啓動 Kubernetes 所需的鏡像每每會下載失敗,因而點擊 Apply 後,該配置頁面的右下角始終顯示 Kubernetes is starting,沒法正常啓動。docker
Docker Desktop for Mac 開啓並使用 Kubernetes 爲該問題提供瞭解決方案。編程
咱們先將該倉庫拉取到本地:api
git clone git@github.com:maguowei/k8s-docker-desktop-for-mac.git
複製代碼
而後確認一下 Docker Desktop 自帶的 Kubernetes 的版本。點擊 Docker 圖標,選擇 About Docker Desktop,看到以下界面:bash
能夠看到 Kubernetes 的版本是 v1.14.6。app
以後咱們打開 k8s-docker-desktop-for-mac 項目下的 images 文件:curl
$ cat images
k8s.gcr.io/kube-proxy:v1.14.6=gotok8s/kube-proxy:v1.14.6
k8s.gcr.io/kube-controller-manager:v1.14.6=gotok8s/kube-controller-manager:v1.14.6
k8s.gcr.io/kube-scheduler:v1.14.6=gotok8s/kube-scheduler:v1.14.6
k8s.gcr.io/kube-apiserver:v1.14.6=gotok8s/kube-apiserver:v1.14.6
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
複製代碼
確保文件中的 Kubernetes 版本號與 Docker Desktop 自帶的 Kubernetes 版本號一致後,執行命令:ui
./load_images.sh
複製代碼
該命令會幫助咱們拉取啓動 Kubernetes 所需的全部鏡像。命令執行完畢後,點擊 Docker 圖標,在 Preferences.. > Reset 界面中點擊 Reset Kubernetes cluster,重啓 Kubernetes。大功告成!
執行 kubectl 命令時出現報錯:
Unable to connect to the server: unexpected EOF
複製代碼
在 Github 上摸到了一個相關的 Issue:Kubernetes on Mac is stuck very often. Needs restart all the time。
最終的解決方案是在 Advanced 配置界面中將 Memory 調大,而後重啓 Docker。
因爲可能會存在多個集羣,咱們須要把集羣切換爲 Docker Desktop 所帶的集羣。
先看下有哪些集羣:
kubectl config get-contexts
複製代碼
切換集羣:
kubectl config use-context docker-for-desktop
複製代碼
Kubernetes Dashboard 是 Kubernetes 集羣可視化的儀表盤。
通常來講咱們直接經過一行 kubectl 命令進行安裝就行了:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
複製代碼
但因爲衆所周知的緣由,鏡像仍是會下載失敗,pod 始終顯示 ImagePullBackOff。這須要咱們手動拉取所需鏡像。
先把 yaml 配置文件下載下來:
$ curl -O https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
複製代碼
查看 yaml 文件中的鏡像版本:
$ cat kubernetes-dashboard.yaml | grep kubernetes-dashboard
複製代碼
這是咱們須要的信息:
- name: kubernetes-dashboard
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
複製代碼
能夠看到鏡像版本爲 v1.10.1。
使用 docker pull
手動拉取鏡像:
$ docker pull gcrxio/kubernetes-dashboard-amd64:v1.10.1
複製代碼
使用 docker tag
修改鏡像名稱,讓鏡像名與配置文件中的鏡像名保持一致:
$ docker tag gcrxio/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
複製代碼
這樣一來,配置文件所須要的鏡像就已經下載到本地了。
但因爲配置文件默認的鏡像拉取方式仍是從遠程拉取,因而咱們要在配置文件中 image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
一行後添加:
imagePullPolicy: IfNotPresent
複製代碼
若是剛纔你已經執行了:
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
複製代碼
那麼先把這個啓動的 pod 刪除:
$ kubectl delete -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
複製代碼
接着使用咱們修改過的配置文件從新安裝 Dashboard:
$ kubectl delete -f kubernetes-dashboard.yaml
複製代碼
使用 kubectl 命令啓動 Dashboard:
$ kubectl proxy
複製代碼
啓動成功後,能夠經過該地址進行訪問 Dashboard:
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
進入 Dashboard 須要令牌,能夠經過如下命令獲取令牌:
$ kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}'
複製代碼
kubectl version
can't connect to local k8s master歡迎關注個人公衆號:編程拯救世界。在編程世界一塊兒冒險,一塊兒成長!