阿里云容器计算服务(简称ACS)提供容器计算服务相关的技术架构以及核心组件的托管服务,对于非托管组件以及运行在ACS集群中的应用,不当操作可能会导致业务故障。为了更好地预估和避免相关的操作风险,在使用容器计算服务ACS前,请认真阅读本文中的建议与注意事项。
使用须知
集群升级相关
请务必通过容器计算服务ACS的集群升级功能升级集群的K8s版本,自行升级K8s版本可能导致ACS集群的稳定性和兼容性问题。
阿里云容器计算服务ACS对集群升级提供以下支持:
提供集群K8s新版本的升级功能。
提供K8s新版本升级的前置检查功能,确保集群当前状态支持升级。
提供K8s新版本的版本说明文档,包括相较于前版本的变化。
提示升级到K8s新版本时因资源变化可能会发生的风险。
您在使用集群升级功能时,请遵循以下建议:
在集群升级前运行前置检查,并根据前置检查结果逐一修复集群升级的阻塞点。
详细阅读K8s新版本的版本说明文档,并根据ACS所提示的升级风险确认集群和业务的状态,自行判断升级风险。
由于集群升级不提供回滚功能,请做好充分的升级计划和预后备案。
根据容器计算服务ACS的版本支持机制,在当前版本的支持周期内及时升级集群K8s版本。更多信息,请参见Kubernetes版本概览及机制。
Kubernetes原生配置相关
在YAML模板中请勿使用Kubernetes集群预留的Annotation,否则会造成资源不可用、申请失败、异常等问题。以
kubernetes.io/
和k8s.io/
开头的标签为核心组件预留标签。违规示例:pv.kubernetes.io/bind-completed: "yes"。
ACS集群相关
在以下场景中不提供赔付:
为简化集群运维,ACS集群提供部分系统组件托管能力,并在集群的组件开启托管后,负责其部署和维护。由于您误删托管组件依赖的K8s对象资源等其他情况导致业务受损时,ACS不提供赔付。
高危操作
在使用容器计算服务ACS过程中相关功能模块存在高危操作,可能会对业务稳定性造成较大影响。在使用前请认真了解以下高危操作及其影响。
集群相关高危操作
分类 | 高危操作 | 影响 | 恢复方案 |
API Server | 删除API Server所使用的SLB。 | 导致集群不可操作。 | 不可恢复,请重新创建集群。 |
其他 | 通过RAM执行权限变更或修改操作。 | 集群部分资源如负载均衡可能无法创建成功。 | 恢复原先权限。 |
网络与负载均衡相关高危操作
高危操作 | 影响 | 恢复方案 |
修改或者删除ACS添加的SLB的标签。 | 导致SLB异常。 | 恢复SLB的标签。 |
通过负载均衡控制台修改ACS管理的SLB的配置,包括SLB、监听及虚拟服务器组。 | 导致SLB异常。 | 恢复SLB的配置。 |
移除Service中复用已有SLB的Annotation,即 | 导致SLB异常。 | 在Service中添加复用已有SLB的Annotation。 说明 复用已有SLB的Service无法直接修改为使用自动创建SLB的Service。您需要重新创建Service。 |
通过负载均衡控制台删除ACS创建的SLB。 | 可能导致集群网络异常。 | 通过删除Service的方式删除SLB。删除Service请参见删除Service。 |
在安装Nginx Ingress Controller组件的情况下手动删除 kube-system命名空间下的 | Ingress Controller工作不正常,严重时产生崩溃。 | 使用以下YAML新建一个同名Service。
|
存储相关高危操作
高危操作 | 影响 | 恢复方案 |
控制台手动解挂云盘。 | Pod写入报IO Error。 | 重启Pod。 |
多个Pod挂载相同云盘。 | Pod写入本地磁盘或者报错IO Error。 | 确保一个云盘给一个Pod使用。 重要 云盘为阿里云存储团队提供的非共享存储,只能同时被一个Pod挂载。 |
手动删除NAS挂载目录。 | Pod写入报IO Error。 | 重启Pod。 |
日志相关高危操作
高危操作 | 影响 | 恢复方案 |
删除aliyunlogconfig CRD资源。 | 日志采集失效。 | 重新创建删除的CRD以及对应的资源,但失效期间日志无法恢复。 删除CRD会关联删除对应所有的实例,即使恢复CRD后还需要手动创建被删除的实例。 |
删除日志组件。 | 日志采集失效。 | 重新安装日志组件并手动恢复aliyunlogconfig CRD实例,删除期间日志无法恢复。 删除日志组件相当于删除aliyunlogconfig CRD以及日志采集器Logtail,期间日志采集能力全部丢失。 |