Consul 容器正在创建为特权容器,如何改变这种状况?

Consul 容器正在创建为特权容器,如何改变这种状况?

启用 Azure 策略插件后(根据组织策略),我们无法在 aks、Azure kubernetes 上创建特权容器。

我们的应用程序设置的安全上下文如下。

    securityContext:
        allowPrivilegeEscalation: false
        runAsNonRoot: true
        runAsUser: 999

因此我们的应用无需特权访问即可创建。但是,当与 consul 链接时(通过注释),consul init 容器无法创建。

 Warning  FailedCreate  6s (x15 over 90s)  replicaset-controller  Error creating: admission webhook "validation.gatekeeper.sh" denied the request: [azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: envoy-sidecar
[azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: consul-sidecar
[azurepolicy-psp-container-no-privilege-esc-30132221bc21e5b724da] Privilege escalation container is not allowed: consul-connect-inject-init

答案1

Azure Kubernetes 策略的工作方式是,您需要为每个容器明确声明allowPrivilegeEscalation设置为 false 的值。容器不需要它是不够的,必须在清单中设置。

因此,您需要修改控制台部署,以确保在 sidecar pod 上设置了此功能。我对 Consul 不太熟悉,但如果使用 Helm 进行部署,请查看值文件中的选项,看看是否可以设置此功能。

相关内容