在本地運行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
使用默認的 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或筆記本電腦上,它是與生產級服務器最接近的選項。

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