跳到主要内容

组件配置中可以调整组件本身的配置信息和service信息。

部署模式

部署模式分为固定副本和伸缩副本两种模式,固定副本模式是指组件在部署时,会固定部署指定数量的副本,伸缩副本模式是指组件在部署时,会根据服务的负载,自动伸缩副本数量,以适应服务的负载。

副本数

副本数是指组件在部署时,会固定部署指定数量的副本来平衡服务负载。

计算资源

alt text CPU: 该组件在部署时,会使用多少CPU资源,单位为核数,例如:1核,2核,4核等。左边的数值代表请求独占的CPU资源,右边的数值代表最大可用的CPU资源。 Memory: 该组件在部署时,会使用多少内存资源,单位为Gi,左边的数值代表请求独占的内存资源,右边的数值代表最大可用的内存资源。

环境变量

环境变量是指组件在部署时,会使用哪些环境变量,例如:数据库连接信息,服务地址等。以key-value的形式进行配置,key为环境变量名称,value为环境变量值。服务可以直接在环境中使用该环境变量。

挂载卷

alt text

挂载卷中有六种不同的挂载:HOSTPATH、EMPTYDIR、TMPFS、PVC、CONFIGMAP、SECRET

  • HOSTPATH: 该组件在部署时,会挂载主机上的对应的目录到容器中。
  • EMPTYDIR: 该组件在部署时,会挂载一个临时目录到容器中,该目录在容器删除时,会自动删除。
  • TMPFS: 该组件在部署时,会挂载一个临时目录到容器中,该目录在容器删除时,不会自动删除。
  • PVC: 该组件在部署时,会挂载一个PVC到容器中,该PVC需要提前创建。
  • CONFIGMAP: 该组件在部署时,会挂载一个ConfigMap到容器中,该ConfigMap需要提前创建。
  • SECRET: 该组件在部署时,会挂载一个Secret到容器中,该Secret需要提前创建。

健康检查

健康检查是一个关键的机制,用于确保应用程序的正常运行和服务的可靠性。Kubernetes 提供了几种类型的健康检查,主要包括存活探针(Liveness Probes)、就绪探针(Readiness Probes)和启动探针(Startup Probes)。这些探针帮助 Kubernetes 管理和自动恢复应用程序的状态,确保服务的高可用性。

存活探针(Liveness Probes)

存活探针用来检查容器是否还在运行。如果存活探针失败(即探测到容器不再活跃),Kubernetes 会认为容器已经死亡,它会根据策略重启该容器。存活探针主要用于捕捉到容器处于无响应状态(例如死锁)的情况。

就绪探针(Readiness Probes)

就绪探针用来判断容器是否准备好接受流量。如果就绪探针失败,Kubernetes 会认为容器尚未准备好接受服务请求,因此,它不会将流量路由到该容器。这是非常有用的,例如,在容器启动期间,应用程序可能需要加载大量数据或配置文件,此时应用尚未准备好接收请求。

探针配置

initial Delay Seconds 初始化延迟探测时间.
period Seconds 探测间隔时间。
timeout Seconds 探测响应超时时间。
failure Threshold 默认3,当探测失败时重试次数。
success Threshold 默认1,失败后被视为成功的最小连续成功数。
initial delay seconds: 该字段告诉 kubelet 在执行第一次探测前应该等待多少秒。

HTTP GET
HTTP模式的健康检查是通过配置URL发送HEAD/GET请求,根据URL返回的状态码判断应用服务器是否健康。 容器内执行 curl http://localhost:<端口号>/<URL路径> 进行测试。访问设置的URL,根据返回值来判断应用是否健康,当返回值为200~400间时表示健康检查成功。 示例:http://localhost:9090/health

TCP SOCKET
TCP模式的健康检查是基于网络层探测,配置应用端口来探测服务器端口是否存活。

Exec Command
这种方法一般用于排错,使用命令的方式跳过健康检查对程序的探测,直接启动容器,在容器中查询故障点,点击查看参考文档。

当调用容器生命周期管理回调时,Kubernetes 管理系统根据回调动作执行其处理程序, httpGet 和 tcpSocket 在 kubelet 进程执行,而 exec 则由容器内执行。

根据自己项目选择健康检查的方式,并填写正确的端口,不然构建过程的最后一步会报错。 查看容器日志如果显示“unhealthy”,可能是健康检查设置有误。

PDB

PodDisruptionBudget(PDB)是Kubernetes 1.6版本引入的,用于保证在节点故障时,服务不会中断。PDB可以指定一个服务在节点故障时,可以容忍的Pod数量,如果超过这个数量,服务就会中断。PDB可以保证服务在节点故障时,不会中断,但是不能保证服务在节点故障时,不会被影响。例如:如果一个服务有10个副本,PDB指定最多可以容忍2个副本故障,那么在节点故障时,服务最多只能容忍2个副本故障,如果节点故障时,有3个副本故障,那么服务仍然会中断。