Kubernetes初識

Kubernetes

  • what
    一個容器平臺
    一個微服務平臺
    便攜式雲平臺
  • 特性
    • 自我修復
      在節點故障時重新啓動失敗的容器,替換和重新部署,保證預期的副本數量;殺死健康檢查失敗的容器,並且在未準備好之前不會處理客戶端請求,確保線上服務不中斷。
    • 彈性伸縮
      使用命令、UI或者基於CPU使用情況自動快速擴容和縮容應用程序實例,保證應用業務高峯併發時的高可用性;業務低峯時回收資源,以最小成本運行服務
    • 自動部署和回滾
      K8s採用滾動更新策略更新應用,一次更新一個Pod,而不是同時刪除所有Pod,如果更新過程出現問題,將回滾更改,確保升級業務不受影響
    • 服務發現和負載均衡
      K8s爲多個容器提供一個統一訪問入口(內部IP地址和一個DNS名稱),並且負載均衡關聯的所有容器,使得用戶無需考慮容器IP 問題
    • 機密和配置管理
      管理機密數據和應用程序配置,而不需要把敏感數據暴露在鏡像裏,提高敏感數據安全性。並可以將一些常用的配置存儲在K8s中,方便應用程序使用。
    • 存儲編排
      掛在外部存儲系統,無論是來自本地系統,公有云(AWS等),還是網絡存儲(NFS、GlusterFS、Ceph)都作爲集羣資源的一部分使用,極大提高存儲使用靈活性。
    • 批處理
      提供一次性任務;滿足批量數據處理和分析的場景。
  • 集羣架構和組件
    • master組件
      • Kube-apiserver
        Kubernetes API,集羣的統一入口,各組件協調者,以RESTful API提供接口服務,所有對象資源的增刪改查和監聽操作都交給APIServer處理後再交給Etcd存儲。
      • kube-controller-manager
        處理集羣中常規後臺任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的。
      • kube-scheduler
        根據調度算法爲新創建的Pod選擇一個Node節點,可以任意部署,可以部署在同一個節點上,也可以部署在不同節點上。
      • etcd
        分佈式鍵值存儲系統。用於保存集羣狀態數據,比如pod、service等對象信息。
    • Node組件
      • kubelet
        kubelet是Master在Node節點上的Agent,管理本機運行容器的生命週期,比如創建容器、Pod掛載數據卷、下載secret、獲取容器和節點狀態等工作。kubelet將每個pod轉換成一組容器。
      • kube-proxy
        在Node節點上實現pod網絡代理,維護網絡規則和四層負載均衡工作。
    • 容器技術
      • Docker或rocket:容器引擎,運行容器。

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

  • 核心概念
    • Pod
      • 最小部署單元
      • 一組容器的集合
      • 一個pod中的容器共享網絡命名空間
      • pod是短暫的
    • Controllers:更高層級對象,部署和管理Pod
      • ReplicaSet:確保預期的Pod副本數量
      • Deployment:無狀態應用部署
      • StatefulSet:有狀態應用部署
      • DaemonSet:確保所有Node運行同一個Pod
      • Job:一次性任務
      • Cronjob:定時任務
    • Service:對外提供訪問入口
      • 防止Pod失聯
      • 定義一組pod的訪問策略
    • Label:標籤,附加到某個資源上,用於關聯對象、查詢和篩選
    • Namespaces:命名空間,將對象邏輯上隔離
    • Annotations:註釋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章