Я уже очень много раз пытался настроить этот конвейер в devops Azure, где я хочу развернуть кластер AKS и поместить istio поверх.
Развертывание AKS с использованием Terraform прекрасно работает.
После этого я пытаюсь установить istio с помощью helm, но команда, которую я использую, выдает запрещенную ошибку.
helm.exe install --namespace istio-system --name istio-init --wait C:\Istio\install\kubernetes\helm\istio
Я использовал локальный путь, так как это был единственный хороший способ найти для helm схему istio, которая есть у меня в агенте сборки.
Сообщение об ошибке
Error: release istio-init failed: clusterroles.rbac.authorization.k8s.io "istio-galley-istio-system" is forbidden: attempt to grant extra privileges: [{[*] [admissionregistration.k8s.io] [validatingwebhookconfigurations] [] []} {[get] [config.istio.io] [*] [] []} {[list] [config.istio.io] [*] [] []} {[watch] [config.istio.io] [*] [] []} {[get] [*] [deployments] [istio-galley] []} {[get] [*] [endpoints] [istio-galley] []}] user=&{system:serviceaccount:kube-system:tillerserviceaccount 56632fa4-55e7-11e9-a4a1-9af49f3bf03a [system:serviceaccounts system:serviceaccounts:kube-system system:authenticated] map[]} ownerrules=[] ruleResolutionErrors=[[clusterroles.rbac.authorization.k8s.io "cluster-admin" not found, clusterroles.rbac.authorization.k8s.io "system:discovery" not found, clusterroles.rbac.authorization.k8s.io "cluster-admin" not found, clusterroles.rbac.authorization.k8s.io "system:discovery" not found, clusterroles.rbac.authorization.k8s.io "system:discovery" not found, clusterroles.rbac.authorization.k8s.io "cluster-admin" not found]]
Служебная учетная запись, которую я использую (system: serviceaccount: kube-system: tillerserviceaccount, как вы можете видеть в сообщении об ошибке), конфигурируется с помощью этой конфигурации rbac:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tillerserviceaccount
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tillerbinding
roleRef:
apiGroup: ""
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: tillerserviceaccount
namespace: kube-system
Тем не менее сообщение об ошибке говорит в ruleResolutionErrors, что оно ищет cluster-admin, но оно не найдено.
Я даже попытался сделать крайнее и установил все учетные записи служб в качестве администраторов кластера для проверки:
kubectl create clusterrolebinding serviceaccounts-admins --clusterrole=cluster-admin --group=system:serviceaccounts
Но даже после этого я получаю ту же ошибку с тем же правилом ResolutionErrors.
Я застрял и ценю любую помощь в том, что я могу сделать по-другому.