我有一个 Kubernetes 集群,其中有 2 个 Linux 节点和 2 个 Windows Server 2019,运行 Kubernetes v1.26.0 和 Containerd v1.6.20,还有 Vmware 工具版本 10.3.2
Linux 节点运行良好,但 Windows 节点行为异常。
这是一个新的集群,但 Windows 节点只能运行不到 4 小时,之后 Windows 的 Pod 就开始抱怨缺少端点。
我检查了 Windows 节点,发现事件发生时,Windows 日志上出现了错误 0xc0000005。
我可以通过重启 HNS、contained 和 kubelet 来恢复。然后执行重新部署,但几个小时后问题又再次出现。
从集群中使用 Calico 网络,并且我在 Windows Server 上启用了 Hyper-V。我还禁用了 Windows 更新。
我怎样才能停止此 HNS 自动重启。错误图像
答案1
错误 0xc0000005 是 svchost(本例中为主机网络过滤驱动程序)中的“访问冲突”。堆栈中的应用程序(最有可能是 calico,但由于没有更多详细信息,因此这只是一个更好的猜测)行为不当并尝试访问受保护的内存。
答案2
通过在 Windows 漏洞保护设置中禁用特定程序 svchost、vmcompute 和 vmwp 的控制流保护 (CFG) 来解决该问题。
此外,建议将 Vmware 工具升级到 11.3+ 版本。