kubernetes 基礎概念

學習K8s架構之前,需要了解一些K8s特有的概念:

  • Cluster 集群 K8s可利用的主機、存儲和網絡資源的集合
  • Node 結點 單臺主機,可以是物理的或虛擬的計算機。結點分為主結點(master)和工作結點(worker)。
  • Pod K8s中的工作單元,K8s是以Pod而非容器為單位排程的。Pod可以理解為Docker單機環境,每個Pod中包含一至多個容器,總是被啟動在一個結點;一個Pod的容器在K8s集群中有相同的地址和端口範圍,即容器暴露於K8s集群的端口號不可重複。
  • etcd 一款開源軟件。提供可靠的分佈式數據存儲服務,用於持久化存儲K8s集群的配置和狀態
  • K8s API server 用戶程序(如kubectl)、K8s其它組件之間通信的接口。K8s其它組件之間不直接通信,而是通過API server通信的。這一點在上圖的連接中可以體現,例如,只有API server連接了etcd,即其它組件更新K8s集群的狀態時,只能通過API server讀寫etcd中的數據。Scheduler 排程組件,為用戶應用的每一可部署組件分配工作結點。
  • Controller Manager 執行集群級別的功能,如複製組件、追蹤工作結點狀態、處理結點失敗等。Controller Manager組件是由多個控制器組成的,其中很多控制器是按K8s的資源類型劃分的,如Replication Manager(管理ReplicationController 資源),ReplicaSet Controller,PersistentVolume controller。
  • kube-proxy 在應用組件間負載均衡網絡流量。
  • Kubelet 管理工作結點上的容器。
  • Container runtime Docker, rkt等實際運行容器的組件。

除了核心組件,還有一些推薦的Add-ons:

  • kube-dns 負責為整個集群提供DNS服務
  • Ingress Controller 為服務提供外網入口
  • Heapster 提供資源監控
  • Dashboard 提供GUI
  • Federation 提供跨可用區的集群
  • Fluentd-elasticsearch 提供集群日誌採集、存儲與查詢
  • COREDNS 可以為集群中svc (Service的簡稱)創建一個域名IP 的對應關係解析
  • DASHBOARD: 給K8s 提供B/S 結構訪問體現
  • INGRESS CONROLLER: 官方只能實現四層代理,INGRESS 可以實現七層代理
  • PROMETHEUS(普羅米修斯) : 提供K8s 集群的監控能力
  • ELK:提供K8S集群日誌的統一分析接入平臺
kubernetes 基礎概念


分享到:


相關文章: