k8s入門知識介紹01

2021-10-10 16:14:57 字數 3274 閱讀 6418

[k8s中文社群](

1四組基本概念

pod/pod控制器

name/namespace

lable/label選擇器

service/ingress

1.1 podpod控制器

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(定時任務)

有狀態,週期性任務

1.2 name/namespace

name

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

每種'資源'都應該有自己的'名稱''名稱'通常定義在'資源'的元資料(metadata)資訊中

資源的配置資訊包括

主控節點(master)

運算節點(node)

cli客戶端

kubectl命令列工具

核心附件

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

服務發現外掛程式(coredns)

服務暴露外掛程式(traefik)

gui管理外掛程式(daahboard)

2.1核心元件功能

配置儲存中心-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(推薦)

2.2 k8s的三條網路

節點網路

實際網路,就是宿主機網路

建議位址段:10.11.0.0/24

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

pod 網路

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

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

如: 節點ip為10.11.0.207,則pod網路為172.7.207.0/24

service網路

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

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

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

建議位址段為:192.168.0.0/16

3 k8s流程圖

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

k8s應用01 入門例項

1 關閉防火牆firewalld 2 安裝etcd和kubernetes yum install y etcd kubernetes 會自動安裝docker 3 修改配置檔案 修改docker配置文docker 修改為options selinux enabled false insecure re...

K8s基礎知識介紹

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

k8s 多租戶 k8s 基礎介紹

備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...