本文描述 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.json
使用以下命令重启
kubelet
服务: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 所致。 云平台使用了版本高于 Azure 资源管理器目前在 Azure Stack Hub(更新 2005)中支持的 API 版本的 API 来调用 Azure 资源管理器。
- 修正方法:有关详细信息和缓解步骤,请参阅 AKS 引擎 GitHub 存储库(问题 3817)。 在 AKS 引擎的新版本和相应映像可用时立即升级。
- 发生场合:删除包含持久性卷的部署时。
AKS 引擎 0.51.0 中的升级问题
在将 Kubernetes 群集的 AKS 引擎从 1.15.x 版升级到 1.16.x 版期间,以下 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.yaml
kubectl 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。 尽管有 GitHub 拉取请求 (PR) 引用 1.17,但它不受支持。
群集节点进入“未就绪”状态,并且 k8s-kern.log
文件中包含消息“Memory cgroup out of memory”
适用于:Azure Stack Hub,AKS 引擎(全部)
描述:群集节点进入“未就绪”状态,并且 k8s-kern.log 文件包含消息
Memory cgroup out of memory
。 此问题适用于所有 AKS 引擎版本。 若要检查系统是否出现此问题,请在 k8s-kern.log 文件中搜索字符串“Memory cgroup out of memory”。可以通过以下方式查找 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 大小重新创建 VM。发生场合:当群集节点所需/使用的内存超过可用内存时。