Kubernetes
是Google
和RadHat
公司共同主導的開源容器編排專案,功能非常強大,也非常的火熱和流行,但同時裡面也有很多的概念和名詞需要我們去學習和理解。學習任何一個技術先需要把基礎環境搭建起來,本篇就介紹怎樣在Mac
中啟動單節點的Kubernetes
。
環境
- Mac:10.13.6
- Docker:2.0.0.3 (31259)
- Kubernetes:1.10.11
啟用Kubernetes
在Mac
中安裝了Docker
之後,會自動安裝了Kubernetes
,正常情況下,我們只需要在Docker
的Preferrences->Kubernetes
中勾選Enable Kubernetes
,然後點選Apply
按鈕即可。但由於偉大的牆的存在,這麼一個簡單的啟動也會變得一波三折。
如果您是直接在Docker
中啟用Kubernetes
,Kubernetes
的狀態會一直都是kubernetes is starting...
,原因是有一些Kubernetes
依賴的映象不能正常的下載。
Github
上有個開源專案可以幫我們手動拉取映象,執行下麵命令拉去改專案程式碼到本地
git clone https://github.com/maguowei/k8s-docker-for-mac |
在Docker
中修改映象地址為國內,如下圖:
在命令列進入到k8s-docker-for-mac
目錄,執行sh load_images.sh
就可以拉去映象了。
且慢,如果您直接執行了上面拉取映象的命令,還是不能正常啟用Kubernetes
,因為有些映象的版本沒對應上。修改k8s-docker-for-mac
目錄中的images
檔案,將所有的v1.13.0
修改為v1.10.11
,因為我本機的Kubernetes
版本為1.10.11
。
修改完儲存後,再執行sh load_images.sh
拉去映象即可。
映象拉取完成後,勾選Enable Kubernetes
,點選Apply
按鈕,等待幾分鐘,出現下圖的狀態表示啟用成功。
執行dashboard
Kubernetes dashboard
是一個Web
介面的管理工具,如果您習慣使用命令列可以可以忽略。執行下麵命令:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml kubectl proxy #預設情況下代理的是8001埠,如果要指定埠用下麵命令 kubectl proxy –port=8080 |
執行上面命令後,會監聽本機的8001
的埠,這時訪問http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login,可以進入登入介面,如下圖:
我們採用令牌的方式進行登入,首先建立管理員角色,新建一個名為k8s-admin.yaml
的檔案,內容如下:
apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kube-system — kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: dashboard-admin subjects: – kind: ServiceAccount name: dashboard-admin namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io |
在命令列中進入到k8s-admin.yaml
檔案所在目錄,執行下麵命令新增管理員角色
kubectl create -f k8s-admin.yaml |
獲取管理員角色的secret
名稱
kubectl get secret -n kube-system |
獲取token
值
kubectl describe secret dashboard-admin-token-tc5wk -n kube-system |
secret
後面名稱就是上圖中紅框的名稱
將登陸介面切換到令牌的樣式,上圖中的token
值貼上到令牌輸入框中,點選登入可以進入到管理介面,如下圖:
總結
學習任何一個新的知識領域,即便是很簡單的一些操作流程,也會遇到各種各樣的問題,解決這些問題的過程就是學習和成長。
Kubernetes
的功能非常強大,不急於在一開始就弄懂所有的概念和操作命令,關鍵在於要動手去嘗試,在一次次的嘗試中積累的經驗才能讓你理解的更深入。
所以,接下來就要嘗試將dotNetCore
程式部署到Kubernetes
中了。
朋友會在“發現-看一看”看到你“在看”的內容