本文介绍 Azure Stack Hub 上的 AKS 引擎的已知问题。
服务主体(SPN)的机密过期会导致集群出现故障
适用于:此问题适用于所有版本。
说明:当 SPN 的机密过期时,群集将失败。 这将影响使用 AKS 引擎部署的所有 kubernetes 群集。 机密过期后,群集 将无法 正常运行。
修正:若要缓解此问题,请登录到每个 kubernetes 节点,以使用新的 SPN 应用程序 ID 和未过期的机密更新
/etc/kubernetes/azure.json配置文件。 可能需要联系 Azure Stack Hub 云作员以获取 SPN 和当前机密。 有关说明,请参阅 使用应用标识访问资源可以在 Linux 节点上使用以下命令:
sudo sed -i s/f072c125-c99c-4781-9e85-246b981cd52b/094b1318-baea-4584-bf9c-4a40501ce21b/1 /etc/kubernetes/azure.jsonkubelet使用以下命令重启服务:sudo systemctl reboot node
还可以将 SPN 和机密与 API 模型一起使用,并强制升级。 有关说明,请参阅 强制升级。
出现次数:常见
前端代理的证书过期
- 适用于:此问题适用于所有版本。
-
说明:证书过期后,
kubectl top指标服务器可能会停止工作。 - 修正:需要续订证书。 可以在 Azure Stack Hub 上轮换 Kubernetes 证书中找到相关步骤
- 出现次数:常见
每个订阅最多可包含 50 个节点的限制
- 适用于:Azure Stack Hub、AKS 引擎(全部)
- 说明:创建群集时,必须确保每个订阅部署的 Kubernetes 节点数不超过 50 个(控制平面和代理节点)。 在单个订阅中的所有群集中部署的总 Kubernetes 节点不应超过 50 个节点。
- 补救措施:在订阅中使用少于 51 个节点。
- 发生频率:尝试为每个订阅添加 50 个以上的节点时。
无法使用计算服务调整群集 VM 的大小
- 适用于:Azure Stack Hub、AKS 引擎(全部)
-
说明:通过计算服务调整群集 VM 的大小不适用于 AKS 引擎。 AKS 引擎在 API 模型 JSON 文件中维护群集的状态。 若要确保所需的 VM 大小反映在任何使用 AKS 引擎完成的创建、升级或缩放作中,请在执行上述任何作之前更新 API 模型。 例如,如果使用计算服务将已部署的群集上的 VM 大小更改为其他大小,则执行时
aks-engine upgrade状态会丢失。 -
修正:若要执行此作,请找到群集的 API 模型,更改该群集的大小,然后运行
aks-engine upgrade。 - 发生频率:尝试使用计算服务调整大小时。
AKS 引擎 0.55.0 中的磁盘分离操作失败
- 适用于:Azure Stack Hub(更新 2005),AKS 引擎 0.55.0
- 说明:当尝试删除包含持久性卷的部署时,删除操作会触发一系列挂载/卸载错误。 此问题是由于 AKS 引擎 v0.55.0 云提供商中的 bug 导致的。 云提供商使用的 API 版本比 Azure Stack Hub (更新 2005) 中的 Azure 资源管理器当前支持的版本要新,通过这个版本调用 Azure 资源管理器。
- 修正:有关详细信息和缓解步骤,请参阅 AKS 引擎 GitHub 存储库(问题 3817)。 一旦 AKS 引擎的新版本和相应的映像可用,就会立即升级。
- 发生频率:删除包含持久性卷的部署时。
AKS 引擎 0.51.0 中的升级问题
在 Kubernetes 群集从版本 1.15.x 升级到 1.16.x 的 AKS 引擎期间,升级以下 Kubernetes 组件需要额外的手动步骤: kube-proxy、 azure-cni-networkmonitor、 csi-secrets-store、 kubernetes-dashboard。 以下信息介绍了你可能会看到的内容以及如何解决这些问题。
在连接的环境中,此问题并不明显,因为群集中没有迹象表明受影响的组件未升级。 一切似乎按预期工作。
kubectl get pods -n kube-system作为解决上述每个组件的此问题的解决方法,请运行下表中 “解决方法 ”列中的命令。
组件名称 解决方法 受影响的方案 kube-proxy kubectl delete ds kube-proxy -n kube-system已连接、离线 azure-cni-networkmonitor kubectl delete ds azure-cni-networkmonitor -n kube-system已连接、离线 csi-secrets-store sudo sed -i s/Always/IfNotPresent/g /etc/kubernetes/addons/secrets-store-csi-driver.yamlkubectl delete ds csi-secrets-store -n kube-system已断开连接 kubernetes-dashboard 在每个控制平面节点上运行以下命令: sudo sed -i s/Always/IfNotPresent/g /etc/kubernetes/addons/kubernetes-dashboard.yaml已断开连接
此版本中不支持 Kubernetes 1.17。 尽管存在引用 1.17 的 GitHub 拉取请求(PR),但不受支持。
群集节点进入“未就绪”状态,并且 k8s-kern.log 文件中包含消息“Memory cgroup out of memory”
适用于:Azure Stack Hub、AKS 引擎(全部)
说明:群集节点移动到“未就绪”状态, k8s-kern.log 文件包含消息
Memory cgroup out of memory。 此问题适用于所有 AKS 引擎版本。 若要检查系统上是否发生此问题,请在 k8s-kern.log 文件中搜索字符串“内存 cgroup 内存不足”。可以通过以下方式找到 k8s-kern.log 文件:
- 运行
aks-engine get-logs并导航到 ${NODE_NAME}/var/log/k8s-kern.log,或 - 导航到节点文件系统上的“/var/log/kern.log”。
- 运行
修正方法:对于控制平面节点,请增加主配置文件 VM 大小。 对于代理节点,请增加节点池 VM 大小或纵向扩展节点池。 若要纵向扩展节点池,请运行记录的
scale命令并按照说明进行作。若要增加池 VM 大小,请更新 API 模型并运行
aks-engine upgrade。 删除所有 VM,并使用新的 VM 大小重新创建。出现:当群集节点所需的内存/消耗超过可用内存时。