Pod控制器應用高階二

2021-08-27 08:20:13 字數 4076 閱讀 5153

命令執行返回成功是成功的,如果返回狀態碼是不成功的

使用exec存活性探測:

[root@master test]# kubectl get pod -w

name ready status restarts age

client 1/1 running 0 1d

liveness-exec-pod 1/1 running 5 6m

nginx-deploy-5b595999-fsxlp 1/1 running 0 1d

^c[root@master test]# ls

liveness-exec.yaml

[root@master test]# cat liveness-exec.yaml

apiversion: v1

kind: pod

metadata:

name: liveness-exec-pod

namespace: default

spec:

containers:

- name: liveness-exec-container

image: busybox:latest

imagepullpolicy: ifnotpresent

command: ["/bin/sh","-c","touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 3600"]

livenessprobe:

exec:

command: ["test","-e","tmp/healthy"]

initialdelayseconds: 1

periodseconds: 3 #探測時間間隔3秒

kubectl describe pods liveness-exec-pod 檢視pod的執行日誌

restart count: 3 重啟3次了

liveness: exec [test -e tmp/healthy] delay=1s timeout=1s period=3s #success=1 #failure=3

監控pod已經重啟五次了

[root@master test]# kubectl get pod -w

name ready status restarts age

client 1/1 running 0 1d

liveness-exec-pod 1/1 running 5 6m

nginx-deploy-5b595999-fsxlp 1/1 running 0 1d

使用tcpsocket探測

kubectl explain pods.spec.containers.livenessprobe.tcpsocket

使用httpget探測

kubectl explain pods.spec.containers.livenessprobe.httpget

進入這個容器:

這時候我們在容器的內部刪除index.html網頁

/ # rm -f /usr/share/nginx/html/index.html

過了幾秒後,我們再次檢視pod的資訊

日誌內容:

再次回到容器中:l

檔案出現了 /usr/share/nginx/html/index.html

容器啟動了並不一定是可以正常使用的,需要裡面的服務正常啟動之後才可以使用,如:redis和tomcat

這時候我們需要做乙個探測。

這時候就用到了pod應用狀態就緒監測:

啟動:kubectl create -f readiness-httpget.yaml

這時候kubectl get pods 是正常啟動的

這時候進入容器內部

這時候kubectl get pods 是不啟動的

# echo "hi">usr/share/nginx/html/index.html

kubectl get pods

這個時候是啟動成功的

啟動後多久和終止前多久?

kubectl explain pods.spec.containers.lifecycle

利用busybox來測試:

busybox是有httpd服務的,但是沒有網頁,我們做乙個網頁,然後再啟動httpd服務,看看兩個能不能關聯。

cat poststart-pod.yaml #暫時有問題

工作負載,pod 控制器

工作負載是在 kubernetes 上執行的應用程式。無論你的負載是單一元件還是由多個一同工作的元件構成,在 kubernetes 中你 可以在一組 pods 中執行它。在 kubernetes 中,pod 代表的是集群上處於執行狀態的一組 容器。kubernetes pods 有確定的生命週期。例...

k8s 六 pod控制器 (二)

daemonset確保全部 或者一些 node 上執行乙個 pod 的副本。當有 node 加入集群時,也會為他們新增乙個 pod 當有 node 從集群移除時,這些 pod 也會被 刪除 daemonset 將會刪除它建立的所有 pod。使用 daemonset 的一些典型用法 乙個簡單的用法是,...

SpringMVC高階(三) 控制器

在spring mvc中,有幾種控制器,下面我們來一一介紹一下。1.parameterizableviewcontroller 引數控制器 示例 在springmvc servlet.xml中配置對映處理器和引數控制器 執行結果如下 2.abstractcommandcontroller 命令控制器...