K8S中的資源(主要講解POD資源)

k8s中所有的內(nèi)容都抽象為資源昆汹, 資源實(shí)例化之后辆苔,叫做對(duì)象线椰。

一芝囤、對(duì)象類型介紹:
工作負(fù)載型資源對(duì)象(workload):POD,ReplicaSet禽炬,Deployment饵筑,StatefulSet极景,DaemonSet暑塑,Job吼句,Cronjob ...
服務(wù)發(fā)現(xiàn)及均衡資源對(duì)象:Service,Ingress ...
配置與存儲(chǔ)資源對(duì)象:Volume(存儲(chǔ)卷)事格,CSI(容器存儲(chǔ)接口,可以擴(kuò)展各種各樣的第三方存儲(chǔ)卷)惕艳,ConfigMap,Secret分蓖,DownwardAPI
集群級(jí)資源:Namespace尔艇,Node尔许,Role么鹤,ClusterRole,RoleBinding味廊,ClusterRoleBinding
元數(shù)據(jù)型資源:HPA蒸甜,PodTemplate,LimitRange

二余佛、資源清單

1柠新、查看資源清單:

kubectl get pod name -o yaml
Pod資源清單查看.png

2、資源清單簡(jiǎn)介:
Apiserver僅接收J(rèn)SON格式的資源定義(一般使用yaml格式提供配置清單apiserver可自動(dòng)將其轉(zhuǎn)為json格式辉巡,而后再提交)恨憎,大部分資源的配置清單都由五個(gè)一級(jí)字段組成:

  1. apiVersion: group/apiversion
    如果沒有給定group名稱,那么默認(rèn)為croe郊楣,可以使用kubectl api-versions 獲取當(dāng)前k8s版本上所有的apiVersion版本信息(每個(gè)版本可能不同)
    查看:
kubectl api-versions
查看apiVersion.png
  1. kind:資源類別

  2. metadata:資源元數(shù)據(jù)
    name:(metadata中的name字段在同一類型中必須是唯一的)
    namespace:命名空間
    labels:標(biāo)簽(鍵值數(shù)據(jù))
    annotations:資源注解

  3. spec:資源期望的狀態(tài)

  4. status:當(dāng)前狀態(tài)憔恳,該字段由k8s集群維護(hù),用戶不能對(duì)其進(jìn)行修改净蚤。

其中spec重點(diǎn)介紹一下:
spec.containers.name : pod的名稱钥组,必須字段,名稱唯一且對(duì)象創(chuàng)建后不可以被修改
spec.containers.image :鏡像倉(cāng)庫(kù)的路徑/鏡像的名稱( 鏡像的標(biāo)簽 )
spec.containers.image.imagePullPolicy :鏡像下載策略( Always:總是去倉(cāng)庫(kù)下載今瀑;Never:從不去倉(cāng)庫(kù)下載程梦;IfNotPresent:如果本地沒有就
去倉(cāng)庫(kù)下載点把。默認(rèn)是"IfNotPresent" 但是,如果鏡像的標(biāo)簽是latest屿附,則總會(huì)是"Always郎逃,并且對(duì)象一旦被創(chuàng)建,這個(gè)字段不允許被改變)
spec.containers.ports:容器公開的端口列表挺份。在這里公開端口可以為系統(tǒng)提供關(guān)于容器使用的網(wǎng)絡(luò)連接的額外信息衣厘,但主要是提供信息。在這
里不指定端口不會(huì)阻止該端口被公開压恒。任何監(jiān)聽容器內(nèi)默認(rèn)的“0.0.0.0”地址的端口都可以從網(wǎng)絡(luò)訪問
spec.containers.ports.containerPort:暴露的端口影暴,此端口僅是額外的信息,對(duì)端口是否被暴露沒有影響
spec.containers.ports.hostPort:主機(jī)上公開的端口
spec.containers.ports.protocol:端口的協(xié)議
spec.containers.ports.hostIP:指定要綁定的主機(jī)
spec.containers.command:運(yùn)行的程序探赫,類似于docker中的entrypiont,并且這里的命令不會(huì)運(yùn)行在shell中型宙,如果沒有這個(gè)字段docker鏡像會(huì)
運(yùn)行自己entrypiont中的指令
spec.containers.args:向docker鏡像中傳遞參數(shù) 如果定義了這個(gè)字段,docker鏡像中cmd命令不會(huì)被執(zhí)行伦吠,如果引用變量使
用$(VAR_NAME)格式引用妆兑,如果想使用命令引用的的方式,需要使用$$(VAR_NAME)方式來引用
spec.containers.volumeMounts.mountPath:可以被容器掛載的存儲(chǔ)卷的路徑毛仪,路徑不能包含':' 符號(hào)
spec.containers.volumeMounts.subPath:可以被容器掛載的存儲(chǔ)卷的路徑搁嗓,并且不會(huì)覆蓋掛載點(diǎn)中的文件
spec.containers.volumeMounts.readOnly:是否只讀,默認(rèn)為false
spec.containers.resources.limits:資源限制
spec.containers.resources.limits.cpu :CPU 上限箱靴, 可以短暫超過腺逛, 容器也不會(huì)被停止
spec.containers.resources.limits.memory:內(nèi)存上限, 不可以超過衡怀; 如果超過棍矛, 容器可能會(huì)被終止或調(diào)度到其他資源充足的機(jī)器上
spec.containers.resources.requests:資源需求
spec.containers.resources.requests.cpu:CPU 請(qǐng)求, 也是調(diào)度 CPU 資源的依據(jù)抛杨, 可以超過
spec.containers.resources.requests.memory:內(nèi)存請(qǐng)求够委, 也是調(diào)度內(nèi)存資源的依據(jù), 可以超過怖现; 但如果超過茁帽, 容器可能會(huì)在 Node
內(nèi)存不足時(shí)清理。
spec.nodeSelector:指定對(duì)象的調(diào)度節(jié)點(diǎn),節(jié)點(diǎn)必須存在屈嗤。
spec.restartPolicy:容器的重啟策略潘拨。有三種Always(只要退出就重啟),OnFailure(狀態(tài)為錯(cuò)誤時(shí)重啟)恢共,Never(從不重啟)战秋,kubelet重新啟動(dòng)的已退出容器將以指數(shù)退避延遲(10秒,20秒讨韭,40秒......)重新啟動(dòng)脂信,上限為五分鐘癣蟋,并在成功執(zhí)行十分鐘后重置

3、創(chuàng)建資源配置清單:


創(chuàng)建配置文件.png

配置清單內(nèi)容.png

通過資源配置清單創(chuàng)建POD

kubectl create -f /test-list/lyq-pod-test.yaml
創(chuàng)建pod.png

獲取pod信息:

pod信息.png

對(duì)與配置清單創(chuàng)建的POD我們可以這樣進(jìn)行刪除

kubectl delete -f /test-list/lyq-pod-test.yaml
刪除pod.png

4狰闪、錯(cuò)誤處理
有時(shí)創(chuàng)建的Pod可能會(huì)出現(xiàn)問題:


Pod問題.png

這時(shí)疯搅,我們可以使用 kubectl logs name,來查詢問題原因


錯(cuò)誤日志.png

如果我們需要進(jìn)入pod進(jìn)行排錯(cuò)埋泵,我們可以使用(比如進(jìn)入nginx)

kubectl exec -it lyq-pod-test -c nginx -- bin/sh

三幔欧、POD標(biāo)簽
我們可以使用命令給Pod資源打上標(biāo)簽,方便使用:Kubectl label pods pod名字 標(biāo)簽
如:

kubectl  label  pods  lyq-pod  release=canary

通過標(biāo)簽我們可以是實(shí)現(xiàn)對(duì)POD資源的查詢:
1丽声、kubectl get pods -l release=canary 查詢r(jià)elease標(biāo)簽等于canary的Pod
2礁蔗、kubectl get pods -l release,app 查詢有release標(biāo)簽和app標(biāo)簽的Pod
3、kubectl get pods -l “release in (canary,beta,alpha)” 查詢r(jià)elease標(biāo)簽等于"canary"或"beta"或"alpha"的Pod
4雁社、kubectl get pods -l “release notin (canary,beta,alpha)” 查詢r(jià)elease標(biāo)簽不為"canary"或"beta"或"alpha"的Pod

四浴井、POD的生命周期中的重要行為及常見狀態(tài)
Pod的生命周期中主要有以下兩個(gè)比較重要的行為:
1、使用初始化容器完成初始化
2霉撵、容器探測(cè)(liveness:探測(cè)容器是否處于存活狀態(tài)磺浙;readiness:探測(cè)容器中程序是否能正常提供服務(wù))

探針的類型主要分為以下兩種:
1、存活性探針:針對(duì)liveness
2徒坡、就緒性探針:針對(duì)readiness

存活性探針:

apiVersion: v1
kind: Pod
metadata:
  name: liveness-httpget-pod
spec:
  containers:
  - name: liveness-httpget-pod
    image: ikubernetes/myapp:v1
    imagePullPolicy: IfNotPresent
    livenessProbe:
      httpGet:
        port: 80
        path: /index.html
      initialDelaySeconds: 2
      periodSeconds: 5

就緒性探針:

apiVersion: v1
kind: Pod
metadata:
  name: readiness-httpget-pod
spec:
  containers:
  - name: readiness-httpget-pod
    image: ikubernetes/myapp:v1
    imagePullPolicy: IfNotPresent
    readinessProbe:  
      httpGet:
        port: 80
        path: /index.html
      initialDelaySeconds: 2
      periodSeconds: 5

常見的POD狀態(tài):
Pending: 掛起(POD已創(chuàng)建但是沒有適合運(yùn)行的節(jié)點(diǎn))
Running:運(yùn)行中
Failed:失敗

參考資料:

《每天5分鐘玩轉(zhuǎn)Kubernetes》

《黑馬k8s集群技術(shù)》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撕氧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子喇完,更是在濱河造成了極大的恐慌伦泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件何暮,死亡現(xiàn)場(chǎng)離奇詭異奄喂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)海洼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來富腊,“玉大人坏逢,你說我怎么就攤上這事∽副唬” “怎么了是整?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)民假。 經(jīng)常有香客問我浮入,道長(zhǎng),這世上最難降的妖魔是什么羊异? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任事秀,我火速辦了婚禮彤断,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘易迹。我一直安慰自己宰衙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布睹欲。 她就那樣靜靜地躺著供炼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窘疮。 梳的紋絲不亂的頭發(fā)上袋哼,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音闸衫,去河邊找鬼先嬉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛楚堤,可吹牛的內(nèi)容都是我干的疫蔓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼身冬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼衅胀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酥筝,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤滚躯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嘿歌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體掸掏,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年宙帝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丧凤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡步脓,死狀恐怖愿待,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情靴患,我是刑警寧澤仍侥,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站鸳君,受9級(jí)特大地震影響农渊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜或颊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一砸紊、第九天 我趴在偏房一處隱蔽的房頂上張望传于。 院中可真熱鬧,春花似錦批糟、人聲如沸格了。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盛末。三九已至,卻和暖如春否淤,著一層夾襖步出監(jiān)牢的瞬間悄但,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工石抡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留檐嚣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓啰扛,卻偏偏與公主長(zhǎng)得像嚎京,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子隐解,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容