kubernetes Pod 控制器应用进阶
Pod生命周期
- Pod探针类型 livenessProbe 字段指定
- exec 运行命令探测执行的命令是否成功
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;sleep30;rm -f /tmp/healthy;sleep 3600"]
livenessProbe:
exec:
command: ["test","-e","/tmp/healthy"]
initialDelaySeconds: 2 #2秒后启动
periodSeconds: 3
restartPolicy: Never ###重启策略:从不
- httpget
apiVersion: v1
kind: Pod
metadata:
name: liveness-httpget-pod
namespce: default
spec:
containers:
- name: liveness-httpget-container
image: myapp:v1
imagePullPolicy: IfNotPresent ##没有镜像再下载
ports: ##开放的端口
- name: http
containerPort: 80
livenessProbe: ##http访问探测
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1
periodSeconds: 3
- readiness
apiVersion: v1
kind: Pod
metadata:
name: liveness-httpget-pod
namespce: default
spec:
containers:
- name: liveness-httpget-container
image: myapp:v1
imagePullPolicy: IfNotPresent ##没有镜像再下载
ports: ##开放的端口
- name: http
containerPort: 80
readinessProbe:
httpGet:
port: http
path: /index/html
initialDelaySeconds: 1
periodSeconds: 3
apiVersion: v1
kind: Pod
metadata:
name: poststart-pod
namespace: default
spec:
containers:
- name: busybox-httpd
image: busybox:latest
imagePullPolicy: IfNotPresent
lifecycle:
postStart:
exec:
command: ["/bin/sh","-c"," && echo 'Home Page' >> /tmp/web/html/index.html"]
command: ["/bin/httpd"] ##先运行的命令
args: ["-f","-h /tmp/web/html"]