# # #docker #go #google-kubernetes-engine #kubernetes-helm #kubectl
Вопрос:
Я написал приложение go, в котором будут перечислены все нарушения ограничений в кластере.Когда я попытался создать его в виде образа docker и запустить его в своем модуле и получил эту ошибку.
под.ямл
apiVersion: v1
kind: Pod
metadata:
name: opa
labels:
name: opa
spec:
containers:
- name: opa
image: sathya0803/opa-task:latest
resources:
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 8000
ошибка:
revaa@revaa-Lenovo-E41-25:~/opa$ kubectl logs opa
2021/07/30 05:50:12 Using incluster K8S client
2021/07/30 05:50:12 Using incluster K8S client
2021/07/30 05:50:12 err:k8srequiredlabels.constraints.gatekeeper.sh is forbidden: User"system:serviceaccount:default:opa" cannot list resource "k8srequiredlabels" in API group "constraints.gatekeeper.sh" at
the cluster scope
2021/07/30 05:50:12 listing constraints violations...
2021/07/30 05:50:12 data: null
Комментарии:
1. Похоже, что ваше приложение не может разрешить переменные среды. Пожалуйста, перефразируйте свой вопрос, чтобы включить минимальный воспроизводимый код.
2. учетная запись службы, которую вы используете, не имеет необходимых привилегий для выполнения этой задачи с помощью API kubernetes. Загляните в RBAC, чтобы предоставить вашему собственному аккаунту службы соответствующие разрешения. Это не проблема Go.
Ответ №1:
Как упоминал @Ferdy Pruis, учетная запись службы, которую вы используете, не имеет необходимых привилегий для выполнения задачи с использованием API kubernetes. Проверьте приведенный ниже RBAC, чтобы предоставить вашей собственной учетной записи службы соответствующие разрешения.
Это предоставит разрешения на просмотр учетной записи службы по умолчанию. Более безопасным подходом, вероятно, было бы создание новой учетной записи службы, предоставление ей разрешений на просмотр, а затем назначение этой учетной записи службы конфигурации развертывания.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: default-view
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: view
subjects:
- kind: ServiceAccount
name: default
namespace: default
Обратитесь к этим ссылкам для создания SA и IAM и управления ими.