Kubemetes高级调度

一组特殊的容器

初始化容器是用来进行初始化操作的,在很多情况下,程序的启动需要依赖各类配置,资源,但是又不能继承在原有的启动命令或者镜像当中,因为程序的镜像可能并没有加载配置命令,此时InitContainer就起了很大的作用

1.InitConTainer的基本概念

   InitContainer是kubernetes的初始化容器他是一个特殊的容器,在Pod内的应用容器启动之前运行,可以包括一些应用镜像中不存在的使用工具和安装脚本,用以在程序启动时初始化,比如创建文件,修改内核参数,等待依赖程序启动等,当所有的Init容器运行完成时,kubernetes才会启动Pod内的普通容器

1:初始化容器

       initContainer

       不能用探针,lifecycle(钩子,hook)

(1) 延长启动:设定一个时间延迟启动     延迟指定时间后启动

command:["sh","-c","sleep 15"] //表示初始化容器需要休眠15秒

(2) 修改内核:使用初始化容器修改内核参数

   在容器内修改内核参数,实际上是修改物理机的内内核参数,一般不允许在容器里修改内核参数

(3) 等待依赖

CoreDNS-》主机的DNS

有时某些服务需要依赖其他组件才能启动,比如后端应用需要数据库启动之后,应用才能正常启动,此时需要检测数据库实例是否正常,等待数据库可以正常使用时,在启动后端应用,此时可以使用初始化容器进行控制

2:pause容器

pauser 容器特点

镜像非常小,目前在700KB

pod中其他各个容器的父容器

提供网络命名空间

网络接口

pod生命周期管理

infra container

3:临时容器 Ephemeral Containers

在生产环境中,为了优化镜像的体积和提高镜像的安全性,并不会在容器中安装太多高危工具,虽然提高了安全性,但是也带来了一些不便,比如:无法查看容器内进程情况,服务出现问题无法很安全的进行查看等,所以在1.6后引入 Ephemeral Containers,安装第三方工具即可在线Debug操作.

临时容器的声明和普通容器类似,但是临时容器没有端口配置,只是用来调式程序的,不会影响其他正常容器,所以他并不需要这些字段配置

tomcat:原始的容器

对tomcat进行测试

为原始容器生成临时容器

4:自动扩缩容HPA ()

在集群安装的过程中,我们可以安装一个叫Metrics,server的组件,该组件在集群中负责采集Pod和Node的度量值指标,比如Pod的cpu,内存使用率和节点的内存,cpu使用率,且安装的Dashboard可以展示cpu,内存信息也是依靠Metrics Server的,当然,该组件不仅仅时用来展示数据的,还可以使用Metrics Server提供的数据结合Kubernetes的HPA功能实现Pod的自动扩缩容

4.1水平Pod自动收缩器

  在生产环境中,总有一些想不到的事情发生,比如公司网站流量突然升高,此时创建的Pod不足以支持所有的访问,而我们也不可能24小时守着业务访问,这个时候配置HPA,实现负债过高的情况下自动扩容Pod副本数分担高并发的流量,访问数恢复正常后,HPA会自动缩减Pod的数量

5.污点(节点),容忍(Pod)

Taint(污点)作用在节点上,能够使节点排斥一类特定的Pod

Toleration(容忍)作用在pod上,也就是可以兼容某类污点。

kubeadm部署的k8s集群默认给master节点加了Taints(污点)

增加污点

kubectl taint nodes k8s-node01 key1=value1:NoSchedule
//键名是key1,键值是value1  效果是NoSckedule
表示只拥有和这个污点相匹配的容忍的pod才能够被分配到node1这个节点

移除污点

kubectl taint nodes k8s-node01 key1=value1:NoSchedule-

5.1:taint effect的三种选项:

key=value:effect

NoSchedule:新的Pod不调度,老的pod不影响

PreferNoSchedule:新的pod尽量不调度,老的pod不影响

NoExecute: 新的pod不调度 老的Pod会被赶走

5.2:在容忍度中的写法:

toleration                                          toleration                                    toleration   

-key: check                                      -key: check                                 operator:Exists

 operator:Equal                             operator:Exists

value:mycheck                              

6.警戒(cordon)

转移(drain)

节点亲和性(节点硬亲和)

pod亲和性(看权重,不看顺序)

pod反亲和(非得不去)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值