1、Pod基本介绍
Pod 1、Pod基本概念
(1) 最小的部署单位
(2)包含多个容器(一组容器的集合)
(3)一个Pod中容器共享网络命名空间
(4) Pod是短暂的
2、Pod存在意义(1)创建容器使用docker ,一个docker对应一个容器,一个容器有进程,一个容器只能运行一个应用程序。
(2) Pod是多进程设计,运行多个应用程序
-
一个Pod有多个容器,一个容器只能运行一个应用程序
(3) Pod为了亲密性应用存在
两个应用之间进行焦化 网络之间调用 两个应用需要频繁调用3、Pod实现机制
-
容器本身之间相互隔离
(1) 共享网络
-
通过pause容器,把其他业务容器加入到pause容器里面,让所有业务容器在同一个命名空间中,可以实现网络共享
(2) 共享存储
-
引入数据卷概念volumn,使用数据卷进行持久化存储
imagePullPolicy:
-
ifNotPrement: 默认值,镜像在宿主机上不存在时才拉取
-
Alays: 每次创建Pod都会重新拉取一次镜像
-
Never Pod永远不会主动拉取这个镜像
resources: requests: #代表需要调度的资源 memory: "64Mi" cpu: "250m" limits: # 能调度的最大资源 memory: "128Mi" cpu: "500m"6、Pod重启机制
restartPolicy:
-
Alays: 当容器终止退出后,总是重启容器,默认策略。
-
OnFailure但容器异常退出(状态码非0)时,才重启容器。
-
Never当容器终止退出时,从不重启容器。
livenessProbe(存活检查)
-
如果检查失败,将杀死容器,根据Pod的restartPoticy来操作
readinessProbe(就绪检查)
-
如果检查失败,kuberes会把Pod从service endpoints中剔除
Probe支持以下三种检查方法
-
httpGet
发送HTTP请求,返回200-4--范围状态码为成功
-
exec
执行shell命令返回状态码是0为成功
-
tcpSocket
发起TCP Socket 建立成功
API Server etcd Scheduler Kubelet Docker 1、创建Pod ->apiserver -> etcd 2、Scheduler ->apiserver ->etcd-> 调度算法,把Pod调度到某个节点上 3、kubelet -> apiserver ->读取etcd拿到分配给当前节点Pod ->docker创建容器 1.Pod资源限制对pod调用产生影响
resources: requestes: memory: "64Mi" cpu: "250m" 根据request找到足够资源的node节点进行调度2.节点选择器标签影响Pod调度
[root@m1 ~]# kubectl label node n1 env_role=dev node/n1 labeled #对n1节点打一个标签 [root@m1 ~]# kubectl get nodes n1 --sho-labels #查看n1节点标签状态 NAME STATUS ROLES AGE VERSION LABELS n1 Ready orker 24d v1.20.6 beta.kuberes.io/arch=amd64,beta.kuberes.io/os=linux,env_role=dev,kuberes.io/arch=amd64,kuberes.io/hostname=n1,kuberes.io/os=linux,node-role.kuberes.io/orker=orker3.节点亲和性对Pod调度的影响
节点亲和性,nodeAffinity 和nodeSelector基本一样,根据节点上标签约束来绝对调度到哪些节点上。
(1)硬亲和性 requiredDuringSchedulingIgnoredDuringExecution
约束条件必须满足
(2)软亲和性 preferreDuringSchedulingIgnoreDuringExecution
尝试满足,不保证绝对满足
支持常用操作符
In NotIn Exists Gt Lt DoesNotExists
9、污点和污点容忍 1、基本介绍nodeSelector和nodeAffinity: Pod调度到某些节点上,Pod属性,调度时实现
Taint污点: 节点不做普通分配调度,是节点属性
2、场景专用节点, 配置特点硬件节点, 给予Taint驱逐
3、具体演示1、查看污点情况
[root@m1 ~]# kubectl describe node m1 | grep Taint Taints: node-role.kuberes.io/master:NoSchedule # NoSchedule: 一定不被调度 # PreferNoSchedule: 尽量不被调度 #NoExecute: 不会调度,并且还会驱逐已有Node
2、为节点添加污点
kubectl taint node [node] key=value:污点三个值
[root@m1 ~]# kubectl taint node n1 env_role=yes:NoSchedule node/n1 tainted
3、删除污点
kubectl taint node [node] key-
[root@m1 ~]# kubectl taint node n1 env_role- node/n1 untainted #后面加一个减号就可以删除了
空调维修
- 温岭冰箱全国统一服务热线-全国统一人工【7X2
- 荆州速热热水器维修(荆州热水器维修)
- 昆山热水器故障码5ER-昆山热水器故障码26
- 温岭洗衣机24小时服务电话—(7X24小时)登记报
- 统帅热水器售后维修服务电话—— (7X24小时)登
- 阳江中央空调统一电话热线-阳江空调官方售后电
- 乌鲁木齐阳春燃气灶厂家服务热线
- 珠海许昌集成灶售后服务电话-全国统一人工【
- 乌鲁木齐中央空调维修服务专线-乌鲁木齐中央空
- 新沂热水器故障电话码维修-新沂热水器常见故障
- 诸城壁挂炉24小时服务热线电话
- 靖江空调24小时服务电话-——售后维修中心电话
- 空调室外滴水管维修(空调室外排水管维修)
- 九江壁挂炉400全国服务电话-(7X24小时)登记报修
- 热水器故障码f.22怎么解决-热水器f0故障解决方法
- 营口热水器售后维修服务电话—— 全国统一人工