k8s的幾個重要的概念

2021-10-04 16:36:39 字數 2636 閱讀 5759

• 物件 用k8s是和什麼打交道? k8s 宣告式api

• yaml檔案 怎麼打交道? 呼叫宣告式api

• 必需字段 怎麼宣告?

apiversion - 建立該物件所使用的 kubernetes api 的版本

kind - 想要建立的物件的型別

metadata - 幫助識別物件唯一性的資料,包括乙個 name 名稱 、

可選的 namespace

spec

status(pod建立完成後k8s自動生成status狀態)

yaml檔案及必需字段

每個api物件都有3大類屬性:元資料metadata、規範spec和狀態status。

spec和status的區別:

spec是期望狀態

status是實際狀態

pod概述:

pod是k8s中的最小單元

乙個pod中可以執行乙個容器,也可以執行多個容器

執行多個容器的話,這些容器是一起被排程的

pod的生命週期是短暫的,不會自癒,是用完就銷毀的實體

一般我們是通過controller來建立和管理pod的

controller:控制器

• replication controller和replicaset

• #標籤選擇器

• ntroller/ #replication controller和replicaset

• deployment

• • statefulset

• daemonset

• job

rc,rs和deployment

• replication controller:副本控制器(selector = !=)

• replicaset:副本控制集,和副本控制器的區別是:對選擇器的支

持(selector 還支援in notin)

• deployment:比rs更高一級的控制器,除了有rs的功能之外,還

有很多高階功能,,比如說最重要的:滾動公升級、回滾等

• service

• why:pod重啟之後ip就變了,pod之間直接訪問會有問題

• what:解耦了服務和應用。

• how:宣告乙個service物件

一般常用的有兩種:

• k8s集群內的service:selector指定pod,自動建立endpoints

• k8s集群外的service:手動建立endpoints,指定外部服務的ip,埠和協議

kube-proxy和service的關係:

kube-proxy——————> k8s-apiserver

watch

kube-proxy監聽著k8s-apiserver,一旦service資源發生變化(調k8s-api修改service資訊),kube-proxy

就會生成對應的負載排程的調整,這樣就保證service的最新狀態。

kube-proxy有三種排程模型:

• userspace:k8s 1.1之前

• iptables:k8s1.10之前

• ipvs:k8s 1.11之後,如果沒有開啟ipvs,則自動降級為iptables

volume

• why:資料和映象解耦,以及容器間的資料共享

• what:k8s抽象出的乙個物件,用來儲存資料,做儲存用

• 常用的幾種卷:

emptydir:本地臨時卷

hostpath:本地卷

nfs等:共享卷

configmap: 配置檔案

emptydir

• 當 pod 被分配給節點時,首先建立 emptydir 卷,並且只要該 pod

在該節點上執行,該卷就會存在。正如卷的名字所述,它最初是

空的。pod 中的容器可以讀取和寫入 emptydir 卷中的相同檔案,

儘管該卷可以掛載到每個容器中的相同或不同路徑上。當出於任

何原因從節點中刪除 pod 時,emptydir 中的資料將被永久刪除。

hostpath

• hostpath 卷將主機節點的檔案系統中的檔案或目錄掛載到集群中,

pod刪除的時候,卷不會被刪除

nfs等共享儲存

• nfs 卷允許將現有的 nfs(網路檔案系統)共享掛載到您的容器中。

不像 emptydir,當刪除 pod 時,nfs 卷的內容被保留,卷僅僅是

被解除安裝。這意味著 nfs 卷可以預填充資料,並且可以在 pod 之間

「切換」資料。 nfs 可以被多個寫入者同時掛載。

configmap

• why:配置資訊和映象解耦

• what:將配置資訊放到configmap物件中,然後在pod的物件

中匯入configmap物件,實現匯入配置的操作

• how:宣告乙個configmap的物件,作為volume掛載到pod中

pv/pvc

• why:實現pod和storage的解耦,這樣我們修改storage的時候不

需要修改pod,也可以實現儲存和應用許可權的隔離

• what:persistentvolume 和 persistentvolumeclaim

k8s重要概念

kubernetes架構圖 下圖為kubernetes的master架構圖 cluster是計算 儲存和網路資源的集合,kubernetes利用這些資源執行各種基於容器的應用。master 是cluster的大腦,它的主要職能就是負責排程,決定應用放在 執行。master執行linux作業系統,可以...

k8s重要概念

kubernetes架構圖 下圖為kubernetes的master架構圖 cluster是計算 儲存和網路資源的集合,kubernetes利用這些資源執行各種基於容器的應用。master 是cluster的大腦,它的主要職能就是負責排程,決定應用放在 執行。master執行linux作業系統,可以...

K8S 重要概念 及 部署K8S集群

cluster是 計算,儲存和網路資源的集合,k8s利用這些資源執行各種基於容器的應用 master是cluster的大腦,他的主要職責是排程,即決定將應用放在 執行。master執行linux作業系統,可以是物理機或者虛擬機器。為了實現高可用,可以執行多個master。node的職責是執行容器應用...