中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes Node全解

發布時間:2020-07-19 00:49:24 來源:網絡 閱讀:495 作者:RancherLabs 欄目:云計算
今晚20:30,Kubernetes Master Class在線培訓第四期《企業如何構建CI/CD流水線》即將開播,進入鏈接:http://live.vhall.com/729465809 即可免費預約注冊!

介?紹


Kubernetes在GitHub上擁有超過48,000顆星,超過75,000個commit,擁有以Google為代表的科技巨頭公司為主要貢獻者。可以說,Kubernetes已迅速掌管了容器生態系統,成為容器編排平臺的真正領導者。

Kubernetes提供了諸如部署的滾動和回滾、容器健康檢查、自動容器恢復、基于指標的容器自動擴展、服務負載均衡、服務發現(適用于微服務架構)等強大功能。在本文中,我們將討論Kubernetes重要的基本概念、master節點架構,并重點關注節點組件。

理解Kubernetes及其抽象


Kubernetes是一個開源的編排引擎,用于自動部署、擴展、管理和提供托管容器化應用程序的基礎架構。在基礎架構級別,Kubernetes集群由一組物理或虛擬機組成,每個機器都以特定角色運行。

Master機器就像是所有業務的大腦,負責編排所有運行在節點機器上的容器。每個節點都配有一個容器運行時。節點接收來自master的指令,然后執行操作來創建pod、刪除pod或調整網絡規則。

Kubernetes Node全解

Master組件負責管理Kubernetes集群。它們管理pod的生命周期,pod是Kubernetes集群內部署的基本單元。Master Server運行以下組件:

  • kube-apiserver?- 主要組件,為其他master組件公開API。

  • etcd?- 分布式密鑰/值存儲庫,Kubernetes使用它來持久化存儲所有集群信息。

  • kube-scheduler?– 依照pod規范中的信息,來決定運行pod的節點。

  • kube-controller-manager?- 負責節點管理(檢測節點是否出現故障)、pod復制和端點創建。

  • cloud-controller-manager?- 守護進程,充當API和不同云提供商工具(存儲卷、負載均衡器等)之間的抽象層。


節點組件是Kubernetes中的worker機器,受到master的管理。節點可以是虛擬機(VM)或物理機器——Kubernetes在這兩種類型的系統上都能良好運行。每個節點都包含運行pod的必要組件:

  • kubelet?– 為位于那個節點上的pod監視API服務器,確保它們正常運行

  • cAdvisor?- 收集在特定節點上運行著的pod的相關指標

  • kube-proxy?- 監視API服務器,實時獲取pod或服務的變化,以使網絡保持最新

  • 容器運行時 - 負責管理容器鏡像,并在該節點上運行容器


Kubernetes節點組件詳解


總而言之就是,節點上運行著兩個最重要的組件——kubelet和kube-proxy,除此之外還有一個負責運行應用容器化應用程序的容器引擎。

kubelet

kubelet處理著master和在其上運行的節點之間的所有通信。它以manifest的形式接收來自主設備的命令,manifest定義著工作負載和操作參數。它與負責創建、啟動和監視pod的容器運行時進行接合。

kubelet還會周期性地對配置的活躍度探針和準備情況進行檢查。它會不斷監視pod的狀態,并在出現問題時啟動新實例。kubelet還有一個內部HTTP服務器,在端口10255上顯示一個只讀視圖。除此之外,在/healthz上還有一個健康檢查端點,以及一些其他狀態端點。例如,我們可以在/pods獲取正在運行的pod的列表。我們還可以在/spec獲取kubelet正在運行的機器的詳情。

?

kube-proxy

kube-proxy組件在每個節點上運行,負責代理UDP、TCP和SCTP數據包(它不了解HTTP)。它負責維護主機上的網絡規則,并處理pod、主機和外部世界之間的數據包傳輸。它就像是節點上運行著的pod的網絡代理和負載均衡器一樣,通過在iptables使用NAT實現東/西負載均衡。

kube-proxy過程位于連接到Kubernetes的網絡和在該特定節點上運行的pod之間。它本質上是Kubernetes的核心網絡組件,負責確保跨集群的所有元素有效地進行通信。當用戶創建Kubernetes服務對象時,kube-proxy實例會負責將該對象轉換為位于worker節點的、本地iptables規則集上的有意義的規則。iptables用于將分配給服務對象的虛擬IP轉換為服務映射的所有pod IP。

容器運行時

容器運行時負責從公有或私有鏡像倉庫中拉取鏡像,并根據這些鏡像運行容器。當下最流行的容器引擎無疑是Docker,不過Kubernetes還支持諸如rkt、runc等的其他容器運行時。正如我們在上文中提到過的,kubelet會直接與容器運行時交互,以啟動、停止或刪除容器。

cAdvisor

cAdvisor是一個開源代理,它能夠監視資源使用情況并分析容器的性能。cAdvisor最初由谷歌創建,現在已與kubelet集成。

位于每個節點上的cAdvisor實例,會收集、聚合、處理和導出所有正在運行的容器的指標,如CPU、內存、文件和網絡使用情況等。所有數據都將發送到調度程序,以確保調度程序了解節點內部的性能和資源使用情況。這些信息會被用于執行各種編排任務,如調度、水平pod擴展、管理容器資源限制等。


從動手實操了解節點組件端點


接下來,我們將安裝一個Kubernetes集群(在Rancher的幫助下),以此來開始探索節點組件公開的一些API。要完成下面的操作,我們需要:

  • Google Cloud Platform帳戶(任何公有云也都是一樣的)

  • 一臺主機,后續Rancher會運行在它上面(可以是個人PC / Mac或公有云中的VM)

  • 在同一主機上,安裝kubectl和 Google Cloud SDK。驗證好您的相關credential(gcloud init和gcloud auth login),確保gcloud能正常訪問您的Google Cloud賬戶

  • 在GKE上運行的Kubernetes集群(運行EKS或AKS也是相同的)


啟動Rancher實例

首先,啟動Rancher實例。這一過程非常簡單,參考快速上手指南即可:

https://rancher.com/quick-start/

使用Rancher部署GKE集群

使用Rancher設置和配置Kubernetes集群,同樣是按指南進行操作即可:

https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/hosted-kubernetes-clusters/gke/

部署好集群后,我們可以快速部署Nginx以進行測試:

Kubernetes Node全解

為了與Kubernetes API進行交互,我們需要在本地計算機上啟動代理服務器:

Kubernetes Node全解

讓我們檢查一下進度,看它是否正在正常運行,以及是否在監聽默認端口:

Kubernetes Node全解

現在,在瀏覽器中,檢查kubelet公開的各種端點:

Kubernetes Node全解

接下來,顯示集群可用節點的列表:

Kubernetes Node全解

我們可以通過spec來檢查所有列出的、使用API的節點。在本文的示例中,我們使用n1-standard-1機器類型(1個vCPU,3.75GB RAM,10GB的根大小磁盤)創建了一個3節點集群。我們可以通過訪問專用端點來確認這些規范:

Kubernetes Node全解


Kubernetes Node全解

在不同端點使用相同的kubelet?API,我們可以檢查我們創建的Nginx pod,以查看它們正運行在什么節點上。

首先,列出正在運行的pod:

Kubernetes Node全解

現在,curl每個節點的/proxy/pods端點,查看其運行的pod列表:

Kubernetes Node全解


Kubernetes Node全解

我們還可以檢查cAdvisor端點,它會以Prometheus格式輸出大量數據。默認情況下,這在/metrics?HTTP端點可用:

Kubernetes Node全解


Kubernetes Node全解

SSH到節點并直接調用kubelet端口,也可以獲得相同的cAdvisor或pod信息:

Kubernetes Node全解

清理

要清理我們在本文中使用的資源,只需從Rancher UI中刪除Kubernetes集群即可(選擇集群并點擊Delete按鈕就可以了)。這將刪除我們的集群正在使用的所有節點以及關聯的IP地址。如果您是在公有云中使用VM來運行Rancher,那么您也需要處理它。找出您的實例名稱,然后將其刪除即可:

Kubernetes Node全解

結?語


在本文中,我們討論了Kubernetes節點機器的關鍵組件。之后,我們使用Rancher部署了一個Kubernetes集群,并完成了一個小型部署以幫助我們學習使用kubelet API。

若想了解有關Kubernetes及其架構的更多信息,Kubernetes官方文檔是一個不錯的起點:https://kubernetes.io/docs/concepts/overview/components/

?

同時,Rancher Labs近期組織的免費系列在線培訓【Kubernetes Master Class】也是極佳的Kubernetes上手之選,明晚(4月24日)20:30,本季培訓的第4期課程《企業如何構建CI/CD流水線》即將開播,您可以進入鏈接:http://live.vhall.com/729465809 預約此次課程,屆時使用同一鏈接即可觀看直播!


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜州市| 阆中市| 江油市| 二手房| 保亭| 河源市| 康平县| 泾川县| 綦江县| 集贤县| 阿瓦提县| 洛川县| 金寨县| 屏东市| 达拉特旗| 辰溪县| 洛扎县| 威信县| 渑池县| 英山县| 清新县| 巴东县| 清丰县| 方城县| 海门市| 时尚| 宁阳县| 新乡县| 望都县| 呼和浩特市| 芷江| 揭西县| 肇州县| 册亨县| 姜堰市| 革吉县| 乌拉特前旗| 南城县| 浪卡子县| 泗阳县| 漯河市|