目录
22.简述 Kubernetes 中 Pod 的健康检查方式?
23.简述 Kubernetes Pod 的 LivenessProbe 探针的常见方式?
22.简述 Kubernetes 中 Pod 的健康检查方式?
对 Pod 的健康检查可以通过两类探针来检查:LivenessProbe 和 ReadinessProbe。
(1)LivenessProbe 探针:
- 用于判断容器是否存活(running状态)。
- 如果 LivenessProbe 探针探测到容器不健康,则 kubelet 将杀掉该容器,并根据容器的重启策略做相应处理。
- 若一个容器不包含 LivenessProbe 探针,kubelet 认为该容器的 LivenessProbe 探针返回值用于是“ Success ”。
(2)ReadineeProbe 探针:
- 用于判断容器是否启动完成(ready状态)。
- 如果 ReadinessProbe 探针探测到失败,则 Pod 的状态将被修改。EndpointController将从 Service 的 Endpoint 中删除包含该容器所在 Pod 的 Eenpoint.
(3)startupProbe 探针:
- 启动检查机制,应用一些启动缓慢的业务,避免业务长时间启动而被上面两类探针 kill 掉。
23.简述 Kubernetes Pod 的 LivenessProbe 探针的常见方式?
kubelet 定期执行 LivenessProbe 探针来诊断容器的健康状态,通常有以下三种方式:
(1)ExecAction:在容器内执行一个命令,若返回码为 0,则表明容器健康。
(2)TCPSocketAction:通过容器的IP地址和端口号执行 TCP 检查,若能建立 TCP 连接,则表明容器健康。
(3)HTTPGetAction:通过容器的 IP 地址、端口号及路径调用 HTTP Get 方法,若响应的状态码大于等于 200 且小于 400,则表明容器健康。
24.简述 Kubernetes Pod 的常见调度方式?
Kubernetes 中,Pod 通常是容器的载体,主要有如下常见调度方式:
(1)Deployment 或 RC:
该调度策略主要功能就是自动部署一个容器应用的多份副本,以及持续监控副本的数量,在集群内始终维持用户指定的副本数量。
(2)NodeSelector:
定向调度,当需要手动指定将 Pod 调度到特定 Node 上,可以通过 Node 的标签(Label)和 Pod 的 nodeSelector 属性相匹配。
(3)NodeAffinity 亲和性调度:
亲和性调度机制极大的扩展了 Pod 的调度能力,目前有两种节点亲和力表达:
① requiredDuringSchedulinglgnoredDuringExecution:硬规则,必须满足指定的规则,调度器才可以调度 Pod 至 Node 上(类似 nodeSelector,语法不同);
② preferredDuringSchedulinglgnoredDuringExecution:软规则,优先调度至满足的 Node 的节点,但不强求,多个优先级规则还可以设置权重值。
(4)Taints 和 Tolerations(污点和容忍):
① Taint:使 Node 拒绝特定 Pod 运行;
② Toleration:为 Pod 的属性,表示 Pod 能容忍(运行)标注了 Taint 的 Node。