本文介绍K8s集群在不同阶段需要注意的事项。
集群创建
此处仅介绍您在创建K8s集群时需要注意的事项。如需了解更多ACK Pro版集群信息,请参见ACK集群Pro版概述。
对于生产环境,建议使用ACK Pro托管版集群。
Pro版集群相对于标准版集群能提供更好的资源隔离特性和SLA,更多Pro版集群信息,请参见ACK集群Pro版概述。
对于生产环境,创建集群时使用Terway网络插件。
设置网络插件为Terway时,支持Pod实例独占一个专有的弹性网卡,以获得最佳的网络性能。更多网络插件信息,请参见创建ACK Pro版集群。
对于生产环境,创建集群时建议选用Alibaba Cloud Linux操作系统。
Alibaba Cloud Linux操作系统是ACK默认的操作系统,支持等保加固,可获得更好的性能和长期的服务支持。更多操作系统信息,请参见使用操作系统Alibaba Cloud Linux 2。
对于生产环境,建议使用企业级安全组。
企业级安全组相比于普通安全组能支持更大的节点容量。更多关于安全组的信息,请参见安全组概述。
如果使用的是普通安全组,在进行应用扩容时遇到Node节点或Pod无法扩容,可检查是否是安全组规格限制了节点容量而导致扩容失败。
禁止修改容器服务和EDAS添加的安全组规则。
正常情况下,安全组被容器服务集群所托管,ECS、Pod的IP段等规则都已经完成初始配置。如果随意修改或删除安全组规则,可能会导致集群无法导入EDAS、Pod无法调度、Pod之间网络不通、kubectl logs命令失效以及其他功能异常。
如果已经修改了安全组规则,请确保集群节点IP段已经加入了安全组规则。如何查看集群所属安全组,请参见查看集群信息。
如果需要使用Ingress提供对外服务,需要为集群配置合理的Ingress Controller的Pod副本数。
Ingress Controller组件承载着外部访问的流量,副本数不足将影响整体业务的吞吐量,您可在集群Prometheus监控视图查看Ingress Controller的监控指标,确认负载情况,以便设置合理的Pod副本数。查看Ingress Controller的监控指标,请参见Nginx Ingress访问日志分析与监控。
开启CoreDNS,并为CoreDNS配置合理的Pod副本数。
调整CoreDNS副本数与集群节点数到合适比率有助于提升集群服务发现的性能,该比值推荐为1:8,即一个CoreDNS Pod支撑8个集群节点。如何配置CoreDNS的副本数,请参见DNS最佳实践。
集群监控
此处仅介绍Prometheus监控、Node节点监控和收集集群日志,如需了解更多的集群监控相关信息,请参见可观测性体系概述。
查看Prometheus监控指标,对节点和工作负载添加报警。
为Node节点开启云监控,对ECS的资源使用率添加报警。
开启集群日志收集功能,从日志服务SLS进行日志分析。
集群删除
当您需要删除K8s集群时,请在EDAS先删除部署在K8s集群里的应用,然后再取消导入K8s集群,最后从容器服务ACK删除集群。
如果未按照上述顺序删除集群,会造成资源遗留,会影响VPC资源的删除。
相关文档,请参见: