Не удается загрузить конфигурацию в кластере

# # #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 и управления ими.