• 物件 用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的職責是執行容器應用...