借助MicroK8s分分鐘部署單節(jié)點Kubernetes實例
譯文【51CTO.com快譯】有時你可能想要創(chuàng)建Kubernetes的單節(jié)點實例,比如說正在開發(fā)應用程序或服務,需要對其進行測試。發(fā)布到生產(chǎn)環(huán)境之前,何不將它部署到Kubernetes測試平臺上呢?或許你在竭力改進Kubernetes開發(fā)技能。用于開發(fā)和測試的優(yōu)秀實例之一是單節(jié)點,而不是完整的Kubernetes集群。
但如何啟動并運行這個單節(jié)點?有很多方法可以實現(xiàn)。可以走Minikube這條路,或者啟動標準Kubernetes安裝的完整單節(jié)點,也可以使用Microk8s(https://microk8s.io/)。
Microk8s由Canonical管理,是一種非彈性的、基于rails的單節(jié)點Kubernetes工具,主要面向離線開發(fā)、原型設計和測試。Microk8s包括以下功能:
- Istio
- GPGPU綁定
- 每日構建
- 本地存儲
- 本地注冊中心
- 更新
- 儀表板
- 度量指標
- 升級
- IngressDNS
- Conformant
Microk8s已作為一個快照包而創(chuàng)建,因此為了安裝和使用,你得擁有支持這種特定通用打包格式的Linux發(fā)行版。我會演示如何在Ubuntu Desktop 19.04發(fā)行版上啟動和運行Microk8s。
安裝
Microk8s的安裝很簡單。但在安裝之前,確保你的發(fā)行版已更新。一旦完成該過程,打開終端窗口,執(zhí)行命令(圖A):
圖A. 從命令行安裝Microk8s
- sudo snap install microk8s --edge --classic
命令完成后,你需要啟動Microk8s。這通過以下命令來完成:
- sudo microk8s.start
該命令應報告服務已啟動,pod調(diào)度功能已被啟用。
安裝額外的服務
為了讓Microk8大有用途,你需要安裝幾項額外的服務。不妨安裝基本服務:kube-dns和Microk8s儀表板。儀表板是一個基于Web的儀表板,讓你可以交互和管理Kubernetes。 Kube-dns在集群上調(diào)度DNS Pod和服務,并配置kubelete(每個節(jié)點上運行的主節(jié)點代理),以指示各個容器將DNS服務IP地址用作DNS解析器。
想安裝這兩項服務,回到終端窗口,執(zhí)行命令:
- sudo microk8s.enable dns dashboard
你還可以啟用其他服務,比如:
- storage—讓你可以使用主機上的存儲。
- Ingress—創(chuàng)建Ingress控制器。
- gpu—啟用nvidia-docker運行時環(huán)境和nvidia-device-plugin-daemonset。
- istio—啟用核心的Istio服務。
- registry—部署私有Docker注冊中心。
如果你認定需要額外服務,在啟動并運行Microk8后,你可以隨時回過頭去執(zhí)行microk8s.enable命令(帶有想要添加的服務)。
一旦安裝了儀表板,你需要找到可以訪問它的地址。為此,執(zhí)行命令:
- sudo microk8s.kubectl get all --all-namespaces
上述命令將輸出許多命名空間及相關地址。
B. 找到Microk8s儀表板的地址
尋找與service/kubernetes-dashboard關聯(lián)的IP地址。
訪問儀表板
你現(xiàn)在可以打開Web瀏覽器(在運行Microk8s的同一臺計算機上),將其指向https://IP_ADDRESS(IP_ADDRESS是kubernetes-dashboard IP地址)。
此時,你會看到儀表板需要令牌才能獲得訪問權限。怎么找到那個令牌?首先你要使用以下命令讓Microk8s列出所有可用的機密(secret):
- sudo microk8s.kubectl -n kube-system get secret
這將列出所有服務名稱,并附有機密名稱。如你所見(圖C),Kubernetes儀表板包含在列表中。
C. 列出了含有機密的服務
想檢索相應服務的秘密令牌,執(zhí)行以下命令:
- sudo microk8s.kubectl -n kube-system describe secret kubernetes-dashboard-token-fv247
確保修改fv247條目,以匹配與你安裝的Kubernetes Dashboard實例關聯(lián)的密鑰。
上述命令將顯示一長串字符。復制該字符串,然后回到Web瀏覽器。在儀表板令牌窗口(圖D)中,選擇令牌,然后將復制的令牌粘貼到Enter token文本字段。
圖D. Kubernetes儀表板令牌輸入窗口
點擊“SIGN IN”,你會發(fā)現(xiàn)自己已在Kubernetes儀表板上(圖E)。
E. 使用GIMP來創(chuàng)建
此時,你可以從基于Web的儀表板管理Kubernetes。創(chuàng)建作業(yè)、pod、副本和計劃任務等。點擊右上角的“創(chuàng)建”按鈕,你可以直接寫入或者粘貼YAML或JSON文件的內(nèi)容。比如假設你想創(chuàng)建NGINX部署。將以下內(nèi)容復制到編輯器中(圖F),然后點擊UPLOAD。
- apiVersion: v1
- kind: ReplicationController
- metadata:
- name: nginx
- spec:
- replicas: 2
- selector:
- app: nginx
- template:
- metadata:
- name: nginx
- labels:
- app: nginx
- spec:
- containers:
- - name: nginx
- image: nginx
- ports:
- - containerPort: 80
圖F. 上傳用于NGINX部署的YAML文件
上傳YAML文件后,點擊Workloads> Pods,你會看到它已被列為正在運行中(圖G)。
圖G. NGINX部署已啟動并運行中
這就是使用Microk8s啟動并運行Kubernetes的單節(jié)點實例(以及部署簡單的Pod)的全部內(nèi)容。該工具應該有助于你立即開發(fā)自己的Kubernetes應用程序和服務。
原文標題:Deploy a Single Node Kubernetes Instance in Seconds with MicroK8s,作者:Jack Wallen
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】