0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

汽車玩家 ? 來源:新鈦云服 ? 作者:新鈦云服 ? 2020-05-05 21:01 ? 次閱讀

本Kubernetes實(shí)施示例演示了如何在Windows 10上創(chuàng)建單節(jié)點(diǎn)群集,以啟動(dòng)并運(yùn)行容器化的應(yīng)用程序。

Kubernetes使開發(fā)人員和系統(tǒng)管理員可以快速部署應(yīng)用程序并將其擴(kuò)展到其需求,而無需停機(jī)。Kubernetes系統(tǒng)是高度可配置的,幾乎所有內(nèi)容都圍繞四個(gè)重要概念:節(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)上的一個(gè)或多個(gè)容器。

主服務(wù)器充當(dāng)Kubernetes集群的控制平面??刂破矫嬷懈鞣N組件的主要目的是維護(hù)所有Kubernetes對象的記錄,并通過自動(dòng)響應(yīng)變化來連續(xù)管理集群的期望狀態(tài)。

控制平面有四個(gè)主要組成部分:

Etcd:Kubernetes集群etcd的最基本組件是輕量級可用的配置存儲。它可以跨多個(gè)Kubernetes節(jié)點(diǎn)設(shè)置。它的主要目的是存儲Kubernetes集群中每個(gè)節(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ù)器有多個(gè)組件,這些組件使主服務(wù)器可以使用它們。這些包括:

容器運(yùn)行時(shí):要運(yùn)行封裝在節(jié)點(diǎn)上存在的pod中的應(yīng)用程序,我們需要一個(gè)輕量級的,隔離的操作環(huán)境:容器。容器運(yùn)行時(shí)是一種工具,例如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)建一個(gè)在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

這將返回如下所示的輸出:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

現(xiàn)在,運(yùn)行以下命令并驗(yàn)證您的計(jì)算機(jī)上是否安裝了kubectl:

kubectl.exe version --client

必須在以下屏幕截圖中看到類似的輸出:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

接下來,在Kubernetes中啟動(dòng)一個(gè)工作機(jī)-或節(jié)點(diǎn)。它可以是物理機(jī)或虛擬機(jī)。為此,請使用以下命令啟動(dòng)minikube:

minikube start

這將返回如下所示的輸出:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

由于我們在Windows上安裝Kubernetes,因此請使用Hyper-V啟動(dòng)VM并在VM上設(shè)置Kubernetes集群。

這樣就完成了設(shè)置。

如何在Kubernetes中運(yùn)行容器

要啟動(dòng)容器,請使用下面的Kubernetes命令創(chuàng)建部署。提供部署名稱和要部署的容器映像。Kubernetes將自動(dòng)選擇Docker作為默認(rèn)的容器運(yùn)行時(shí)。在這里,我們使用將運(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時(shí)捕獲ContainerCreating狀態(tài):

kubectl.exe get pods

這將在幾秒鐘內(nèi)完成,并且容器狀態(tài)應(yīng)更改為“正在運(yùn)行”:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

如下所示,將describe關(guān)鍵字與部署名稱一起使用,以查看有關(guān)部署的更多詳細(xì)信息

kubectl.exe get deployment

kubectl.exe describe deployment helloworld-nginx

這將返回結(jié)果,例如副本數(shù),所需狀態(tài)和時(shí)間戳記:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

在此Kubernetes實(shí)施教程中,我們僅運(yùn)行一個(gè)容器或Nginx服務(wù)器,但有時(shí)必須適應(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ū)嵗乃膫€(gè)副本:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

現(xiàn)在,檢查Kubernetes pod;該節(jié)點(diǎn)上應(yīng)運(yùn)行四個(gè)容器:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

啟動(dòng)應(yīng)用程序并運(yùn)行

現(xiàn)在,有一個(gè)應(yīng)用程序在具有各自IP地址的多個(gè)容器中運(yùn)行。接下來,將它們公開到群集之外,以便可以訪問該應(yīng)用程序:

Kubectl.exe expose deployment helloworld-nginx --port=80 --type=NodePort

通過kubectl get services命令進(jìn)行驗(yàn)證。這將返回NodePort的服務(wù)類型,以在Kubernetes集群的每個(gè)節(jié)點(diǎn)上公開端口80。該服務(wù)是一個(gè)抽象層,基本上可以實(shí)現(xiàn)負(fù)載平衡,并在共享IP地址的群集中對一個(gè)以上的pod進(jìn)行分組。

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

要在Web瀏覽器中打開此應(yīng)用程序,請創(chuàng)建一個(gè)代理以將本地端口連接到群集端口,我們在上一步中使用NodePort服務(wù)公開了該端口:

kubectl.exe port-forward svc/helloworld-nginx 80:80

如下所示:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

轉(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ū)嵗囊粋€(gè)容器:

kubectl.exe delete pod helloworld-nginx-67bb76cf46-mks6j

識別出這種不希望的狀態(tài),Kubernetes將立即在容器中運(yùn)行該應(yīng)用程序的新實(shí)例:

在Windows 10上創(chuàng)建單節(jié)點(diǎn)的Kubernetes實(shí)施示例

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87885
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    222

    瀏覽量

    8657
收藏 人收藏

    評論

    相關(guān)推薦

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?226次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b>集群

    為什么無法ModusToolbox Eclipse IDE中創(chuàng)建OTA_over-Etherinet_STTPS示例

    使用\"lcs-manager-cli -- add-all\" 命令將所有示例拉到此處后,無法 ModusToolbox Eclipse IDE 中創(chuàng)建 OTA_over-Etherinet_STTPS
    發(fā)表于 07-24 06:48

    如何使用Kubeadm命令PetaExpress Ubuntu系統(tǒng)安裝Kubernetes集群

    Kubernetes,通??s寫為K8s,是一個(gè)開源的容器編排平臺,旨在自動(dòng)化容器化應(yīng)用的部署、擴(kuò)展和管理。有了Kubernetes,您可以輕松地部署、更新和擴(kuò)展應(yīng)用,而無需擔(dān)心底層基礎(chǔ)設(shè)施。
    的頭像 發(fā)表于 07-15 13:31 ?694次閱讀
    如何使用Kubeadm命令<b class='flag-5'>在</b>PetaExpress Ubuntu系統(tǒng)<b class='flag-5'>上</b>安裝<b class='flag-5'>Kubernetes</b>集群

     K8S學(xué)習(xí)教程一:使用PetaExpress云服務(wù)器安裝Minikube 集群

    使得開發(fā)人員能夠本地機(jī)器輕松創(chuàng)建一個(gè)節(jié)點(diǎn)Kubernetes 集群,從而方便開發(fā)、測
    的頭像 發(fā)表于 07-01 15:41 ?222次閱讀
     K8S學(xué)習(xí)教程一:使用PetaExpress云服務(wù)器安裝Minikube 集群

    Windows 10創(chuàng)建并運(yùn)行AMD Vitis?視覺庫示例

    本篇文章將演示創(chuàng)建一個(gè)使用 AMD Vitis? 視覺庫的 Vitis HLS 組件的全過程。此處使用的是 Vitis Unified IDE。如果您使用的是舊版 AMD Vitis Software Platform,大多數(shù)步驟相同。
    的頭像 發(fā)表于 05-08 14:02 ?456次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Windows</b> <b class='flag-5'>10</b><b class='flag-5'>上</b><b class='flag-5'>創(chuàng)建</b>并運(yùn)行AMD Vitis?視覺庫<b class='flag-5'>示例</b>

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 剛剛 GA,旨在改進(jìn)將集群服務(wù)暴露給外部的過程。這其中包括一套更標(biāo)準(zhǔn)、更強(qiáng)大的 API資源,用于管理已暴露的服務(wù)。在這篇文章中,我將介紹 Gateway
    的頭像 發(fā)表于 01-12 11:32 ?703次閱讀
    <b class='flag-5'>Kubernetes</b> Gateway API攻略教程

    FPGA? 開搞!

    。 該工具鏈?zhǔn)褂?Yosys 和 OpenFPGALoader 等開源工具,并與 Cologne Chip 合作開發(fā)實(shí)施和比特流生成工具。設(shè)計(jì)輸入方面,工程師可以使用 Verilog、VHDL(通過
    發(fā)表于 01-11 00:52

    如何在LoRaWAN網(wǎng)關(guān)的內(nèi)置NS創(chuàng)建應(yīng)用與節(jié)點(diǎn)設(shè)備

    本文章將說明如何在LoRaWAN網(wǎng)關(guān)的內(nèi)置NS創(chuàng)建應(yīng)用與節(jié)點(diǎn)設(shè)備,配置安信可Ra-08模塊連接至網(wǎng)關(guān)NS服務(wù),實(shí)現(xiàn)數(shù)據(jù)發(fā)送與接收。注: 該教程僅適用于支持Class B模式通訊的網(wǎng)關(guān)。
    的頭像 發(fā)表于 12-16 16:18 ?1336次閱讀
    如何在LoRaWAN網(wǎng)關(guān)的內(nèi)置NS<b class='flag-5'>創(chuàng)建</b>應(yīng)用與<b class='flag-5'>節(jié)點(diǎn)</b>設(shè)備

    AT32微控制器創(chuàng)建IAP by Ymodem應(yīng)用程序的方法

    對于大多數(shù)基于閃存的系統(tǒng),一項(xiàng)重要要求是能夠最終產(chǎn)品中安裝固件時(shí)進(jìn)行更新。此功能稱為應(yīng)用程序內(nèi)編程(IAP)。本應(yīng)用筆記的目的是提供在AT32微控制器創(chuàng)建IAP by Ymodem應(yīng)用程序的方法
    發(fā)表于 10-24 07:38

    AT32微控制器創(chuàng)建Multi MCU IAP應(yīng)用程序的方法

    對于大多數(shù)基于閃存的系統(tǒng),一項(xiàng)重要要求是能夠最終產(chǎn)品中安裝固件時(shí)進(jìn)行更新。此功能稱為應(yīng)用程序內(nèi)編程(IAP)。本應(yīng)用筆記的目的是提供在AT32微控制器創(chuàng)建Multi MCU IAP應(yīng)用程序的方法
    發(fā)表于 10-24 06:48

    AT32微控制器創(chuàng)建IAP by USB HID應(yīng)用程序的方法

    對于大多數(shù)基于閃存的系統(tǒng),一項(xiàng)重要要求是能夠最終產(chǎn)品中安裝固件時(shí)進(jìn)行更新。此功能稱為應(yīng)用程序內(nèi)編程(IAP)。本應(yīng)用筆記的目的是提供在AT32微控制器創(chuàng)建IAP by USB HID應(yīng)用程序
    發(fā)表于 10-19 06:48

    記錄一次解決RT-Thread創(chuàng)建基于ART-PI的示例項(xiàng)目可以下載但卻無法debug的問題

    先隨便創(chuàng)建一個(gè)基于模板工程的項(xiàng)目,發(fā)現(xiàn)可以debug,但基于示例工程創(chuàng)建的項(xiàng)目卻發(fā)現(xiàn)不能debug。
    的頭像 發(fā)表于 10-12 10:24 ?398次閱讀
    記錄一次解決RT-Thread<b class='flag-5'>創(chuàng)建</b>基于ART-PI的<b class='flag-5'>示例</b>項(xiàng)目可以下載但卻無法debug的問題

    windows使用的ble調(diào)試工具

    分享一個(gè)windows使用的ble調(diào)試工具
    發(fā)表于 10-09 07:23

    如何在Linux中創(chuàng)建節(jié)點(diǎn)

    手把手教你 Linux 中創(chuàng)建節(jié)點(diǎn),使其可以進(jìn)行 cat 和 echo 。 我們測試驅(qū)動(dòng)加載是否正常工作,一般都會寫應(yīng)用程序去測試,這樣驅(qū)動(dòng)程序中需要實(shí)現(xiàn) open、read 函數(shù)和 write
    的頭像 發(fā)表于 10-07 15:25 ?775次閱讀
    如何在Linux中<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>節(jié)點(diǎn)</b>

    使用MPLAB HarmonyPIC32 MCU創(chuàng)建USB音頻設(shè)備

    電子發(fā)燒友網(wǎng)站提供《使用MPLAB HarmonyPIC32 MCU創(chuàng)建USB音頻設(shè)備.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 09:30 ?0次下載
    使用MPLAB Harmony<b class='flag-5'>在</b>PIC32 MCU<b class='flag-5'>上</b><b class='flag-5'>創(chuàng)建</b>USB音頻設(shè)備