1.pod容器的三种重启策略
查看容器的重启策略有哪些
kubectl explain po.spec.
发现有Always OnFailure Never
Always,当容器退出时,始终重启容器
OnFailure,当容器正常退出时,不会自动重启容器,当容器异常退出时,重启容器
Never,当容器退出时,始终不重启容器
注意:所谓重启是指重新创建容器,容器的重启策略对整个pod生效而非特定容器。
2.pod容器的变量
如图所示定义变量
env:
- name: jishuzhan
value: vue
- name: xiaopi
valueFrom:
fieldRef:
fieldPath: "status.hostIP"
查看容器变量
kubectl exec pod名 -- env
使用kubectl explain pods.spec.containers.env.valueFrom,如图可以获得valueFrom的使用方法
3.数据持久化之empty
同一个pod不同的容器可以数据共享
当pod被删除时数据也会被删除
在spec下定义
spec:
volumes:
- names: data01
entryDir: {}
在containers下使用
containers:
- name: ...
image: ...
volumeMounts:
- name: data01
mountPath: /usr/share/nginx/html
pod清单的语法及empty作用如图
如何找到管理端挂载点
4.数据持久化之hostPath
该存储卷主要用于容器访问宿主机路径的需求
同一个节点,不同的pod,可以数据共享
5.数据持久化之NFS
不同节点的pod的容器需要共享数据需要使用nfs
需要先部署nfs
- 部署nfs server
(1)所有节点安装nfs相关软件包
yum -y install nfs-utils
(2)k8s231节点设置共享目录
mkdir -pv /data/kubernetes
cat > /etc/exports <<'EOF'
/data/kubernetes *(rw,no_root_squash)
EOF
(3)配置nfs服务开机自启动
systemctl enable --now nfs
(4)服务端检查NFS挂载信息
exportfs
(5)客户端节点手动挂载测试
mount -t nfs k8s231.lxcedu.com:/data/kubernetes /mnt/
umount /mnt ls