Kubernetes 10 问 (附:注释)

1.自定义调度器示例

默认插件 NodeResourcesFit 有三种评分策略:LeastAllocated(默认)、MostAllocatedRequestedToCapacityRatio,这三种策略的目的分别是优先选择资源使用率最低的节点、优先选择资源使用率较高的节点从而最大化节点资源使用率、以及平衡节点的资源使用率。

默认插件 VolumeBinding 绑定卷的默认超时时间是 600 秒。

2.pod中一共有以下三个重启策略(restartPolicy)

1、Always:当容器终止退出后,总是重启容器,默认策略。

2、OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。

3、Never:当容器终止退出,从不重启容器。

三种重启策略中,Always是默认策略,即当用户在配置文件中未配置关于重启的策略,则默认为Always.
容器的生命周期是容器可能处于的状态。

①created:初建状态②running:运行状态③stopped:停止状态④paused: 暂停状态⑤deleted:删除状态

各生命周期之间的转换关系如图所示:

docker create:创建容器后,不立即启动运行,容器进入初建状态。
docker run:创建容器,并立即启动运行,进入运行状态。
docker start:容器转为运行状态。
docker stop:容器将转入停止状态。
docker kill:容器在故障(死机)时,执行 kill(断电),容器转入停止状态,这种操作容易丢失数据,除非必要,否则不建议使用。
docker restart:重启容器,容器转入运行状态。
docker pause:容器进入暂停状态。
docker unpause:取消暂停状态,容器进入运行状态。
docker rm:删除容器,容器转入删除状态。
killed by out-of-memory(因内存不足被终止):宿主机内存被耗尽,也被称为 OOM:非计划终止 这时需要杀死最吃内存的容器。
container process exitde(异常终止):出现容器被终止后,将进入 Should restart?选择操作:yes 需要重启,容器执行 start 命令,转为运行状态。no 不需要重启,容器转为停止状态。

3.ConfigMap

ConfigMap是API对象,用于存放明文(非机密性)数据保存到键值对中,可以使用环境变量、命令行参数或者存储卷方式应用到Pod中,ConfigMap相当于Pod中程序的配置文件,通过修改ConfigMap内容来修改程序的配置。

ConfigMap局限性

ConfigMap在设计上不是用来存储大量数据的,所以在ConfigMap中保存的数据不能超过1MiB。

创建和使用 ConfigMap <-- 点击

7.健康检查

健康检查是在pod中,可能容器进程存在,pod状态也为runing,但容器内部无法提供服务了(可能是因为堆内存溢出等)这种k8s自身无法判断,需要用户来提供检查方式从情况下使用的
健康检查类型
1、livenessProbe(存活检查):如果检查失败,将杀死容器,根据Pod 的restartPolicy来操作。
2、readinessProbe(就绪检查):如果检查失败,Kubernetes会把 Pod从service endpoints中剔除。(可以理解为提出k8s的负载均衡)
3、startupProbe(启动检查):检查成功才由存活检查接手,用于保护 慢启动容器
支持的检查方法:
• httpGet:发送HTTP请求,返回200-400范围状态码为成功。
• exec:执行Shell命令返回状态码是0为成功。
• tcpSocket:发起TCP Socket建立成功。
检查方式分同机器检查与不同机器检查(一般采用curl靠谱)
不同机器检查方式:curl、wget、telnet
同机器检查:netstat、ps
检查的实现是由kubelet实现的

——————————————————————————————————————————————————————————————————————————

                                                                                                                         无敌小马爱学习

posted on 2024-11-21 17:30  马俊南  阅读(12)  评论(0编辑  收藏  举报