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 に設定される値を明示的に宣言する必要があります。コンテナーがそれを必要としないだけでは不十分であり、マニフェストでこれを設定する必要があります。
したがって、サイドカー ポッドにこれが設定されていることを確認するために、コンソールのデプロイメントを修正する必要があります。私は Consul にそれほど詳しくありませんが、Helm でデプロイされている場合は、値ファイルのオプションを見て、これを設定できるかどうかを確認してください。