Я попытался установить агент сборки Azure на наш локальный кластер kubernetes.При попытке запуска сборок мы всегда нажимаем Состояние 403 Запрещено при выполнении команд kubectl
.
Поскольку RBAC включен, я настроил ServiceAccount, CluterRole и ClusterRoleBinding для нашего пространства имен агента сборки со следующими правилами:
kind: ServiceAccount
apiVersion: v1
metadata:
name: build-agent
namespace: agent_ns
automountServiceAccountToken: false
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: build-agent
rules:
- apiGroups:
- ""
resources:
- namespaces
- nodes
- nodes/proxy
- proxy
- pods
- services
- endpoints
- secrets
verbs:
- get
- list
- watch
- apiGroups:
- extensions
resources:
- ingresses
verbs:
- get
- list
- watch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: build-agent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: build-agent
subjects:
- kind: ServiceAccount
name: build-agent
namespace: agent_ns
Тем не менее, если я залезу в стручок с помощью:
kubectl exec -it build-agent-xxxxxxxx-xxxx --namespace=agent_ns -- sh
и попытаюсь получить доступ к API kubernetes через curl, я получу 403:
curl https://10.x.x.x:6443
curl: (56) Received HTTP code 403 from proxy after CONNECT
Файл kubeconfig присутствует в виртуальной машине pod.Это то же самое, что я использую с хост-машины, когда я kubectl к кластеру.Аналогично команде curl, если я попытаюсь выполнить команду kubectl после перехода в модуль, запросы вернут 403:
> kubectl get ns
Unable to connect to the server: Forbidden
РЕДАКТИРОВАТЬ:
Описание развертывания теперь также содержитспецификация сервиса.Проблема все еще сохраняется:
> kubectl get pod build-agent-xxxxxxxxx-xxxxx -o yaml -n agent_ns
...
spec:
automountServiceAccountToken: false
...
serviceAccount: build-agent
serviceAccountName: build-agent
Я что-то упустил?При необходимости я могу предоставить больше информации, просто дайте мне знать.
Кластер работает нормально, у нас уже есть tiller, traefik и служба, которая работает и работает.