Назад | Перейти на главную страницу

Отработка отказа PostgreSQL с помощью Kubernetes

У меня есть репликация главного подчиненного устройства, работающая с Kubernetes, но теперь я хотел бы реализовать аварийное переключение. У меня есть поды, работающие с ролями service = postgresql и role = master или role = slave. Когда мастер выходит из строя, я хочу выбрать другого мастера и изменить его метку роли на мастер, чтобы служба postgresql-master указывала на нового мастера.

Два вопроса:

ОБНОВЛЕНИЕ: точная ошибка при обновлении метки

$ ./kubectl get pod -l type=postgresql
POD                       IP           CONTAINER(S)   IMAGE(S)                      HOST                  LABELS                        STATUS    CREATED     MESSAGE
postgresql-master-y868v   172.17.0.2                                                127.0.0.1/127.0.0.1   role=master,type=postgresql   Running   3 minutes   
                                    postgresql     genericsites/postgresql:0.1                                                       Running   3 minutes   

vincent@vincent-netbook-e11:~/Documents/Develop/Web/websites-system/installation/kubernetes$ ./kubectl label pod postgresql-master-y868v test=foo
Error from server: Pod "postgresql-master-y868v" is invalid: spec: invalid value '* pod definition in JSON *': may not update fields other than container.image

ОБНОВЛЕНИЕ: кажется, что можно изменить метку службы, что, возможно, позволило бы мне взломать проблему, но, конечно, не было бы оптимальным

@vincent Возможно, версия сервера слишком старая. Пожалуйста попробуйте kubectl version чтобы проверить это. Если он слишком старый, попробуйте обновить его.