Проблема оператора Zalando Postgres с конфигурацией
Проблема с оператором 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 ответ
Я установил postgres-operator
в моей среде, и в моем случае он отлично работает. Убедитесь, что вы выполнили следующие шаги:
Клонировать postgres-operator
репо:
$ git clone https://github.com/zalando/postgres-operator
$ cd postgres-operator
Оператор из Zalando может быть настроен двумя способами - с использованием классической карты конфигурации или с помощью объекта конфигурации 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
Вы также можете обратиться к этой статье, надеюсь, она вам поможет.