Kubernetes--容器雲平臺管理(理論局!!!)

Kubernetes-Docker集羣管理

Kubernetes介紹

Kubernetes是一個開源的Docker容器編排系統,Kubernetes簡稱K8S。

調度計算集羣的節點,動態管理上面的作業
通過使用[labels]和[pods]的概念,將應用按邏輯單元進行分組

  • K8S用於容器應用程序的部署,擴展和管理
  • K8S提供了容器編排,資源調度,彈性伸縮,部署管理,服務發現等一系列功能
  • Kubernetes目標是讓部署容器化應運簡單高效
  • 官方網站:http://www.kubernetes.io

Kubernetes特性

  • 自我修復

    在節點故障時重新啓動失敗的容器,替換和重新部署,保證預測的副本數量;殺死健康檢查失敗的容器,並且在未準備好之前不會處理客戶端請求,確保線上服務不中斷。

  • 彈性伸縮

    使用命令、UI或者基於CPU使用情況自動快速擴容和縮容應用程序實例,保證應用業務高峯併發時的高可用性;業務低峯時回收資源,以最小成本運行服務

  • 自動部署和回滾

    K8S採用滾動更新應用,一次更新一個Pod,而不是同時刪除所有Pod,如果更新過程中出現問題,將回滾更改,確保升級不受影響業務

  • 服務發現和負載均衡

    K8S爲多個容器提供一個統一的訪問入口(內部IP地址和UI個DNS地址),並且負載均衡關聯的所有容器,使得用戶無需考慮容器IP問題

  • 機密和配置管理

    管理機密數據和應用程序配置。而不需要把敏感數據暴露在鏡像裏,提高敏感數據安全性。並且可以將一些常用的配置存儲在K8S中,方便應用程序使用

  • 存儲編排

    掛載外部存儲系統,無論是來自本地存儲,公有云(如AWS),還是網絡存儲(NFS、GlusterFS)都作爲集羣資源的一部分使用,極大提高存儲使用靈活性

  • 批處理

    提供一次性任務,定時任務;滿足批量數據處理和分析的場景。

    Kubernetes集羣架構與組件

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

    master組件

  • kube-apiserver

    Kubernetes API,集羣的統一入口,各組件協調者,以RESTful API提供接口服務,所有對象資源的增刪改查和監聽操作都交給APIServer處理後再提交給Etcd存儲。

  • kube-controller-manager

    處理集羣中常規後臺任務,一個資源對應一個控制器,而ControllerManager就是負責管理這些控制器的。

  • kube-scheduler

    根據調度算法爲新創建的Pod選擇一個Node節點,可以任意部署,可以部署在同一個節點上,也可以部署在不同的節點上。

  • etcd

    分佈式鍵值存儲系統,用於保存集羣狀態數據,比如Pod、Server等對象信息。

    node組件

  • kubelet

    kubelet是MAster在Node節點上的Agent,管理本機運行容器的生命週期,比如創建容器,Pod掛載數據卷、下載secret、獲取容器和節點狀態等工作。kubelet將Pod轉換成一組容器。

  • bube-proxy

    在Noed節點上實現Pod網絡代理,維護網絡規劃和四層復=負載均衡工作。

  • docker或rocker

    容器引擎,運行容器。

Kubernetes核心概念

在這裏插入圖片描述

  • Pod

    最小部署單元
    一組容器的集合
    一個Pod中的容器共享網絡命名空間
    Pod是短暫的

  • Controllers

    ReplicaSet:確保 預期的Pod副本數量
    Deployment :無狀態應用部署
    StatefulSet: 有狀態應用部署
    DaemonSet :確保所有Node運行同一個Pod
    Job:一次性任務
    Cronjob: 定時任務
    更高級層次對象,部署和管理Pod

  • Service

    防止Pod失聯
    定義一組Pod的訪問策略

  • Label: 標籤,附加到某個資源上,用於關聯對象。查詢和篩選

  • Namespaces: 命名空間, 將對象邏輯上隔離

  • Annotations: 註釋

    謝謝閱讀!!!

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