一、容忍、crodon和drain
1.容忍
即使节点上有污点,依然可以部署pod。
字段:tolerations
实例

当node01上有标签test1=1,污点类型为NoSchedule,而node02没有标签和污点,此时pod可以在node01 node02上都部署,如果在node02上添加污点为NoExecute,则所有pod都会在node01上
tolerations:#容忍污点的字段
- operator: "Exists"
#不指定key,容忍所有的污点类型
#此时master01,node01和node02上都会有pod
2.cordon
直接标记节点不可用,pod不能部署到该节点。新建的pod的不会再部署到该节点,已有的pod不受影响。
kubectl cordon node02 #标记不可用
kubectl uncordon node02 #解除标记
kubectl get nodes #查看nodes的状态
但是如果有容忍字段或者容忍字段里面用了exists则无效

3.drain
不仅仅把节点标记为不可用,而且会把节点上pod驱逐到其他节点。
kubectl drain node02 --ignore-daemonsets --delete-local-data --force
--ignore-daemonsets 无视daemonSet管理的pod
--delete-local-data 如果pod设置了和本地节点有挂载点,无视本地挂载,强制杀死该节点上的pod
--force 不是控制器管理的pod会被直接杀死
kubectl uncordon node02 没有undrain,还是用uncordon

二、数据卷
指定pod内的容器和宿主机的目录进行挂载,把容器内的重要数据同步到宿主机的目录。
1.emptyDir存储卷
特殊的存储卷,不和宿主机进行挂载,pod内的容器之间共享目录,pod被删除,共享目录的数据也会被删除。
容器之间共享数据,获取容器内的其他配置的端口,环境等等,用于两个容器之间交互。
实例

2.hostPath
pod会根据调度算法部署在node上,挂载卷设置为hostPath,可以和node节点上的目录进行挂载,而且只要是pod所在的节点,都会生成这个目录。
实例

3.nfs 共享存储卷
共享目录,所有的服务器都可以访问共享目录,所有的pod和宿主机的同一个共享目录进行挂载。网站模式部署pod都是用nfs共享。
192.168.206.10 master01
192.168.206.20 node01
192.168.206.30 node02
192.168.206.60 nginx1 在这台主机上配置共享目录
所有节点都 apt -y install nfs-kernel-server
60主机上的操作如下:
mkdir /opt/k8s1
chmod 777 /opt/k8s1/
vim /etc/exports
/opt/k8s1 192.168.206.0/24(rw,root_squash)
systemctl restart nfs-kernel-server
cd /opt/k8s1
cat index.html
echo 123 > index.html
集群可以直接访问ip地址
curl 10.244.196.153

如果server字段用的是nginx1主机名, 则需要集群上做本地映射(/etc/hosts)