文章文字比較多,請耐心的閱讀,你會受益匪淺!
【開工啦,小伙伴!!!】
你必須問一個問題“我如何設置 Kubernetes 集群?”你最終可能會從不同的搜索結果中得到不同的答案,這對初學者來說可能是壓倒性的。Kubernetes 是一個復雜的系統,安裝并妥善管理它并非易事。
然而,隨著 Kubernetes 社區的擴展和成熟,出現了越來越多的用戶友好工具。截至今天,根據您的要求,有很多選項可供選擇:
因此,正如您所看到的,您有很多選項可供選擇來部署您的第一個 Kubernetes 集群。在本 Kubernetes 教程中,我將介紹使用 Minikube 在 CentOS 8 上安裝 kubernetes 集群的步驟。
Minikube 是一個可用于設置單節點集群的工具,它提供了方便的命令和參數來配置集群。它的主要目的是提供本地測試環境。它包含一個 VM,其中包含一次性安裝到主機上的 Kubernetes 的所有核心組件。這允許它支持任何操作系統,只要預裝了虛擬化工具(也稱為虛擬機監控程序)。
正如我們在之前的教程中學到的,Kubernetes 集群由控制器和工作節點組成,其中兩種節點類型都有自己的一組組件。但是由于 Minikube 是一個單節點集群,它將包含這個單節點中的所有集群組件,如下所示:
物理主機的最低資源要求:
此外,您的主機必須具備:
以下是 Minikube 支持的最常見的虛擬機管理程序:
我將使用安裝Windows 10和Oracle VirtualBox的筆記本電腦來設置Minikube。
您也可以根據您的環境選擇安裝不同的虛擬機管理程序,我們將使用 Oracle VirtualBox,因為我已經在編寫大多數教程時使用它。
從他們的官方存儲庫下載VirtualBox軟件。我寫了另一篇文章來安裝Oracle Virtual Box,它在Windows上很安靜。只需雙擊下載的軟件并按照說明進行操作,將所有設置保留為默認值。
Kubernetes 命令行工具 允許您對 Kubernetes 集群運行命令。可用于部署應用程序、檢查和管理群集資源以及查看日志。【kubectlkubectl】
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/windows/amd64/kubectl.exe
C:\Kubernetes>kubectl version --client
輸出:
接下來,我們將部署我們的 Kubernetes 集群,我們將為其執行【minikube start】。此命令將下載minikube ISO映像并使用Oracle VirtualBox部署新的虛擬機,這將需要一些時間,具體取決于您的網絡速度。
注意:
您無需創建任何VM,此步驟本身將在Oracle VirtualBox上創建和部署新的VM。關閉 VM 后,應再次使用 啟動群集服務,然后才能訪問它。【minikube start】
minikube已成功部署我們的單節點集群,您可以在Oracle VirtualBox上驗證相同的內容,您應該有一個新的虛擬機處于運行狀態。
以下命令應該有助于確定由 Minikube 啟動的 Kubernetes 集群是否正常運行。
C:\Kubernetes>minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
現在,讓我們看一下 kubectl 客戶端和 Kubernetes 服務器的版本:
C:\Kubernetes>kubectl version --short
Client Version: v1.19.0
Server Version: v1.19.2
要檢查計算機組成群集并獲取有關它們的一些基本信息,請執行以下操作:
C:\Kubernetes>kubectl get node
NAME STATUS ROLES AGE VERSION
minikube Ready master 112m v1.19.2
現在你應該讓 Minikube 設置一個單節點 Kubernetes 集群。
現在我們的集群節點已經啟動并運行,我們可以創建我們的第一個 Pod(它基本上是一個容器),但在此之前,請驗證 minikube 集群上是否已經有任何可用的 Pod:
C:\Kubernetes>kubectl get pods
No resources found in default namespace.
由于集群是新安裝的,因此我們沒有任何 Pod。我將創建一個新的 Pod 【hello-minikube】
C:\Kubernetes>kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
pod/hello-minikube created
現在驗證可用的 Pod,當前狀態顯示為 【ContainerCreating】
C:\Kubernetes>kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-minikube-6ddfcc9757-gtr9s 1/1 ContainerCreating 1 19h
等待一段時間并執行相同的命令,現在 pod 的狀態顯示為正在運行:
C:\Kubernetes>kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-minikube-6ddfcc9757-gtr9s 1/1 Running 1 3m2s
這基本上是一個網絡服務器,為了能夠訪問它,我們需要執行以下命令:
C:\Kubernetes>kubectl expose deployment hello-minikube --type=NodePort --port=8080
service/hello-minikube exposed
獲取 Web 服務器的 URL
C:\Kubernetes>minikube service hello-minikube --url
http://192.168.99.100:31068
現在我們可以使用此 URL 訪問我們的應用程序
刪除部署
C:\Kubernetes>kubectl delete deployment hello-minikube
deployment.apps "hello-minikube" deleted
現在我們沒有更多的 pod 在運行:
C:\Kubernetes>kubectl get pods
No resources found in default namespace.
要在不影響已部署應用程序的情況下暫停 Kubernetes,請使用:
minikube pause
最后,我將停止我的minikube集群,它將關閉虛擬機:
C:\Kubernetes>minikube stop
* Stopping node "minikube" ...
* 1 nodes stopped.
刪除所有 Minikube
minikube delete --all
Minikube主要用于設置(概念驗證)POC環境來學習Kubernetes Cluster。雖然我將在下一篇文章中使用 kubeadm 來設置多節點 Kubernetes 集群,我將用它來演示整個 Kubernetes 教程。在本文中,您學習了在 WIndows 主機上使用 minikube 部署集群的步驟,同樣,您可以在任何其他主機環境(如 Ubuntu、CentOS 等)上部署集群。
【開工啦,小伙伴!!!】
歡迎各位小伙伴關注、點贊、評論、轉發,你的關注和轉發是我最大的動力!
minikube通過插件的形式提供一些kubernetes的基礎服務,使用方法非常簡單,一條命令即可啟用相關的插件。下面列下常用的一些方法:
查看插件列表
minikube addons list
通過此命令可以查看默認提供哪些基礎插件:
啟動/禁用插件
這里以在minikube里啟用ingress插件為例,命令為:
minikube addons enable ingress
這樣就啟用了ingress插件了,禁用的方法則是disabled:
minikube addons disabled ingress