天天看點

Kubernetes核心概念

Pod

  • Pod是K8s中最小的單元
  • 一組容器的集合
  • 共享網絡【一個Pod中的所有容器共享同一網絡】
  • 生命周期是短暫的(伺服器重新開機後,就找不到了)

Volume

  • 聲明在Pod容器中可通路的檔案目錄
  • 可以被挂載到Pod中一個或多個容器指定路徑下
  • 支援多種後端存儲抽象【本地存儲、分布式存儲、雲存儲】

Controller

  • 確定預期的pod副本數量【ReplicaSet】
  • 無狀态應用部署【Depoltment】
    • 無狀态就是指,不需要依賴于網絡或者ip
  • 有狀态應用部署【StatefulSet】
    • 有狀态需要特定的條件
  • 確定所有的node運作同一個pod 【DaemonSet】
  • 一次性任務和定時任務【Job和CronJob】

Deployment

  • 定義一組Pod副本數目,版本等
  • 通過控制器【Controller】維持Pod數目【自動回複失敗的Pod】
  • 通過控制器以指定的政策控制版本【滾動更新、復原等】

Service

  • 定義一組pod的通路規則
  • Pod的負載均衡,提供一個或多個Pod的穩定通路位址
  • 支援多種方式【ClusterIP、NodePort、LoadBalancer】

可以用來組合pod,同時對外提供服務

Label

label:标簽,用于對象資源查詢,篩選

Namespace

命名空間,邏輯隔離

  • 一個叢集内部的邏輯隔離機制【鑒權、資源】
  • 每個資源都屬于一個namespace
  • 同一個namespace所有資源不能重複
  • 不同namespace可以資源名重複

API

我們通過Kubernetes的API來操作整個叢集

同時我們可以通過 kubectl 、ui、curl 最終發送 http + json/yaml 方式的請求給API Server,然後控制整個K8S叢集,K8S中所有的資源對象都可以采用 yaml 或 json 格式的檔案定義或描述

如下:使用yaml部署一個nginx的pod

Kubernetes核心概念

繼續閱讀