Проблема оператора Zalando postgres с конфигурацией - PullRequest
0 голосов
/ 24 октября 2019

Получение вопроса ниже с оператором Zalando Postgres. Манифесты по умолчанию применяются в кластере Kubernetes (размещенном на-прем), как указано здесь: https://github.com/zalando/postgres-operator/tree/4a099d698d641b80c5aeee5bee925921b7283489/manifests

Проверено, есть ли какие-либо проблемы в именах операторов или в конфигурационных файлах или в определениях учетных записей служб, ноне могу понять много.

kubectl logs -f postgres-operator-944b9d484-9h796
2019/10/24 16:31:02 Spilo operator v1.2.0
2019/10/24 16:31:02 Fully qualified configmap name: default/postgres-operator
panic: configmaps "postgres-operator" is forbidden: User "system:serviceaccount:default:zalando-postgres-operator" cannot get resource "configmaps" in API group "" in the namespace "default"
goroutine 1 [running]:
github.com/zalando/postgres-operator/pkg/controller.(*Controller).initOperatorConfig(0xc0004a6000)
    /root/go/src/github.com/zalando/postgres-operator/pkg/controller/controller.go:102 +0x687
github.com/zalando/postgres-operator/pkg/controller.(*Controller).initController(0xc0004a6000)
    /root/go/src/github.com/zalando/postgres-operator/pkg/controller/controller.go:253 +0x825
github.com/zalando/postgres-operator/pkg/controller.(*Controller).Run(0xc0004a6000, 0xc000464660, 0xc000047a70)
    /root/go/src/github.com/zalando/postgres-operator/pkg/controller/controller.go:348 +0x2f
main.main()
    /workspace/cmd/main.go:82 +0x256

Любая помощь здесь?

1 Ответ

0 голосов
/ 28 октября 2019

Я установил postgres-operator в моей среде, и она отлично работает в моем случае. Пожалуйста, убедитесь, что вы выполнили следующие шаги:

Клон postgres-operator Репо:

$ git clone https://github.com/zalando/postgres-operator
$ cd postgres-operator

Оператор из Заландо можно настроить двумя способами - с помощью классического configmap или конфигурации CRDобъект, который является более мощным:

$ kubectl create -f manifests/operator-service-account-rbac.yaml 
serviceaccount/zalando-postgres-operator created
clusterrole.rbac.authorization.k8s.io/zalando-postgres-operator created
clusterrolebinding.rbac.authorization.k8s.io/zalando-postgres-operator created

Чтобы использовать конфигурацию CRD, вы должны изменить значение в самом postgres-operator. Измените последние несколько строк в manifests/postgres-operator.yaml, чтобы они читались следующим образом:

env:
# provided additional ENV vars can overwrite individual config map entries
#- name: CONFIG_MAP_NAME
#  value: "postgres-operator"
# In order to use the CRD OperatorConfiguration instead, uncomment these lines and comment out the two lines above
- name: POSTGRES_OPERATOR_CONFIGURATION_OBJECT
  value: postgresql-operator-default-configuration

Имя учетной записи службы, указанное в этом файле, не совпадает с именем, указанным в определении учетной записи службы оператора, поэтому необходимо настроить и создать фактическуюссылка на объект конфигурацииЭто помещено в manifests/postgresql-operator-default-configuration.yaml. Это значения, которые должны быть установлены:

configuration:
  kubernetes:
    pod_environment_configmap: postgres-pod-config
    pod_service_account_name: zalando-postgres-operator

Давайте создадим оператор и его конфигурацию.

$ kubectl create -f manifests/postgres-operator.yaml 
deployment.apps/postgres-operator created

Пожалуйста, подождите несколько минут, прежде чем вводить следующую команду:

$ kubectl create -f postgresql-operator-default-configuration.yaml 
operatorconfiguration.acid.zalan.do/postgresql-operator-default-configuration created

Теперь вы сможете увидеть, как работает ваш POD:

$ kubectl get pods
NAME                                 READY   STATUS    RESTARTS   AGE
postgres-operator-599fd68d95-c8z67   1/1     Running   0          21m

Вы также можете обратиться к этой статье , надеюсь, она вам поможет.

...