您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么在Windows 10上創(chuàng)建單節(jié)點(diǎn)Kubernetes群集”,在日常操作中,相信很多人在怎么在Windows 10上創(chuàng)建單節(jié)點(diǎn)Kubernetes群集問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么在Windows 10上創(chuàng)建單節(jié)點(diǎn)Kubernetes群集”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
Kubernetes使開發(fā)人員和系統(tǒng)管理員可以快速部署應(yīng)用程序并將其擴(kuò)展到其需求,而無需停機(jī)。Kubernetes系統(tǒng)是高度可配置的,幾乎所有內(nèi)容都圍繞四個重要概念:節(jié)點(diǎn),pod,部署和服務(wù)。
準(zhǔn)備好進(jìn)入Kubernetes的世界了嗎?這是開始的關(guān)鍵步驟和Kubernetes命令。
學(xué)習(xí)Kubernetes架構(gòu)的基礎(chǔ)知識
首先,了解Kubernetes系統(tǒng)的基礎(chǔ)非常有用。運(yùn)行容器的服務(wù)器及其內(nèi)部的應(yīng)用程序稱為節(jié)點(diǎn)。主服務(wù)器控制,管理和配置這些節(jié)點(diǎn)服務(wù)器。主節(jié)點(diǎn)還管理Pod或一組駐留在節(jié)點(diǎn)上的一個或多個容器。
主服務(wù)器充當(dāng)Kubernetes集群的控制平面??刂破矫嬷懈鞣N組件的主要目的是維護(hù)所有Kubernetes對象的記錄,并通過自動響應(yīng)變化來連續(xù)管理集群的期望狀態(tài)。
控制平面有四個主要組成部分:
Etcd:Kubernetes集群etcd的最基本組件是輕量級可用的配置存儲。它可以跨多個Kubernetes節(jié)點(diǎn)設(shè)置。它的主要目的是存儲Kubernetes集群中每個節(jié)點(diǎn)都可以訪問的配置數(shù)據(jù)。
Kube-apiserver:這是用于kubectl等命令行工具的RESTful接口,為它們提供了與Kubernetes集群進(jìn)行交互的方式。簡單來說,它充當(dāng)各種工具的管理點(diǎn),以通過REST API控制和配置Kubernetes集群。
Kube控制器管理:該服務(wù)的主要作用是維護(hù)群集的狀態(tài),例如副本數(shù)。如果觀察到所需狀態(tài)有任何變化,則kube-controller-manager將運(yùn)行所需的過程以確保滿足所需狀態(tài)。
Kube調(diào)度器:該組件的主要職責(zé)是根據(jù)配置,資源需求和特定于工作負(fù)載的需求計(jì)劃群集工作負(fù)載。
節(jié)點(diǎn)服務(wù)器有多個組件,這些組件使主服務(wù)器可以使用它們。這些包括:
容器運(yùn)行時:要運(yùn)行封裝在節(jié)點(diǎn)上存在的pod中的應(yīng)用程序,我們需要一個輕量級的,隔離的操作環(huán)境:容器。容器運(yùn)行時是一種工具,例如Docker,用于創(chuàng)建,部署和運(yùn)行應(yīng)用程序。
Kubelet:Kubelet是安裝在節(jié)點(diǎn)上以與主節(jié)點(diǎn)進(jìn)行通信并從其接收命令的代理或服務(wù)。它指導(dǎo)需要在節(jié)點(diǎn)上執(zhí)行的操作,例如創(chuàng)建,縮放和刪除容器。
Kube代理:此代理服務(wù)將請求中繼到正確的容器并執(zhí)行負(fù)載平衡。Kube-proxy還執(zhí)行主機(jī)級子網(wǎng)劃分,以確保其他組件可以訪問服務(wù)。
Kubernetes實(shí)施步驟
在本教程中,我們將創(chuàng)建一個在Windows 10操作系統(tǒng)上運(yùn)行的單節(jié)點(diǎn)群集。
要在Windows上安裝和設(shè)置Kubernetes,請加載kubectl并安裝minikube。Chocolatey軟件包管理器在此過程中會提供幫助。命令行工具kubectl對Kubernetes集群運(yùn)行命令,而minikube是使我們能夠在機(jī)器上的VM中運(yùn)行單節(jié)點(diǎn)集群的工具。輸入命令:
choco install Kubernetes-cli minikube
這將返回如下所示的輸出:
現(xiàn)在,運(yùn)行以下命令并驗(yàn)證您的計(jì)算機(jī)上是否安裝了kubectl:
kubectl.exe version --client
必須在以下屏幕截圖中看到類似的輸出:
接下來,在Kubernetes中啟動一個工作機(jī)-或節(jié)點(diǎn)。它可以是物理機(jī)或虛擬機(jī)。為此,請使用以下命令啟動minikube:
minikube start
這將返回如下所示的輸出:
由于我們在Windows上安裝Kubernetes,因此請使用Hyper-V啟動VM并在VM上設(shè)置Kubernetes集群。
這樣就完成了設(shè)置。
如何在Kubernetes中運(yùn)行容器
要啟動容器,請使用下面的Kubernetes命令創(chuàng)建部署。提供部署名稱和要部署的容器映像。Kubernetes將自動選擇Docker作為默認(rèn)的容器運(yùn)行時。在這里,我們使用將運(yùn)行Nginx Web服務(wù)器的鏡像:
kubectl.exe create deployment my-nginx --image nginx
創(chuàng)建部署后,Kubernetes將構(gòu)建Pod來承載應(yīng)用程序?qū)嵗?/p>
運(yùn)行上一條命令后立即輸入get pods,以在部署pod時捕獲ContainerCreating狀態(tài):
kubectl.exe get pods
這將在幾秒鐘內(nèi)完成,并且容器狀態(tài)應(yīng)更改為“正在運(yùn)行”:
如下所示,將describe關(guān)鍵字與部署名稱一起使用,以查看有關(guān)部署的更多詳細(xì)信息:
kubectl.exe get deployment kubectl.exe describe deployment helloworld-nginx
這將返回結(jié)果,例如副本數(shù),所需狀態(tài)和時間戳記:
在此Kubernetes實(shí)施教程中,我們僅運(yùn)行一個容器或Nginx服務(wù)器,但有時必須適應(yīng)增加的工作量和流量。在這種情況下,請擴(kuò)大應(yīng)用程序?qū)嵗臄?shù)量。這可以通過使用帶有--replicas參數(shù)的kubectl規(guī)模部署來實(shí)現(xiàn):
kubectl.exe scale deployment helloworld-nginx --replicas 4
檢查部署。將觀察到已部署了該應(yīng)用程序?qū)嵗乃膫€副本:
現(xiàn)在,檢查Kubernetes pod;該節(jié)點(diǎn)上應(yīng)運(yùn)行四個容器:
啟動應(yīng)用程序并運(yùn)行
現(xiàn)在,有一個應(yīng)用程序在具有各自IP地址的多個容器中運(yùn)行。接下來,將它們公開到群集之外,以便可以訪問該應(yīng)用程序:
Kubectl.exe expose deployment helloworld-nginx --port=80 --type=NodePort
通過kubectl get services命令進(jìn)行驗(yàn)證。這將返回NodePort的服務(wù)類型,以在Kubernetes集群的每個節(jié)點(diǎn)上公開端口80。該服務(wù)是一個抽象層,基本上可以實(shí)現(xiàn)負(fù)載平衡,并在共享IP地址的群集中對一個以上的pod進(jìn)行分組。
要在Web瀏覽器中打開此應(yīng)用程序,請創(chuàng)建一個代理以將本地端口連接到群集端口,我們在上一步中使用NodePort服務(wù)公開了該端口:
kubectl.exe port-forward svc/helloworld-nginx 80:80
如下所示:
轉(zhuǎn)到Web瀏覽器并打開http://127.0.0.1/或http://localhost/以查看在Kubernetes容器中部署的Nginx Web服務(wù)器的主頁。
測試Kubernetes控制平面
最后,測試Kubernetes控制平面或主服務(wù)器是否能夠維持節(jié)點(diǎn)服務(wù)器上運(yùn)行的Pod的所需狀態(tài)。要檢查這一點(diǎn),請使用以下命令來強(qiáng)制刪除運(yùn)行該應(yīng)用程序?qū)嵗囊粋€容器:
kubectl.exe delete pod helloworld-nginx-67bb76cf46-mks6j
識別出這種不希望的狀態(tài),Kubernetes將立即在容器中運(yùn)行該應(yīng)用程序的新實(shí)例:
到此,關(guān)于“怎么在Windows 10上創(chuàng)建單節(jié)點(diǎn)Kubernetes群集”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。