本文提供了在将 Azure Policy 加载项用于Azure Kubernetes 服务(AKS)时不会对容器强制实施 CPU 和内存限制的问题的解决方案。
现象
将应用程序部署到 AKS 群集时,会收到如下示例所示的错误:
“validation.gatekeeper.sh”拒绝请求:[container-must-have-limits] 容器 <名称> 没有资源/内存限制
原因
容器规范中未配置 CPU 和内存限制。
解决方法
若要解决此问题,请执行以下步骤,确保强制实施容器 CPU 和内存限制:
运行以下命令来检查群集的符合性:
kubectl describe k8sazurecontainerlimits
此命令提供有关为容器配置的当前 CPU 和内存限制的信息。
为容器规范中的所有现有部署配置 CPU 和内存限制。
下面是一个示例:
spec: containers: - name: cache-service image: xasag94215/flask-cache ports: - containerPort: 5000 name: rest resources: requests: cpu: 25m memory: 64Mi limits: cpu: 410m memory: 512Mi
注意
根据特定要求调整 CPU 和内存值。
更新容器规范后,触发重新扫描或按需扫描以评估符合性状态。 可以使用 Azure CLI 执行按需评估扫描。 有关启动按需扫描的详细信息,请参阅 按需评估扫描 - Azure CLI。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。