当节点标签具有 kubernetes.io 前缀时,升级到 Kubernetes 1.16 失败

本文讨论在使用具有 kubernetes.io 前缀的节点标签时,如何排查升级到 Kubernetes 1.16 失败的问题。

现象

升级到 Kubernetes 1.16 的尝试失败,并且你使用的是具有前缀的 kubernetes.io 标签。

原因

从 Kubernetes 1.16 开始,kubelet 只能将 具有 kubernets.io 前缀 的已定义的标签子集应用于节点。 Microsoft Azure Kubernetes 服务(AKS)无法在未经同意的情况下代表你删除活动标签,因为这可能会导致受影响的工作负荷停机。

解决方案

缓解此问题:

  1. 将群集控制平面升级到 1.16 或更高版本。
  2. 在没有不支持 kubernetes.io 的标签的情况下,在 1.16 或更高版本上添加新节点池。
  3. 删除较旧的节点池。

AKS 正在研究对节点池上的活动标签进行改变的功能以改进这种缓解效果。

第三方信息免责声明

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区