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

K8s(四)Pod資源——pod生命周期、重啟策略、容器鉤子與容器探測

這篇具有很好參考價值的文章主要介紹了K8s(四)Pod資源——pod生命周期、重啟策略、容器鉤子與容器探測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

Pod生命周期

Pod重啟策略

初始化容器

容器鉤子

容器探測

啟動探測

存活探測

就緒探測


參考資料

Pod 的生命周期 | Kubernetes

Init 容器 | Kubernetes

Pod的生命周期可以分為以下幾個階段:

  1. Pending(等待):在這個階段,Pod被創(chuàng)建,并且正在等待被調(diào)度到一個節(jié)點上運行。此時,Pod的容器鏡像正在下載,網(wǎng)絡(luò)和存儲資源正在分配。
  2. Running(運行中):一旦Pod成功調(diào)度到節(jié)點上,它進入Running狀態(tài)。在此階段,Pod中的容器開始在節(jié)點上運行,并且可以處理請求。
  3. Succeeded(成功):如果Pod中的所有容器成功完成了它們的任務(wù),并且退出狀態(tài)碼為0,那么Pod將進入Succeeded狀態(tài)。一般情況下,這意味著Pod已經(jīng)完成了它的工作。
  4. Failed(失?。喝绻鸓od中的任何容器以非零的退出狀態(tài)碼退出,或者其中一個容器無法啟動,那么Pod將進入Failed狀態(tài)。這表示Pod執(zhí)行出現(xiàn)了問題。
  5. Unknown(未知):如果無法獲取Pod的狀態(tài)信息,或者與Pod關(guān)聯(lián)的節(jié)點失去聯(lián)系,那么Pod將進入Unknown狀態(tài)。

除了這些基本的生命周期階段,Pod還可以經(jīng)歷一些其他的狀態(tài)轉(zhuǎn)換,例如:

  • Terminating(終止中):當(dāng)Pod被刪除或終止時,它進入Terminating狀態(tài)。在此階段,Pod的容器正在停止,并且資源正在釋放。
  • Evicted(驅(qū)逐):如果節(jié)點上的資源不足,Kubernetes可能會驅(qū)逐Pod,將其從節(jié)點上移除。這將導(dǎo)致Pod進入Evicted狀態(tài)。
  • ContainerCreating(創(chuàng)建容器):當(dāng)Pod的容器正在創(chuàng)建時,Pod將進入ContainerCreating狀態(tài)。這通常發(fā)生在調(diào)度期間,當(dāng)容器鏡像正在下載或容器正在啟動時。

這些狀態(tài)和狀態(tài)轉(zhuǎn)換代表了Pod在其生命周期中可能經(jīng)歷的不同階段和情況。Kubernetes通過監(jiān)控和管理Pod的狀態(tài)來確保Pod的正常運行和可靠性。 ——以上內(nèi)容由gpt生成

Pod生命周期

Pod生命周期一般包含以下幾個流程:

1、創(chuàng)建pause容器
主要目的是為了實現(xiàn)Pod級別的網(wǎng)絡(luò)和存儲隔離。當(dāng)Pod中有多個容器時,這些容器共享相同的網(wǎng)絡(luò)命名空間和存儲卷。Pause容器的存在使得每個容器都可以共享同一個網(wǎng)絡(luò)命名空間和存儲卷,從而實現(xiàn)它們之間的通信和數(shù)據(jù)共享。

2、創(chuàng)建初始化容器
初始化容器是在Kubernetes中用于在主應(yīng)用容器之前運行的特殊容器。它的作用是在主應(yīng)用啟動之前完成一些準(zhǔn)備工作,比如加載配置、準(zhǔn)備數(shù)據(jù)或解決依賴項。它可以確保主應(yīng)用容器在啟動時具備必要的環(huán)境和資源。

初始化容器是串行運行的,一個初始化容器運行成功才能運行下一個初始化容器,全部執(zhí)行完才能執(zhí)行主容器,并且初始化容器內(nèi)的數(shù)據(jù)可以被主容器用到。

初始化容器不支持pod就緒探測,因為初始化容器在pod就緒之前就已經(jīng)完成

如果初始化容器運行失敗,k8s也會根據(jù)重啟策略restartPolicy決定是否進行重啟

3、主容器

4、前置鉤子/容器停止前鉤子(PreStop Hook)

5、后置鉤子/容器啟動后鉤子(PostStart Hook) 后置鉤子是在容器啟動后立即運行的命令或腳本。它可以用于在容器啟動后執(zhí)行一些初始化任務(wù),例如加載配置或啟動輔助進程。

Pod重啟策略

當(dāng)容器異常時,可以通過設(shè)置RestartPolicy字段,設(shè)置pod重啟策略來對pod進行重啟等操作

#查看幫助
kubectl explain pod.spec.restartPolicy
KIND:     Pod
VERSION:  v1
FIELD:    restartPolicy <string>
DESCRIPTION:
     Restart policy for all containers within the pod. One of Always, OnFailure,
     Never. Default to Always. More info:
     <https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy>
     Possible enum values:
     - `"Always"`   #只要異常退出,立即自動重啟
     - `"Never"`    #不會重啟容器
     - `"OnFailure"`#容器錯誤退出,即退出碼不為0時,則自動重啟

#測試Always策略,創(chuàng)建always.yaml
cat > always.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: always-pod
  namespace: default
spec:
  restartPolicy: Always
  containers:
   - name: test-pod
     image: docker.io/library/tomcat
     imagePullPolicy: IfNotPresent
EOF
kubectl apply -f always.yaml
kubectl get po #查看狀態(tài)
NAME         READY   STATUS    RESTARTS   AGE
always-pod   1/1     Running   0          22s
#進入容器去關(guān)閉容器
kubectl exec -it always-pod -- /bin/bash
shutdown.sh
#查看當(dāng)前狀態(tài),可以看到always-pod重啟計數(shù)器為1
kubectl get po
NAME         READY   STATUS    RESTARTS     AGE
always-pod   1/1     Running   1 (5s ago)   70s

#測試never策略,創(chuàng)建never.yaml
cat > never.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: never-pod
  namespace: default
spec:
  restartPolicy: Never
  containers:
   - name: test-pod
     image: docker.io/library/tomcat
     imagePullPolicy: IfNotPresent
EOF
kubectl apply -f never.yaml
kubectl exec -it never-pod -- /bin/bash
shutdown.sh
#不會重啟,狀態(tài)為completed
kubectl get pods | grep never
never-pod    0/1     Completed   0            73s

#測試OnFailure策略,創(chuàng)建onfailure.yaml
cat > onfailure.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: onfailure-pod
  namespace: default
spec:
  restartPolicy: OnFailure
  containers:
   - name: test-pod
     image: docker.io/library/tomcat
     imagePullPolicy: IfNotPresent
EOF
kubectl apply -f onfailure.yaml
#進去后進行異常退出
kubectl exec -it onfailure-pod -- /bin/bash
kill 1
#查看pods狀態(tài),已經(jīng)重啟
kubectl get po  | grep onfailure
onfailure-pod   1/1     Running     1 (43s ago)   2m11s
#進入后進行正常退出
kubectl exec -it onfailure-pod -- /bin/bash
shutdown.sh
#查看pods狀態(tài),沒有重啟,進入completed狀態(tài)
kubectl get po  | grep onfailure
onfailure-pod   0/1     Completed   1             3m58s

#清理環(huán)境
kubectl delete -f always.yaml
kubectl delete -f never.yaml
kubectl delete -f onfailure.yaml

初始化容器

參考資料Init Containers | Kubernetes

#查看幫助
kubectl explain pod.spec.initContainers #初始化容器字段與container區(qū)別不大

#創(chuàng)建一個初始化容器的yaml
cat > init1.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: init1
  namespace: default
spec:
  initContainers:
   - name: init1
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     command: ["echo","the first test"]
   - name: init2
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     command: ["/bin/bash","-c","echo 'the secend test'"]
  containers:
   - name: test
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
EOF
kubectl apply -f init1.yaml
#持續(xù)監(jiān)控pod狀態(tài),可以看到經(jīng)過了兩個init狀態(tài),初始化完成后進入running狀態(tài)
kubectl get pods -w
NAME    READY   STATUS    RESTARTS   AGE
init1   0/1     Pending   0          0s
init1   0/1     Pending   0          0s
init1   0/1     Init:0/2   0          0s
init1   0/1     Init:0/2   0          1s
init1   0/1     Init:1/2   0          2s
init1   0/1     PodInitializing   0          3s
init1   1/1     Running           0          4s

容器鉤子

參考文檔 Container Lifecycle Hooks | Kubernetes

容器啟動后鉤子(PostStart
容器停止前鉤子(PreStop
#查看幫助
kubectl explain pods.spec.containers.lifecycle
postStart    <Object>
preStop      <Object>
kubectl explain pods.spec.containers.lifecycle.postStart
exec <Object>
httpGet      <Object>
tcpSocket    <Object>

#創(chuàng)建啟動后鉤子的yaml
cat > hook.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: hook
  namespace: default
spec:
  containers:
   - name: test
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     lifecycle:
       postStart:
          exec:
            command: ["/bin/sh", "-c", "echo 'test'"]
       preStop:
          exec:
            command: ["/bin/sh","-c","pkill ssh"]  #在pod停止前,使用命令關(guān)閉某些進程
EOF
kubectl apply -f hook.yaml
get pods -w
NAME    READY   STATUS    RESTARTS   AGE
init1   1/1     Running   0          57m
hook    0/1     Pending   0          0s
hook    0/1     Pending   0          0s
hook    0/1     ContainerCreating   0          0s
hook    0/1     ContainerCreating   0          0s
hook    1/1     Running             0          1s

kubectl delete -f hook.yaml
kubectl delete -f init1.yaml

容器探測

容器探測包括啟動探測,就緒探測與存活探測

1、啟動探測Startup Probe

  • 用于檢測容器內(nèi)的應(yīng)用程序是否仍在運行。
  • 如果啟動探測失敗,則 Kubernetes 認(rèn)為容器處于不健康狀態(tài),并嘗試重新啟動容器。
  • 如果啟動探測成功,則容器被認(rèn)為是健康的,并繼續(xù)正常運行。
  • 常見的啟動探測方式包括發(fā)送 HTTP 請求到容器的特定端點或執(zhí)行命令并檢查返回值。

2、就緒探測Readiness Probe

  • 用于檢測容器是否已經(jīng)啟動完成并準(zhǔn)備好接收流量。
  • 就緒探測與存活探測類似,但是 在容器啟動期間進行檢測,而不僅僅是容器啟動后。
  • 如果就緒探測失敗,則 Kubernetes 認(rèn)為容器尚未啟動完成,將從服務(wù)負(fù)載均衡中剔除該容器。
  • 如果就緒探測成功,則容器被認(rèn)為已經(jīng)啟動完成并準(zhǔn)備好接收流量。
  • 常見的就緒探測方式與存活探測相似,包括發(fā)送 HTTP 請求或執(zhí)行命令。

3、存活探測Liveness Probe

  • 用于檢測容器是否準(zhǔn)備好接收流量。
  • 如果存活探測失敗,則 Kubernetes 認(rèn)為容器尚未準(zhǔn)備好處理流量,將從服務(wù)負(fù)載均衡中剔除該容器。
  • 如果存活探測成功,則容器被認(rèn)為是準(zhǔn)備好接收流量的,并加入到服務(wù)負(fù)載均衡中。
  • 常見的存活探測方式包括發(fā)送 HTTP 請求到容器的特定端點或執(zhí)行命令并檢查返回值。

存活探測與就緒探測的區(qū)別:
可以采取相同的探測方式,只是處理方式不同,就緒探測失敗后將pod的IP與port從對應(yīng)的endpoint列表中刪除,也就是會拒絕外部對其進行訪問;存活探測探測失敗后將根據(jù)重啟策略進行處理 存活探測關(guān)注容器內(nèi)應(yīng)用程序的運行狀態(tài),用于重新啟動不健康的容器,確保應(yīng)用程序持續(xù)運行。
就緒探測關(guān)注容器是否已經(jīng)準(zhǔn)備好接收流量,用于在容器啟動過程中防止將流量發(fā)送給尚未完全準(zhǔn)備好的容器。

k8s中啟動探測會最先進行,隨后就緒探測和存活探測會同時進行

參考資料:配置存活、就緒和啟動探針 | Kubernetes

啟動探測

#查看幫助
kubectl explain pod.spec.containers.startupProbe
exec <Object>                     #執(zhí)行命令,如果返回為0則探測成功
failureThreshold     <integer>    #失敗的重試次數(shù),超過就視為失敗,默認(rèn)為3
grpc <Object>                   #用于對接grpc端口
httpGet      <Object>          #調(diào)用http get,響應(yīng)的狀態(tài)碼>=200且<400則探測成功
initialDelaySeconds  <integer> #啟動后多久開始探測,默認(rèn)為0
periodSeconds        <integer> #探測的時間間隔,默認(rèn)10秒
successThreshold     <integer> #需要探測成功的次數(shù),默認(rèn)為1,在啟動和存活探測中必須為1
tcpSocket    <Object>             #通過ip和port進行tcp檢查,如果能建立連接則探測成功
terminationGracePeriodSeconds        <integer> #在刪除Pod之前等待的時間,用于清理
timeoutSeconds       <integer>        #等待響應(yīng)的超時時間,默認(rèn)為1

#使用command
cat > qidongtance-command.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: qidong
  namespace: default
spec: 
  containers:
   - name: test
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     startupProbe:
      exec:
        command:
          - "/bin/sh"
          - "-c"
          - "echo '1'"
      initialDelaySeconds: 10  #啟動后10秒開始探測
      periodSeconds: 5         #探測間隔5秒
      successThreshold: 1      #成功一次即成功
      failureThreshold: 3      #失敗可重試三次
      timeoutSeconds: 5        #超時5秒即失敗
EOF
kubectl apply -f qidongtance-command.yaml
#看到過了10+5秒進入了就緒狀態(tài)
kubectl get pods -w
NAME     READY   STATUS    RESTARTS   AGE
qidong   0/1     Pending   0          0s
qidong   0/1     Pending   0          0s
qidong   0/1     ContainerCreating   0          0s
qidong   0/1     ContainerCreating   0          1s
qidong   0/1     Running             0          2s
qidong   0/1     Running             0          16s
qidong   1/1     Running             0          16s
#修改命令為錯誤的命令,使其不正常執(zhí)行,返回碼為1
...
     startupProbe:
      exec:
        command:
          - "/bin/sh"
          - "-c"
          - "qweasdaq"
...
kubectl delete -f qidongtance-command.yaml
kubectl apply -f qidongtance-command.yaml
#pod重啟了4次,后面顯示失敗
kubectl get pods -w
NAME     READY   STATUS    RESTARTS   AGE
qidong   1/1     Running   0          78s
qidong   1/1     Terminating   0          5m6s
qidong   1/1     Terminating   0          5m6s
qidong   0/1     Terminating   0          5m6s
qidong   0/1     Terminating   0          5m6s
qidong   0/1     Terminating   0          5m6s
qidong   0/1     Pending       0          0s
qidong   0/1     Pending       0          0s
qidong   0/1     ContainerCreating   0          0s
qidong   0/1     ContainerCreating   0          1s
qidong   0/1     Running             0          1s
qidong   0/1     Running             1 (2s ago)   27s
qidong   0/1     Running             2 (2s ago)   47s
qidong   0/1     Running             2 (5s ago)   50s
qidong   0/1     Running             3 (1s ago)   66s
qidong   0/1     Running             4 (1s ago)   86s
qidong   0/1     CrashLoopBackOff    4 (1s ago)   106s
#清理
kubectl delete -f qidongtance-command.yaml

#使用tcpsocket
cat > qidongtance-tcp.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: qidong
  namespace: default
spec: 
  containers:
   - name: test
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     ports:
      - containerPort: 80 #給一個容器端口80
     startupProbe:
      tcpSocket:
         port: 80      #探測80端口
      initialDelaySeconds: 10 
      periodSeconds: 5        
      successThreshold: 1    
      failureThreshold: 3      
      timeoutSeconds: 5   
EOF
kubectl apply -f qidongtance-tcp.yaml
#成功運行
kubectl get pods -w
NAME     READY   STATUS    RESTARTS   AGE
qidong   0/1     Pending   0          0s
qidong   0/1     Pending   0          0s
qidong   0/1     ContainerCreating   0          0s
qidong   0/1     ContainerCreating   0          1s
qidong   0/1     Running             0          1s
qidong   0/1     Running             0          16s
qidong   1/1     Running             0          16s
qidong   1/1     Running             0          22s
#curl訪問
curl 10.10.234.91:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="<http://nginx.org/>">nginx.org</a>.<br/>
Commercial support is available at
<a href="<http://nginx.com/>">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
#清理
kubectl delete -f qidongtance-tcp.yaml

#使用http get
cat > qidongtance-httpget.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: qidong
  namespace: default
spec: 
  containers:
   - name: test
     image: docker.io/library/nginx
     imagePullPolicy: IfNotPresent
     ports:
      - containerPort: 80
     startupProbe:
      httpGet:
         path: /
         port: 80
      initialDelaySeconds: 10 
      periodSeconds: 5        
      successThreshold: 1    
      failureThreshold: 3      
      timeoutSeconds: 5   
EOF
kubectl apply -f qidongtance-httpget.yaml
kubectl get pods -w #運行正常
NAME     READY   STATUS    RESTARTS   AGE
qidong   0/1     Pending   0          0s
qidong   0/1     Pending   0          0s
qidong   0/1     ContainerCreating   0          0s
qidong   0/1     ContainerCreating   0          1s
qidong   0/1     Running             0          2s
qidong   0/1     Running             0          16s
qidong   1/1     Running             0          16s
#curl測試
curl 10.10.234.93:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="<http://nginx.org/>">nginx.org</a>.<br/>
Commercial support is available at
<a href="<http://nginx.com/>">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#清理
kubectl delete -f qidongtance-httpget.yaml

存活探測

#查看幫助,與啟動探測相似
kubectl explain pod.spec.containers.livenessProbe
#存活探測每隔一段時間進行探測,確保業(yè)務(wù)的存活
#存活探測
cat > cunhuotance-command.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
  name: cunhuo
  namespace: default
spec:
  containers:
   - name: test
     image: busybox:1.28
     imagePullPolicy: IfNotPresent
     args:                       #探針測試文件
       - "/bin/sh"
       - "-c"
       - "touch /1.txt; sleep 20; rm -rf /1.txt" #使其20秒后刪除該文件
     livenessProbe:
      initialDelaySeconds: 10
      periodSeconds: 5
      exec:       #探測的命令
       command:
        - cat
        - /1.txt
EOF
kubectl apply -f cunhuotance-command.yaml
#查看發(fā)現(xiàn)經(jīng)過20秒,探活失敗,容器結(jié)束,重啟后探活,失敗循環(huán)往復(fù)
kubectl get pods -w
NAME     READY   STATUS    RESTARTS   AGE
cunhuo   1/1     Running   0          8s
cunhuo   0/1     Completed   0          21s
cunhuo   1/1     Running     1 (2s ago)   22s
cunhuo   0/1     Completed   1 (23s ago)   43s
cunhuo   0/1     CrashLoopBackOff   1 (4s ago)    45s
cunhuo   1/1     Running            2 (15s ago)   56s
kubectl get pods -w
NAME     READY   STATUS             RESTARTS      AGE
cunhuo   0/1     CrashLoopBackOff   2 (12s ago)   88s
cunhuo   1/1     Running            3 (32s ago)   108s
cunhuo   0/1     Completed          3 (52s ago)   2m8s
cunhuo   0/1     CrashLoopBackOff   3 (2s ago)    2m10s
cunhuo   0/1     CrashLoopBackOff   3 (26s ago)   2m34s
#清理
kubectl delete -f cunhuotance-command.yaml

#使用httpdget與tcp需要結(jié)合代碼進行演示,過于繁雜就不演示了

就緒探測

就緒探測主要用于與pod與service相對接的場景下進行使用

探測pod內(nèi)接口,探測成功則代表程序啟動,就開放對外的接口訪問,如果探測失敗,則暫時不開放接口訪問,直到探測成功文章來源地址http://www.zghlxwxcb.cn/news/detail-807169.html

#就緒探測舉例
apiVersion: v1
kind: Service
metadata:
  name: java
spec:
  type: NodePort
  ports:
  - name: yewu
    port: 8080
    targetPort: 8080
    nodePort: 31180   #封裝到外側(cè)的端口
  - name: guanli
    port: 8081
    targetPort: 8081
    nodePort: 31181
  selector:
    app: java
---
apiVersion: v1
kind: Pod
metadata:
  name: java
spec:
  containers:
  - name: java
    labels: 
       app: java
image: xxxxx #封裝了代碼的容器鏡像
imagePullPolicy: IfNotPresent
    ports:
    - name: yewu
      containerPort: 8080
    - name: guanli
      containerPort: 8081
    readinessProbe:
      initialDelaySeconds: 10   
      periodSeconds: 5          
      timeoutSeconds: 5   
      httpGet:       #進行就緒探測8081端口
        scheme: HTTP
        port: 8081
        path: xxx

到了這里,關(guān)于K8s(四)Pod資源——pod生命周期、重啟策略、容器鉤子與容器探測的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • k8s-kubectl命令詳解、Pod創(chuàng)建過程、Pod的生命周期、定制Pod、資源對象文件

    k8s-kubectl命令詳解、Pod創(chuàng)建過程、Pod的生命周期、定制Pod、資源對象文件

    kubectl是用于管理Kubernetes集群的命令行工具 kubectl [command] [TYPE] [NAME] [flags] command:子命令,如create,get,describe,delete type:資源類型,可以表示為單數(shù),復(fù)數(shù)或縮寫形式 name:資源的名稱,如果省略,則顯示所有資源信息 flags:指定可選標(biāo)志,或附加的參數(shù) 子命令 說明 help

    2024年03月22日
    瀏覽(26)
  • 【云原生】深入掌握k8s中Pod和生命周期

    【云原生】深入掌握k8s中Pod和生命周期

    ? ? 個人主頁: 征服bug-CSDN博客 kubernetes專欄: kubernetes_征服bug的博客-CSDN博客? 1 什么是 Pod 2 Pod 基本操作 3 Pod 運行多個容器 4 Pod 的 Labels(標(biāo)簽) 5 Pod 的生命周期 1 什么是 Pod 摘取官網(wǎng): Pod | Kubernetes 1.1 簡介 ????????Pod 是可以在 Kubernetes 中 創(chuàng)建和管理的、最小的可部署的計

    2024年02月14日
    瀏覽(60)
  • K8s: 關(guān)于Kubernetes中的Pod的生命周期(狀態(tài))以及生命周期的鉤子函數(shù)處理

    pod 的生命周期 1 ) pod 幾種常用狀態(tài) 1.1 )Pending(掛起) Pod 已被 Kubernetes 系統(tǒng)接受,但有一個或者多個容器尚未創(chuàng)建亦未運行 此階段包括等待 Pod 被調(diào)度的時間和通過網(wǎng)絡(luò)下載鏡像的時間。 1.2 )Running(運行中) Pod 已經(jīng)綁定到了某個節(jié)點,Pod 中所有的容器都已被創(chuàng)建 至少有

    2024年04月22日
    瀏覽(40)
  • 飛天使-k8s知識點18-kubernetes實操3-pod的生命周期

    飛天使-k8s知識點18-kubernetes實操3-pod的生命周期

    探針的生命周期 docker 創(chuàng)建:在創(chuàng)建階段,你需要選擇一個鏡像來運行你的應(yīng)用。這個鏡像可以是公開的,如 Docker Hub 上的鏡像,也可以是你自己創(chuàng)建的自定義鏡像。創(chuàng)建自己的鏡像通常需要編寫一個 Dockerfile,這個文件定義了創(chuàng)建鏡像所需的所有步驟,包括基礎(chǔ)鏡像、需要安

    2024年02月20日
    瀏覽(26)
  • K8s Pod親和性、污點、容忍度、生命周期與健康探測詳解(下)

    K8s Pod親和性、污點、容忍度、生命周期與健康探測詳解(下)

    ??明明跟你說過:個人主頁 ??個人專欄:《Kubernetes航線圖:從船長到K8s掌舵者》??? ??行路有良友,便是天堂?? 目錄 五、健康探測 1、健康探測的概念 2、Pod啟動探測(Startup Probe) 3、Pod存活探測(Liveness Probe) 4、Pod就緒探測(Readiness Probe) 5、Pod健康探測在故障轉(zhuǎn)移與

    2024年04月08日
    瀏覽(32)
  • K8S 1.27 新特性 Pod 無需重啟調(diào)整CPU內(nèi)存資源

    如果您已經(jīng)部署了指定 CPU 或 Memory 資源的 Kubernetes pod,可能已經(jīng)注意到更改資源值涉及重新啟動 pod。直到現(xiàn)在,這一直是運行工作負(fù)載的破壞性操作。 在 Kubernetes v1.27 中,添加了一個新的 alpha 功能,允許用戶在不重啟容器的情況下調(diào)整分配給 Pod 的 CPU 或 memory 資源的大小。

    2024年02月11日
    瀏覽(27)
  • kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    展示如何將內(nèi)存請求(request)和內(nèi)存限制(limit)分配給一個容器。 我們保障容器擁有它請求數(shù)量的內(nèi)存,但不允許使用超過限制數(shù)量的內(nèi)存。 創(chuàng)建新的命名空間 編輯yaml文件 配置文件的 args 部分提供了容器啟動時的參數(shù)。 “–vm-bytes”, “150M” 參數(shù)告知容器嘗試分配 15

    2024年02月15日
    瀏覽(108)
  • K8s(二)Pod資源——node調(diào)度策略、node親和性、污點與容忍度

    K8s(二)Pod資源——node調(diào)度策略、node親和性、污點與容忍度

    目錄 node調(diào)度策略nodeName和nodeSelector 指定nodeName 指定nodeSelector node親和性 node節(jié)點親和性 硬親和性 軟親和性 污點與容忍度 本文主要介紹了在pod中,與node相關(guān)的調(diào)度策略,親和性,污點與容忍度等的內(nèi)容 在創(chuàng)建pod等資源時,可以通過調(diào)整字段進行node調(diào)度,指定資源調(diào)度到滿足

    2024年01月17日
    瀏覽(73)
  • K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    K8s(一)Pod資源——Pod介紹、創(chuàng)建Pod、Pod簡單資源配額

    目錄 Pod概述 pod網(wǎng)絡(luò) pod存儲 pod和容器對比 創(chuàng)建pod的方式 pod運行方式分類 Pod的創(chuàng)建 Pod的創(chuàng)建過程 通過kubectl run來創(chuàng)建pod 通過yaml文件創(chuàng)建,yaml文件簡單寫法 Pod簡單操作 Pod的標(biāo)簽labels Pod的資源配額resource 測試 Kubernetes Pod | Kubernetes Pod是Kubernetes中的最小調(diào)度單元,k8s都是以p

    2024年01月18日
    瀏覽(52)
  • 關(guān)于k8s的pod不斷重啟的原因分析

    關(guān)于k8s的pod不斷重啟的原因分析

    k8s全稱:Kubernetes 1、k8s是什么 Kubernetes 是一個全新的基于容器技術(shù)的分布式架構(gòu)解決方案,是 Google 開源的一個容器集群管理系統(tǒng),Kubernetes 簡稱 K8S。 Kubernetes 是一個一站式的完備的分布式系統(tǒng)開發(fā)和支撐平臺,更是一個開放平臺,對現(xiàn)有的編程語言、編程框架、中間件沒有

    2024年02月07日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包