При включенном дополнении Azure Policy (согласно политике организации) мы не можем создавать привилегированные контейнеры в aks, Azure Kubernetes.
Наше приложение настроено на контекст безопасности, как показано ниже.
securityContext:
allowPrivilegeEscalation: false
runAsNonRoot: true
runAsUser: 999
Итак, наше приложение может создавать без привилегированного доступа. Но при связывании с consul (через аннотации) контейнеры init consul не могут быть созданы.
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. Я не очень хорошо знаком с Consul, но если он развертывается с Helm, посмотрите на параметры в файле значений, чтобы узнать, можно ли это установить.