基于centos7.9
,docker-ce-20.10.18
,kubelet-1.22.3-0
Pod为亲密性应用而存在。
亲密性应用场景:
Infrastructure Container
pod中总会多一个pause容器,这个容器就是实现将pod中的所有容器的网络命名空间进行统一,a容器在localhost或者127.0.0.1的某个端口提供了服务,b容器访问localhost或者127.0.0.1加端口也可以访问到
Init container:
应用场景:
示例
apiVersion: v1
kind: Pod
metadata:
name: init-demo
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
initContainers:
- name: install
image: busybox
command:
- wget
- "-O"
- "/work-dir/index.html"
- http://www.baidu.com/index.html
volumeMounts:
- name: workdir
mountPath: "/work-dir"
dnsPolicy: Default
volumes:
- name: workdir
emptyDir: {}
静态Pod特点:
在kubelet配置文件启用静态Pod:
vi /var/lib/kubelet/config.yaml
...
staticPodPath: /etc/kubernetes/manifests
...
将部署的pod yaml放到该目录会由kubelet自动创建
健康检查有以下两种类型:
支持以下三种检查方法:
示例
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5