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)

相关推荐
上海运维Q先生2 小时前
Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab
云原生·k8s·cilium
探索云原生2 小时前
开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
ai·云原生·kubernetes·gpu
NineData2 小时前
NineData云原生智能数据管理平台新功能发布|2025年5月版
数据库·云原生·oracle·devops·ninedata
---wzy---3 小时前
docker生命周期
java·docker·容器
斯普信云原生组3 小时前
K8S主机漏洞扫描时检测到kube-服务目标SSL证书已过期漏洞的一种永久性修复方法
https·kubernetes·ssl
一ge科研小菜鸡3 小时前
云原生 DevOps 实践路线:构建敏捷、高效、可观测的交付体系
运维·云原生·devops
@t.t.4 小时前
使用Swarm工具搭建docker集群
docker·微服务·容器
局外人LZ5 小时前
Docker轻松搭建Neo4j+APOC环境
docker·容器·neo4j
唐可盐15 小时前
解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq
运维·docker·容器
泯泷20 小时前
编写 Dockerfile:从入门到精通
后端·docker·容器