国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Kubernetes(k8s)容器編排Pod介紹和使用

這篇具有很好參考價值的文章主要介紹了Kubernetes(k8s)容器編排Pod介紹和使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


1 Pod 特點

容器pod,kubernetes,docker,容器

Pod是kubernetes中你可以創(chuàng)建和部署的最小也是最簡的單位,一個Pod代表著集群中運行的一個進程。

	Pod中封裝著應用的容器(有的情況下是好幾個容器),存儲、獨立的網(wǎng)絡IP,管理容器如何運行的策略選項,Pod代表著部署的一個單位:kubernetes中應用的一個實例,可能由一個或者多個容器組合在一起共享資源。

Pod有兩個必須知道的特點

1.1 網(wǎng)絡

	每一個Pod都會被指派一個唯一的Ip地址,在Pod中的每一個容器共享網(wǎng)絡命名空間,包括Ip地址和網(wǎng)絡端口,在同一個Pod中的容器可以同locahost進行互相通信,當Pod中的容器需要與Pod外的實體進行通信時,則需要通過端口等共享的網(wǎng)絡資源。

1.2 存儲

	Pod能夠配置共享存儲卷,在Pod中所有的容器能夠訪問共享存儲卷,允許這些容器共享數(shù)據(jù),存儲卷也允許在一個Pod持久化數(shù)據(jù),以防止其中的容器需要被重啟。

2 使用方式

2.1 自主式Pod

	這種Pod本身是不能自我修復的,當Pod被創(chuàng)建后(不論是由你直接創(chuàng)建還是被其他Controller),都會被Kuberentes調度到集群的Node上,直到Pod的進程終止、被刪掉、因為缺少資源而被驅逐、或者Node故障之前這個Pod都會一直保持在那個Node上,Pod不會自愈。

	如果Pod運行的Node故障,或者是調度器本身故障,這個Pod就會被刪除,同樣的,如果Pod所在Node缺少資源或者Pod處于維護狀態(tài),Pod也會被驅逐。

2.2 控制器管理的Pod

	Kubernetes使用更高級的稱為Controller的抽象層,來管理Pod實例,Controller可以創(chuàng)建和管理多個Pod,提供副本管理、滾動升級和集群級別的自愈能力。

	例如,如果一個Node故障,Controller就能自動將該節(jié)點上的Pod調度到其他健康的Node上。雖然可以直接使用Pod,但是在Kubernetes中通常是使用Controller來管理Pod的

3 自主運行Pod

3.1 創(chuàng)建資源清單

通過yaml文件或者json描述Pod和其內容器的運行環(huán)境和期望狀態(tài),例如一個最簡單的運行nginx應用的pod,定義如下

vi nginx-pod.yml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.12
    ports:
    - containerPort: 80

3.1.1 參數(shù)描述

下面簡要分析一下上面的Pod定義文件:

  • apiVersion: 使用哪個版本的Kubernetes API來創(chuàng)建此對象
  • kind:要創(chuàng)建的對象類型,例如Pod,Deployment等
  • metadata:用于唯一區(qū)分對象的元數(shù)據(jù),包括:name,UID和namespace
  • labels:是一個個的key/value對,定義這樣的label到Pod后,其他控制器對象可以通過這樣的label來定位到此Pod,從而對Pod進行管理。(參見Deployment等控制器對象)
  • spec: 其它描述信息,包含Pod中運行的容器,容器中運行的應用等等。不同類型的對象擁有不同的spec定義。詳情參見API文檔

3.2 創(chuàng)建Pod

使用kubectl創(chuàng)建pod

kubectl apply -f nginx-pod.yml

容器pod,kubernetes,docker,容器

3.3 Pod操作

3.3.1 查看Pod列表

kubectl get pods

容器pod,kubernetes,docker,容器

可以通過增加 -o wide查看詳細信息

kubectl get pods -o wide

容器pod,kubernetes,docker,容器

3.3.2 查看描述信息

可以通過describe查看pod的詳細信息

kubectl describe pod nginx

容器pod,kubernetes,docker,容器

3.3.3 訪問pod

可以通過k8s創(chuàng)建的虛擬IP進行訪問,可以在k8s的任何一個節(jié)點訪問

 curl 10.244.1.10

容器pod,kubernetes,docker,容器

3.3.4 刪除Pod

可以使用delete刪除Pod,刪除后不能進行恢復

kubectl delete pod nginx

容器pod,kubernetes,docker,容器

4 控制器運行Pod

Pod本身不具備容錯性,這意味著如果Pod運行的Node宕機了,那么該Pod無法恢復,因此推薦使用Deployment等控制器來創(chuàng)建Pod并管理。

4.1 創(chuàng)建資源清單

通過yaml文件或者json描述Pod和其內容器的運行環(huán)境和期望狀態(tài),例如一個最簡單的運行nginx應用的pod,定義如下

vi nginx-pod.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
        app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12
        ports:
        - containerPort: 80

4.2 參數(shù)描述

下面簡要分析一下上面的Pod定義文件:

4.2.1 Replicas

副本數(shù)量

	spec.replicas 是可以選字段,指定期望的pod數(shù)量,默認是1。

4.2.2 Selector

標簽選擇器

	.spec.selector是可選字段,用來指定 label selector ,圈定Deployment管理的pod范圍。如果被指定, .spec.selector 必須匹配 .spec.template.metadata.labels,否則它將被API拒絕。如果 .spec.selector 沒有被指定, .spec.selector.matchLabels 默認是.spec.template.metadata.labels。

	在Pod的template跟.spec.template不同或者數(shù)量超過了.spec.replicas規(guī)定的數(shù)量的情況下,Deployment會殺掉label跟selector不同的Pod。

4.2.3 Pod Template

Pod模板,.spec.template 是 .spec中唯一要求的字段。

	.spec.template 是 pod template,它跟 Pod有一模一樣的schema,除了它是嵌套的并且不需要apiVersion 和 kind字段。

	另外為了劃分Pod的范圍,Deployment中的pod template必須指定適當?shù)膌abel(不要跟其他controller重復了,參考selector)和適當?shù)闹貑⒉呗浴?
	.spec.template.spec.restartPolicy 可以設置為 Always , 如果不指定的話這就是默認配置。

4.3 創(chuàng)建Pod

kubectl apply -f nginx-pod.yml

kubectl get pods -o wide

創(chuàng)建后發(fā)現(xiàn),有兩個nginx的pod在運行,符合我們的預期

容器pod,kubernetes,docker,容器

4.4 Pod操作

4.4.1 刪除Pod

這里可以嘗試刪除Pod

kubectl delete pod nginx-deployment-f77774fc5-cgs82
# 查看Pod詳情
kubectl get pods -o wide

刪除Pod后發(fā)現(xiàn)重新新建了一個Pod,這是因為有控制器發(fā)現(xiàn)少了一個Pod就會進行重新拉起來一個

容器pod,kubernetes,docker,容器

5 鏡像拉取策略

pod的鏡像拉取策略分為三種:

  • always(總是從官方下載鏡像)
  • never(從不下載鏡像)
  • ifnotpresent(如果本地沒有鏡像就從官方下載鏡像)。

Kubernetes集群默認使用IfNotPresent策略

5.1 always

不管是否存在本地鏡像,總是從遠程倉庫下載

5.1.1 修改資源清單

我們可以通過修改配置清單來配置不同的策略

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
        app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12
        imagePullPolicy: Always
        ports:
        - containerPort: 80

5.1.2 生效配置

kubectl apply -f nginx-pod.yml

容器pod,kubernetes,docker,容器

5.1.3 查看創(chuàng)建過程

kubectl describe pod nginx-deployment

可以清楚的看到重新下載而沒有使用本地鏡像

容器pod,kubernetes,docker,容器

5.2 IfNotPresent

Kubernetes集群的默認策略,如果有本地鏡像就使用,沒有則從遠程倉庫下載

5.2.1 修改資源清單

我們可以通過修改配置清單來配置不同的策略

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
        app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.12
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80

5.2.2 生效配置

kubectl apply -f nginx-pod.yml

容器pod,kubernetes,docker,容器

5.2.3 查看創(chuàng)建過程

kubectl describe pod nginx-deployment

可以清楚的看到?jīng)]有重新下載鏡像而是使用本地的鏡像。

容器pod,kubernetes,docker,容器

6 Pod生命周期

6.1 各個階段

POD中明確規(guī)定了如下幾個階段

狀態(tài)值 說明
掛起(Pending) Pod 已被 Kubernetes 系統(tǒng)接受,但有一個或者多個容器鏡像尚未創(chuàng)建,等待時間包括調度 Pod 的時間和通過網(wǎng)絡下載鏡像的時間。
運行中(Running) 該 Pod 已經(jīng)綁定到了一個節(jié)點上,Pod 中所有的容器都已被創(chuàng)建。至少有一個容器正在運行,或者正處于啟動或重啟狀態(tài)。
成功(Succeeded) Pod 中的所有容器都被成功終止,并且不會再重啟。
失?。‵ailed) Pod 中的所有容器都已終止了,并且至少有一個容器是因為失敗終止。也就是說,容器以非0狀態(tài)退出或者被系統(tǒng)終止。
未知(Unknown) 因為某些原因無法取得 Pod 的狀態(tài),通常是因為與 Pod 所在主機通信失敗。
	實際上還有一中狀態(tài)Terminating,在代碼和文檔中都沒有說明,但卻是存在。這種情況出現(xiàn)雜無法獲取所在主機的資源情況,一直在嘗試建立連接。

6.2 Pod重啟策略

在Pod中的容器可能會由于異常等原因導致其終止退出,Kubernetes提供了重啟策略以重啟容器。

	Pod通過`restartPolicy`字段指定重啟策略,重啟策略類型為:Always、OnFailure 和 Never,默認為 Always。

	重啟策略對同一個Pod的所有容器起作用,容器的重啟由Node上的kubelet執(zhí)行。Pod支持三種重啟策略,在配置文件中通過`restartPolicy`字段設置重啟策略:
重啟策略 說明
Always 當容器失效時,由kubelet自動重啟該容器
OnFailure 當容器終止運行且退出碼不為0時,由kubelet自動重啟該容器
Never 不論容器運行狀態(tài)如何,kubelet都不會重啟該容器

注意:這里的重啟是指在Pod的宿主Node上進行本地重啟,而不是調度到其它Node上。

6.3 Pod狀態(tài)轉換

Pod的容器數(shù) Pod當前狀態(tài) 發(fā)生的事件 Pod結果狀態(tài)
RestartPolicy=Always RestartPolicy=OnFailure RestartPolicy=Never
包含一個容器 Running 容器成功退出 Running Succeeded Succeeded
包含一個容器 Running 容器失敗退出 Running Running Failure
包含兩個容器 Running 1個容器失敗退出 Running Running Running
包含兩個容器 Running 容器被OOM殺掉 Running Running Failure

6.4 生命周期行為

6.4.1 初始化容器

初始化容器(init container)即應用程序的主容器啟動之前要運行的容器,常用于為主容器執(zhí)行一些預置操作,它們具有兩種典型特征。

  1. 初始化容器必須運行完成直至結束,若某初始化容器運行失敗,那么kubernetes需要重啟它直到成功完成。(注意:如果podspec.restartPolicy字段值為“Never”,那么運行失敗的初始化容器不會被重啟。)
  2. 每個初始化容器都必須按定義的順序串行運行。

6.4.2 容器探測

容器探測(container probe)是Pod對象生命周期中的一項重要的日常任務,它是kubelet對容器周期性執(zhí)行的健康狀態(tài)診斷,診斷操作由容器的處理器(handler)進行定義,Kubernetes支持三種處理器用于Pod探測:

  • ExecAction:在容器內執(zhí)行指定命令,并根據(jù)其返回的狀態(tài)碼進行診斷的操作稱為Exec探測,狀態(tài)碼為0表示成功,否則即為不健康狀態(tài)。
  • TCPSocketAction:通過與容器的某TCP端口嘗試建立連接進行診斷,端口能夠成功打開即為正常,否則為不健康狀態(tài)。
  • HTTPGetAction:通過向容器IP地址的某指定端口的指定path發(fā)起HTTP GET請求進行診斷,響應碼為2xx3xx時即為成功,否則為失敗。

任何一種探測方式都可能存在三種結果:“Success”(成功)、“Failure”(失?。?/code>、“Unknown”(未知),只有success表示成功通過檢測。文章來源地址http://www.zghlxwxcb.cn/news/detail-718574.html

到了這里,關于Kubernetes(k8s)容器編排Pod介紹和使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點、Node工作負載節(jié)點、Pod控制單元

    云原生 黑馬Kubernetes教程(K8S教程)筆記——第一章 kubernetes介紹——Master集群控制節(jié)點、Node工作負載節(jié)點、Pod控制單元

    參考文章:kubernetes介紹 本章節(jié)主要介紹應用程序在服務器上部署方式演變以及kubernetes的概念、組件和工作原理。 在部署應用程序的方式上,主要經(jīng)歷了三個時代: 傳統(tǒng)部署:互聯(lián)網(wǎng)早期,會直接將應用程序部署在物理機上 優(yōu)點:簡單,不需要其它技術的參與 缺點:不能為

    2024年02月04日
    瀏覽(35)
  • Java操作k8s api示例:使用kubeconfig文件認證;獲取所有pod;獲取pod內應用容器的啟動日志

    公司準備將應用容器化部署,先使用了華為云的 Kubernetes 服務,后面又使用阿里云的 Kubernetes 服務。并短期一個月內無法判斷走哪個云商。而作為一個在公司內部用于應用發(fā)布,部署的應用。在對接完華為云的 Kubernetes 服務 Api 后。再對接阿里云發(fā)現(xiàn)阿里云并沒用像華為云一

    2023年04月09日
    瀏覽(96)
  • 【Kubernetes】K8s 查看 Pod 的狀態(tài)

    NAME :Pod 的名稱。 READY :代表 Pod 里面有幾個容器,前面是啟動的,后面是總數(shù), 1 / 1 1/1 1/1 。 STATUS :就是當前 Pod 狀態(tài),最常見的就是 Running 正在運行,最期望的狀態(tài),只要不是 Running 的就說明有問題,就算是 Running 的就不一定沒有問題。 狀態(tài) 說明 Pending 掛起 在執(zhí)行創(chuàng)建

    2024年01月15日
    瀏覽(138)
  • k8s 多容器pod進入指定容器

    k8s 多容器pod進入指定容器

    kubectl exec -it prometheus-prometheus-server-697cccff9c-qtrf7 -c prometheus-server sh

    2024年02月14日
    瀏覽(93)
  • K8S | 容器和Pod組件

    K8S | 容器和Pod組件

    對比軟件安裝和運行; 作為研發(fā)人員,通常自己電腦的系統(tǒng)環(huán)境都是非常復雜,在個人的習慣上,是按照下圖的模塊管理電腦的系統(tǒng)環(huán)境; 對于「基礎設施」、「主機操作系統(tǒng)」、「系統(tǒng)軟件」來說,通常只做配置修改; 對于自行安裝的軟件環(huán)境來說,個人通常這樣分類:

    2024年02月11日
    瀏覽(115)
  • K8s(四)Pod資源——pod生命周期、重啟策略、容器鉤子與容器探測

    目錄 Pod生命周期 Pod重啟策略 初始化容器 容器鉤子 容器探測 啟動探測 存活探測 就緒探測 參考資料 Pod 的生命周期 | Kubernetes Init 容器 | Kubernetes Pod的生命周期可以分為以下幾個階段: Pending(等待):在這個階段,Pod被創(chuàng)建,并且正在等待被調度到一個節(jié)點上運行。此時,

    2024年01月20日
    瀏覽(43)
  • kubernetes(k8s) pod(資源限制、基礎概念)

    kubernetes(k8s) pod(資源限制、基礎概念)

    目錄 ?一、資源限制 1、概念 1.2、Pod和容器的資源請求和限制 1.3、CPU資源單位 1.4、內存資源單位 1.5、CPU和內存的Requests和Limits的特點 1.6、案例 二、pod 的兩種使用方式 三、pod 資源共享 四、底層容器Pause 1、pause 共享資源 1.1、網(wǎng)絡 1.2、存儲 1.3、小結 2、Pause主要功能 3、Pod

    2024年02月05日
    瀏覽(103)
  • Kubernetes(k8s)核心資源解析:Pod詳解

    Kubernetes(k8s)核心資源解析:Pod詳解

    ??The Begin??點點關注,收藏不迷路?? Pod是Kubernetes中最小的調度單元,它可以包含一個或多個容器。Pod中的所有容器共享網(wǎng)絡和存儲卷,它們一起運行在同一個節(jié)點上。Pod提供了一種抽象層,使得容器可以作為一個邏輯單元來管理。 Pod中的容器共享IP地址、端口空間和存儲

    2024年04月11日
    瀏覽(102)
  • k8s pod 容器間測試接口

    1、配置k8s 詳細的配置參考官網(wǎng) 2、獲取pod節(jié)點PODID信息 3、進入到pod容器內部 4、安裝CURL 5、調用測試接口 6、查看調用工程的Pod的日志

    2024年02月12日
    瀏覽(92)
  • K8s Pod狀態(tài)與容器探針

    K8s Pod狀態(tài)與容器探針

    Pod創(chuàng)建過程如上圖所示,首先用戶向apiserver發(fā)送創(chuàng)建pod的請求,apiserver收到用于創(chuàng)建pod請求后,對應會對該用戶身份信息進行驗證,該用戶是否是合法的用戶,是否具有創(chuàng)建pod的權限,如果能夠通過apiserver的驗證,則進行下一步,對用戶提交的資源進行準入控制,所謂準入控

    2024年02月07日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包