Mac中搭建Kubernetes

KubernetesGoogleRadHat公司共同主導的開源容器編排項目,功能非常強大,也非常的火熱和流行,但同時裏面也有很多的概念和名詞需要我們去學習和理解。學習任何一個技術先需要把基礎環境搭建起來,本篇就介紹怎樣在Mac中啓動單節點的Kubernetes

環境

  • Mac:10.12.5
  • Docker:2.1.0.4 (39773)
  • Kubernetes:v1.14.7

啓用Kubernetes

Mac中安裝了Docker之後,會自動安裝了Kubernetes,正常情況下,我們只需要在DockerPreferrences->Kubernetes中勾選Enable Kubernetes,然後點擊Apply按鈕即可。但由於偉大的牆的存在,這麼一個簡單的啓動也會變得一波三折。

如果您是直接在Docker中啓用KubernetesKubernetes的狀態會一直都是kubernetes is starting...,原因是有一些Kubernetes依賴的鏡像不能正常的下載。

Github上有個開源項目可以幫我們手動拉取鏡像,執行下面命令拉去改項目代碼到本地

git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop

Docker中修改鏡像地址爲國內,紅色框內容可以是daocloud等自己註冊的鏡像加速器地址,如下圖:

640?wx_fmt=png

在命令行進入到k8s-docker-for-mac目錄,執行sh load_images.sh就可以拉去鏡像了。

且慢,如果您直接執行了上面拉取鏡像的命令,還是不能正常啓用Kubernetes,因爲有些鏡像的版本沒對應上。修改k8s-docker-for-mac目錄中的images文件,將所有的v1.13.0修改爲v1.10.11,因爲我本機的Kubernetes版本爲1.10.11

在命令行進入到k8s-docker-for-mac目錄,檢出對應自己電腦安裝的k8s版本,本機爲例:git checkout v1.14.7,再執行sh load_images.sh拉去鏡像即可。

鏡像拉取完成後,勾選Enable Kubernetes,點擊Apply按鈕,等待幾分鐘,出現下圖的狀態表示啓用成功。

640?wx_fmt=jpeg

運行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,可以進入登錄界面,如下圖:

640?wx_fmt=jpeg

我們採用令牌的方式進行登錄,首先創建管理員角色,新建一個名爲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

640?wx_fmt=png

獲取token

kubectl describe secret dashboard-admin-token-tc5wk -n kube-system

 

secret後面名稱就是上圖中紅框的名稱

640?wx_fmt=png

將登陸界面切換到令牌的模式,上圖中的token值粘貼到令牌輸入框中,點擊登錄可以進入到管理界面,如下圖:

640?wx_fmt=jpeg

總結

學習任何一個新的知識領域,即便是很簡單的一些操作流程,也會遇到各種各樣的問題,解決這些問題的過程就是學習和成長。

Kubernetes的功能非常強大,不急於在一開始就弄懂所有的概念和操作命令,關鍵在於要動手去嘗試,在一次次的嘗試中積累的經驗才能讓你理解的更深入。

所以,接下來就要嘗試將dotNetCore程序部署到Kubernetes中了。

原文地址:http://fwhyy.com/2019/05/building-kubernetes-in-mac/

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