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)

相关推荐
岁岁种桃花儿11 分钟前
流量入口Nginx动态发现K8s Ingress Controller实操指南
nginx·架构·kubernetes
礼拜天没时间.22 分钟前
Docker基础操作——镜像与容器管理
linux·运维·服务器·docker·容器·centos
冗量22 分钟前
Kubernetes (K8s) 基础知识、部署与运维指南
运维·容器·kubernetes
没有bug.的程序员35 分钟前
Spring Boot 与 Swagger:API 文档自动化生成、版本管理与云原生协作深度实战指南
spring boot·云原生·自动化·api·swagger·版本管理·自动化生产
小二·38 分钟前
Go 语言系统编程与云原生开发实战(第9篇)安全加固实战:认证授权 × 数据加密 × 安全审计(生产级落地)
安全·云原生·golang
研究司马懿42 分钟前
【云原生】Gateway API介绍
云原生·gateway
研究司马懿1 小时前
【云原生】Gateway API路由、重定向、修饰符等关键操作
云原生·gateway
青衫客361 小时前
从 TLS 到 Kubernetes PKI:一条证书链如何支撑整个集群安全(问题合集)
容器·kubernetes·k8s·tls
Swift社区1 小时前
Docker Compose 一键部署前后端分离项目
运维·docker·容器
小二·1 小时前
Go 语言系统编程与云原生开发实战(第8篇)消息队列实战:Kafka 事件驱动 × CQRS 架构 × 最终一致性(生产级落地)
云原生·golang·kafka