Kubernetes 入門到進階實戰

語言: CN / TW / HK

download:Kubernetes 入門到進階實戰
K8s,容器編排的事實標準,雲原生時代的企業技術戰略重點,也是未來後端開發、運維必備技能。但 K8s 包含技術點繁多複雜,學起來並不容易。本課程將提供一條更容易系統掌握 K8s 的學習路線,讓大家學得輕鬆,學得透徹。

技術要求
具備一定服務端基礎知識及基本 linux 命令
對容器領域感興趣的開發者和運維工程師

環境引數
Virtualbox 6
Centos 7
Docker 1.19
Kubernetes 1.19.3



  kubernetes,簡稱K8s是用8代替8個字元的“kubernete”的縮寫。 是一種開放原始碼,用於管理雲平臺中的多臺主機上的容器化應用程式,Kubernetes的目的是方便高效地部署容器化應用程式,Kubernetes是應用程式部署、Kubernetes 1

  傳統的應用程式部署方法是使用外掛或指令碼安裝應用程式。 這樣的缺點是應用程式的執行、配置、管理和所有生命週期都繫結到當前的作業系統。 這不利於應用程序升級的更新/回滾等操作。 當然,也可以通過建立虛擬機器來實現部分功能,但虛擬機器非常重,不利於可移植性。

  新的方式通過配置容器來實現,各容器相互隔離,各容器有自己的檔案系統,容器之間的過程互不影響,可以區分計算資源。 對於虛擬機器,容器可以快速部署。 容器與基礎設施、機器檔案系統解除連線,因此可以在不同雲、不同版本的作業系統之間遷移。

  由於容器佔用資源少,部署快,每個應用程式被封裝在一個容器中,每個應用程式和容器之間存在一對一的關係,因此在build或release階段,使用容器是每個應用程式每個應用程式都不與其餘的應用程式堆疊組合,也不依賴於生產環境的基礎架構,從而提供了從開發到測試和生產的統一環境。 同樣,容器比虛擬機器更輕、“透明”,更易於監視和管理。

  概要編輯

  Kubernetes是開源的容器組織引擎,支援自動部署、大規模可伸縮性和應用程式容器化管理。 在生產環境中部署應用程式時,通常要部署多個應用程式例項以平衡應用程式請求。

  Kubernetes可以建立多個容器,在每個容器中執行應用程式例項,並使用內建的負載平衡策略管理、發現和處理一組不需要複雜的手動配置和操作的應用程式例項

  特徵編輯

  可移植性:支援公共雲、私有云、混合雲和多雲(multi-cloud )

  可擴充套件的:模組化、外掛化、可安裝、可組合

  自動化:自動部署、自動重新啟動、自動複製、自動伸縮/擴充套件

  元件編輯

  1主元件

  1.1 kube -啟用程式

  1.2ETCD

  1.3 kube -控制器-管理器

  1.4雲控制器-管理器

  1.5 kube -排程器

  1.6外掛addons

  1.6.1DNS

  1.6.2使用者介面

  1.6.3容器資源的監測

  1.6.4叢集-級別記錄

  2節點元件

  2.1kubelet

  2.2 kube -伺服器

  2.3船塢

  2.4RKT

  2.5監察員d

  2.6藍芽

  本文介紹了Kubernetes群集所需的各種二進位制元件。

  主元件

  Master元件提供叢集的管理控制中心。

  Master元件可以在群集中的任何節點上執行。 但是,為了簡單起見,通常在一臺虛擬機器/機器上啟動所有的Master元件,而不在該虛擬機器/機器上執行使用者容器。 請參見在構建多主-虛擬機器之前構建高可用性群集。

  kube -應用程式伺服器

  kube-apiserver用於暴露kubernetes應用程式。 所有資源請求/呼叫操作都通過kube-apiserver提供的介面進行。 請參閱建立高可用性叢集。

  電子光碟

  etcd是Kubernetes提供的預設儲存系統,必須儲存所有叢集資料,並在使用時提供etcd資料的備份計劃。

  kube -控制器管理器

  kube -控制器-管理器執行管理控制器。 處理叢集中常規任務的後臺執行緒。 從邏輯上講,每個控制器都是一個單獨的過程,但為了降低複雜性,它們被編譯為一個二進位制檔案,並在一個過程中執行。這些控制器包括:

  節點控制器。

  複製控制器(replicationcontroller ) :負責維護系統中每個副本的pod。

  端點控制器:填充端點物件(即,連線服務點)。

  服務帳戶和Token控制器:建立新的Namespace預設帳戶訪問API Token。

  雲控制器-管理器

  cloudcontrollermanager負責與底層雲提供商的平臺操作。 雲控制器管理器是在kubernetes 1.6版中引入的,還是alpha功能?

  雲控制器管理器只執行特定於雲提供者的(controller loops )控制器迴圈。 ---通過將雲提供程式標誌設定為外部並啟動kube -控制器管理器,可以禁用控制器週期。

  雲控制器管理器的具體功能:

  節點控制器

  根控制器

  服務控制器

  音量控制器

  Kube -排程器

  kube-scheduler將建立一個新的未分配給節點的Pod,然後選擇該Pod的節點。

  外掛程式addons

  外掛(addon )是實現叢集pod和服務功能的東西。 Pod由部署控制器、複製控制器等進行管理。 Namespace外掛物件是在kube-system Namespace中建立的。

  DNS

  雖然外掛的使用並不嚴格,但是Kubernetes群集需要群集DNS。

  叢集DNS是向Kubernetes服務提供DNS記錄的DNS伺服器。

  Kubernetes啟動的容器會自動將此DNS伺服器包含在DNS searches中。

  使用者介面

  kube-ui提供叢集狀態的基礎資訊的顯示。

  容器資源的監視

  容器資源監視提供用於參照監視資料的UI。

  群集級別記錄

  Cluster-level logging負責儲存容器日誌、檢索/顯示日誌。

  節點(節點)元件

  節點元件在節點上執行,提供Kubernetes執行時環境並維護Pod。kubelet

  kubelet是主要的節點,監視分配給節點的pod、具體功能。

  安裝Pod所需的卷。

  下載Pod的證書

  在Pod上執行的docker (或experimentally,rkt )容器。

  定期執行容器的健康檢查。

  reportsthestatusofthepodbacktotherestofthesystem,按建立的視點訪問。

  reportsthestatusofthenodebacktotherestofthesystem。

  kube

  kube-proxy通過在主機上維護網路規則和執行連線傳輸來實現Kubernetes服務的抽象。

  解碼器

  docker用於執行容器。

  RKT

  rkt代替docker工具執行容器。

  主管d

  supervisord是保證kubelet和docker動作的輕量型監視系統。

  藍芽

  fluentd是提供叢集級別記錄的守護程序。