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

Kubernetes 的 Azure 策略的工作方式是,您需要為每個容器明確聲明allowPrivilegeEscalation設定為 false 的值。容器不需要它是不夠的,這必須在清單中設定。

因此,您需要修改控制台部署,以確保在 sidecar pod 上進行設定。我對 Consul 不太熟悉,但如果它是用 Helm 部署的,請查看值檔案中的選項,看看是否可以設定它。

相關內容