k8s入門系列之介紹篇

•Kubernetes介紹
1.背景介紹
  雲計算飛速發展
    - IaaS
    - PaaS
    - SaaS
  Docker技術日新月異
    - 一次構建,處處運行
    - 容器的快速輕量
    - 完整的生態環境
2.什麼是kubernetes
  Kubernetes(k8s)是Google開源的容器集羣管理系統(谷歌內部:Borg)。在Docker技術的基礎上,爲容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等一系列完整功能,提升了大規模容器集羣管理的便捷性。
  Kubernetes優點:
    - 容器編排
    - 輕量級
    - 開源
    - 彈性伸縮
    - 負載均衡node

•Kubernetes的核心概念
1.Pod
  運行於Node節點上,若干相關容器的組合。Pod內包含的容器運行在同一宿主機上,使用相同的網絡命名空間、IP地址和端口,可以經過localhost進行通。Pod是Kurbernetes進行建立、調度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。一個Pod能夠包含一個容器或者多個相關容器。
2.Replication Controller
  Replication Controller用來管理Pod的副本,保證集羣中存在指定數量的Pod副本。集羣中副本的數量大於指定數量,則會中止指定數量以外的多餘容器數量,反之,則會啓動少於指定數量個數的容器,保證數量不變。Replication Controller是實現彈性伸縮、動態擴容和滾動升級的核心。
3.Service
  Service定義了Pod的邏輯集合和訪問該集合的策略,是真實服務的抽象。Service提供了一個統一的服務訪問入口以及服務代理和發現機制,用戶不須要了解後臺Pod是如何運行。
4.Label
  Kubernetes中的任意API對象都是經過Label進行標識,Label的實質是一系列的K/V鍵值對。Label是Replication Controller和Service運行的基礎,兩者經過Label來進行關聯Node上運行的Pod。
5.Node
  Node是Kubernetes集羣架構中運行Pod的服務節點(亦叫agent或minion)。Node是Kubernetes集羣操做的單元,用來承載被分配Pod的運行,是Pod運行的宿主機。後端

•Kubernetes架構和組件
架構:網絡

  
主從分佈式架構,Master/Node
  - 服務分組,小集羣,多集羣
  - 服務分組,大集羣,單集羣
組件:
  Kubernetes Master控制組件,調度管理整個系統(集羣),包含以下組件:
  1.Kubernetes API Server
    做爲Kubernetes系統的入口,其封裝了核心對象的增刪改查操做,以RESTful API接口方式提供給外部客戶和內部組件調用。維護的REST對象持久化到Etcd中存儲。
  2.Kubernetes Scheduler
    爲新創建的Pod進行節點(node)選擇(即分配機器),負責集羣的資源調度。組件抽離,能夠方便替換成其餘調度器。
  3.Kubernetes Controller
    負責執行各類控制器,目前已經提供了不少控制器來保證Kubernetes的正常運行。架構

   - Replication Controller
    管理維護Replication Controller,關聯Replication Controller和Pod,保證Replication Controller定義的副本數量與實際運行Pod數量一致。
   - Node Controller
    管理維護Node,按期檢查Node的健康狀態,標識出(失效|未失效)的Node節點。
   - Namespace Controller
    管理維護Namespace,按期清理無效的Namespace,包括Namesapce下的API對象,好比Pod、Service等。
   - Service Controller
    管理維護Service,提供負載以及服務代理。
   - EndPoints Controller
    管理維護Endpoints,關聯Service和Pod,建立Endpoints爲Service的後端,當Pod發生變化時,實時更新Endpoints。
   - Service Account Controller
    管理維護Service Account,爲每一個Namespace建立默認的Service Account,同時爲Service Account建立Service Account Secret。
   - Persistent Volume Controller
    管理維護Persistent Volume和Persistent Volume Claim,爲新的Persistent Volume Claim分配Persistent Volume進行綁定,爲釋放的Persistent Volume執行清理回收。
   - Daemon Set Controller
    管理維護Daemon Set,負責建立Daemon Pod,保證指定的Node上正常的運行Daemon Pod。
   - Deployment Controller
    管理維護Deployment,關聯Deployment和Replication Controller,保證運行指定數量的Pod。當Deployment更新時,控制實現Replication Controller和 Pod的更新。
   - Job Controller
    管理維護Job,爲Jod建立一次性任務Pod,保證完成Job指定完成的任務數目
   - Pod Autoscaler Controller
    實現Pod的自動伸縮,定時獲取監控數據,進行策略匹配,當知足條件時執行Pod的伸縮動做。

  Kubernetes Node運行節點,運行管理業務容器,包含以下組件:
  1.Kubelet
    負責管控容器,Kubelet會從Kubernetes API Server接收Pod的建立請求,啓動和中止容器,監控容器運行狀態並彙報給Kubernetes API Server。
  2.Kubernetes Proxy
    負責爲Pod建立代理服務,Kubernetes Proxy會從Kubernetes API Server獲取全部的Service信息,並根據Service的信息建立代理服務,實現Service到Pod的請求路由和轉發,從而實現Kubernetes層級的虛擬轉發網絡。
  3.Docker
    Node上須要運行容器服務。負載均衡

相關文章
相關標籤/搜索