1. 程式人生 > >在本地執行Kubernetes的3種主流方式

在本地執行Kubernetes的3種主流方式

> 作者簡介 > Chris Tozzi,曾擔任記者和Linux管理員。對開源技術、敏捷基礎架構以及網路問題興趣濃厚。目前擔任高階內容編輯,並且是Fixate IO的DevOps分析師。 > 原文連結: > > https://searchitoperations.techtarget.com/answer/Evaluate-3-ways-to-run-Kubernetes-locally Kubernetes的主要目的是通過複雜的負載均衡和資源分配功能跨伺服器叢集託管應用程式。即使某些伺服器出現故障,也可以確保應用程式平穩執行。因此在生產部署中,必須為Kubernetes配置多個伺服器。 但是,在某些情況下,IT管理員或開發人員可能希望在PC或膝上型電腦上本地執行Kubernetes。因為本地Kubernetes環境使開發人員能夠快速測試新的應用程式程式碼,而不必先將其上傳到生產叢集。對於初學者來說,本地Kubernetes也是一種很好的方式來學習容器編排系統,而無需承受大規模、多伺服器部署的複雜性和成本。 以下是在本地執行Kubernetes的三種方法,所有這些方法都可以在Windows、Linux或macOS的PC或膝上型電腦上執行。 ## 1、 Minikube Minikube是Kubernetes的一個版本,專為本地部署而設計。Minikube由Kubernetes開源社群開發,使用VM來建立本地單節點Kubernetes安裝。 Minikube的安裝非常簡單,因為Windows、Linux和macOS安裝程式會自動執行大部分流程,包括VM設定。但是,請先確保安裝了諸如Hyper-V、VirtualBox或KVM等VM平臺。 需要先下載最新的Minikube穩定版,然後執行` minikube start`。以下示例是在MacOS上啟動Minikube: ![使用預設的 HyperKit在MacOS上執行Minikube](https://img-blog.csdnimg.cn/20200514103146314.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjA2ODEz,size_16,color_FFFFFF,t_70#pic_center) *使用預設的 HyperKit在MacOS上執行Minikube* 在啟動期間,kubeconfig檔案(預設情況下是~/.kube/config)正在更新,名為minikube的新上下文正在被建立(之後將其設定為預設上下文)。Minkube設定完成之後,使用標準Kubernetes命令列工具kubectl即可與叢集進行互動。 ![正在獲取minikube的節點](https://img-blog.csdnimg.cn/2020051410322919.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjA2ODEz,size_16,color_FFFFFF,t_70#pic_center) 正在獲取minikube的節點 Minikube的主要侷限性在於本地叢集只能包含一個節點,因此對於生產級別的多節點Kubernetes叢集來說,很難在本地進行模擬測試。 ## 2、 MicroK8s MicroK8s是由Canonical開發的Kubernetes發行版,其突出特點是部署快速簡單,對於本地執行Kubernetes來說,十分方便。 在支援snap packages的任何Linux發行版上,MicroK8s的安裝都很簡單。Snap packages是由Canonical建立的一個應用程式的打包框架,主要用於Ubuntu(該公司的Linux發行版)。在Windows和macOS上安裝MicroK8s也是很簡單的,因為這些系統的MicroK8s安裝程式會建立基於Ubuntu的VM,然後使用snap packages在其上安裝MicroK8s。 與Minikube不同,IT管理員或開發人員可以使用MicroK8s建立多節點叢集。如果MicroK8s在Linux上執行,甚至不需要VM。在Windows和macOS上,MicroK8s使用名為Multipass的VM框架為Kubernetes叢集建立VM。 ``` # Create a new Ubuntu VM $ multipass launch --name microk8s --mem 4G # Install microk8s in the VM through snap $ multipass exec microk8s -- sudo snap install microk8s --classic ``` 然後我們在一個本地檔案中複製叢集配置檔案: ``` $ multipass exec microk8s -- sudo microk8s.config > microk8s.yaml ``` 請注意:MicroK8s帶有幾個二進位制檔案,其中包括: - microk8s.config:提供kubectl配置檔案以供外界使用 - microk8s.kubectl:自己的kubectl版本 最後,我們設定KUBECONFIG環境變數來定義由本地kubectl使用的上下文: ``` $ export KUBECONFIG=$PWD/microk8s.yaml ``` 現在,我們已經準備就緒,可以使用新的MicroK8s單節點叢集。 ``` $ kubectl get nodes NAME STATUS ROLES AGE VERSION microk8s R