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

k3s中文社群發表於2020-05-14

作者簡介
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
使用預設的 HyperKit在MacOS上執行Minikube

在啟動期間,kubeconfig檔案(預設情況下是~/.kube/config)正在更新,名為minikube的新上下文正在被建立(之後將其設定為預設上下文)。Minkube設定完成之後,使用標準Kubernetes命令列工具kubectl即可與叢集進行互動。

正在獲取minikube的節點
正在獲取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   Ready    <none>   4m48s   v1.16.3

MicroK8s的最大缺點可能是很難在不支援snap packages的Linux發行版上安裝。

3、 K3s

K3s是由業界應用最為廣泛的Kubernetes管理平臺建立者Rancher Labs開發的輕量級Kubernetes發行版,通過了CNCF一致性認證。它是為生產環境設計的,主要用於部署在資源受限的邊緣計算場景中,例如IoT感測器。

但是,K3s也可以在本地執行以進行Kubernetes測試或開發。為此,請首先使用VMware、VirtualBox或KVM等平臺在本地系統上至少建立兩個VM。K3s不會為你建立VM,因此你需要手動執行此操作。

然後,在一個VM上安裝K3s server,在另一個VM上安裝K3s agent。這將在本地裝置上建立一個微型Kubernetes叢集。詳細的安裝步驟可以參考以下文章:

只需5分鐘!即可在mac上執行k3s

研發側利器!k3d+k3s,輕鬆管理本地k3s叢集!

與MicroK8s和Minikube相比,K3s需要更多的手動工作來進行設定和配置。但是,由於K3s是為全面生產而設計的,因此在PC或膝上型電腦上,它是與生產級伺服器最接近的選項。

相關文章