概述
应用部署配置中涉及了许多K8s中的概念,如果要使用到应用部署配置中的这些高级特性,需要对K8s有较为深入的了解。下面将介绍一些推荐使用的部署配置中的特性。
应用配置信息
应用配置信息可在两处进行配置:
左侧导航栏,选择容器应用实例 --> 应用发布 --> 应用实例,在应用实例列表,点击上方创建应用实例,进入到部署配置模块进行配置。
左侧导航栏,选择容器应用实例 --> 应用发布 --> 应用实例,在应用实例列表,点击应用实例,进入到应用实例详情,点击右上方新增版本按钮,在新增版本界面进行配置。
Pod数量
建议为应用配置2个及以上Pod实例。配置多个Pod实例,可有效避免单个Pod实例故障而导致的应用无法使用。
单Pod资源配额
建议为应用配置合理的CPU资源预留(Request)和Mem资源限制(Limit)。配置合理的单Pod资源配额,可以有效利用K8s集群资源。
说明
对于Java应用,配置的Mem资源限制(Limit)不应低于JVM配置的内存使用上限,否则会在Pod层面出现内存不足(OOM),导致Pod重启。
应用高级配置信息
建议为应用设置合理的日志滚动策略,及时清理。Pod实例内打印过多日志将侵占节点的磁盘空间,导致节点进入DiskPressure状态,并引发Pod驱逐。
合理配置应用生命周期的探针。
为了便于故障自愈和优雅上下线,Liveness存活探针的各参数配置应当保证应用可以正常启动,若应用正常启动时间较长,可以配置更长的首次启动延迟时间(InitialDelaySeconds)。相关文档,请参见应用运维-->容器应用实例-->创建制品微服务,查看应用高级配置——应用生命周期管理。
如果部署的是应用通过Service实现的服务暴露,Readiness就绪探针的各参数配置应当保证能准确的反映应用健康状况,以免非健康Pod提供服务(即未被Service摘除)。
配置日志收集规则。将Pod实例日志持久化保存到云日志服务,便于问题排查。由于Pod实例本身是无状态的,会因为各种调度而重新创建和删除,因此需要将Pod实例的日志进行集中化收集并持久化存储。相关文档,请参见应用运维-->容器应用实例-->创建制品微服务,查看应用高级配置——日志收集管理。