k8s 00 入門知識介紹

2022-07-05 09:36:08 字數 3358 閱讀 6876

目錄2 核心元件與核心附件

3 k8s流程圖

[k8s中文社群](

pod/pod控制器

name/namespace

lable/label選擇器

service/ingress

kubernetes 的pod控制器

podk8s裡能夠被執行的最小邏輯單元

1個pod裡面可以執行多個容器(sidecar 邊車模式)

pod中的容器共享 uts/nat/ipc 命名空間

pod和容器顆粒理解為豌豆莢和豌豆

pod控制器

pod控制器是pod啟動的一種模板

用來保證在k8s裡啟動的pod始終按預期執行

包括副本數\生命週期\健康檢查等

常用的pod控制器:

控 度器名稱

用途簡述

deployment

用於管理無狀態應用,支援滾動更新和回滾

daemonset

確保集群中的每乙個節點上只執行乙個特定的pod副本

replicaset

確保pod副本數量符合使用者期望的數量狀態

statefulset

管理有狀態應用

job有狀態,一次性任務

cronjob(定時任務)

有狀態,週期性任務

name

k8s使用'資源'來定義每一種邏輯概念(功能)

每種'資源'都應該有自己的'名稱'

'名稱'通常定義在'資源'的元資料(metadata)資訊中

資源的配置資訊包括

namespace

命名空間用於隔離k8s內各種資源,類似k8s內部的虛擬分組

同乙個命名空間中,相同資源的名稱不能相同

預設的命名空間為default,kube-system,kube-public

查詢特定資源,要帶上相應的命名空間

lable

標籤的作用是便於分類管理資源物件

標籤與資源之間是多對多的關係

給乙個資源多個標籤,可以實現不同維度的管理

lable選擇器

可以使用標籤選擇器過濾指定的標籤

標籤選擇器有基於等值關係(等於,不等於)和基於集合關係(屬於,存在)的兩種

許多資源都支援內嵌標籤選擇器字段:matchlablesmatchexpressions

service(重點)

pod會分配ip位址,但ip會隨著pod銷毀而消失

多個同型別pod,ip或埠必然不同,但卻相同的服務

service用來提供相同服務pod的對外訪問介面

service通過標籤選擇器來確定作用於哪些pod

service只能提供l4層的排程,即:ip+埠

ingress(重點)

igress也是用來暴露pod的對外訪問介面

igress提供l7層的排程,即http/https

igress可以排程不同業務域,不同url路徑的流量

核心元件

配置儲存中心

主控節點(master)

運算節點(node)

cli客戶端

kubectl命令列工具

核心附件

cni網路外掛程式(flannel/calico)

服務發現外掛程式(coredns)

服務暴露外掛程式(traefik)

gui管理外掛程式(daahboard)

配置儲存中心-etcd

etcd是乙個非關係型資料庫,作用類似於zookeeper註冊中心

用於各種服務的註冊和資料快取

kube-apiserver(master)

提供季軍管理的rest api介面,包括鑑權、資料校驗、集群狀態變更

負責其他模組之間的資料互動,承擔通訊樞紐的功能

和etcd通訊,是資源配額控制的入口

提供玩備的集群控制機制

kube-controller-manager

由一系列控制器組成,通過apiserver監控整個集群的狀態,確保集群處於預期的工作狀態

是管理所有控制器的控制器

kube-scheduler

主要是接收排程pod到合適的node節點上

通過apiserver,從etcd中獲取資源資訊進行排程

只負責排程工作,啟動工作是node節點上的kubelet負責

排程策略:預算策略(predict)、優選策略(priorities)

kube-kubelet

定時從apiserver獲取節點上pod的期望狀態(如副本數量、網路型別、儲存空間、容器型別等)然後呼叫容器平台介面達到這個狀態

提供pod節點具體使用的網路

定時匯報當前節點狀態給apiserver,以供排程

複製映象和容器的建立和清理工作

kube-proxy

是k8s在每個節點上執行網路的**,service資源的載體

不直接為pod節點提供網路,而是提供pod間的集群網路

建立了pod網路和集群網路的關係(clusterip->podip)

負責建立、刪除、更新排程規則

與apiserver通訊,以更新自己和獲取其他kube-proxy的的排程規則

常用的排程模式:iptables(不推薦)、ipvs(推薦)

建議通過不同的ip端,區分不同的業務、機房或資料中心

pod 網路

實際網路,容器執行的網路

建議172.7.21.0/24,並建議pod網段與節點ip繫結

如: 節點ip為10.4.7.21,則pod網路為172.7.21.0/24

service網路

虛擬網路,也叫集群網路(cluster server),用於內部集群間通訊

構建於pod網路之上, 主要是解決服務發現和負載均衡

通過kube-proxy連線pod網路和service網路

建議位址段為:192.168.0.0/16

說明:主控節點和node節點只是邏輯上的概念,物理上可以部署在一起

k8s 00 入門知識介紹

目錄 2 核心元件與核心附件 3 k8s流程圖 k8s中文社群 pod pod控制器 name namespace lable label選擇器 service ingress kubernetes 的pod控制器 podk8s裡能夠被執行的最小邏輯單元 1個pod裡面可以執行多個容器 sideca...

k8s入門知識介紹01

k8s中文社群 1四組基本概念 pod pod控制器 name namespace lable label選擇器 service ingress 1.1 pod和pod控制器 kubernetes 的pod控制器 podk8s裡能夠被執行的最小邏輯單元 1個pod裡面可以執行多個容器 sidecar...

K8s基礎知識介紹

k8s是源自於谷歌內部的borg系統 容器編排工具 後經過go語言重寫並捐獻給了cncf 會開源。它的主要作用就是作為容器的開源編排框架工具。官網 一年發布四個大版本 github 自動裝箱,水平擴充套件,自我修復 服務發現和負載均衡 自動發布 預設滾動發布模式 和回滾 集中配置管理和秘鑰管理 儲存...