K8s之存储卷

一、容忍、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)

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
codeejun1 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
赵文宇(温玉)1 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang1 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
忆~遂愿1 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Thneonl1 天前
你的 Pod 为什么 Pending:调度器两阶段
后端·kubernetes
不吃香菜kkk、1 天前
CI/CD(GitOps)学习与部署手册
运维·云原生·容器·kubernetes·云计算·jenkins·argocd
ChaITSimpleLove1 天前
云原生性能对决:JDK21虚拟线程+GraalVM vs .NET10/11 技术栈深度对比
微服务·云原生·serverless·graalvm native·native aot·runtime async·.net11/java21