У меня есть репликация главного подчиненного устройства, работающая с 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
чтобы проверить это. Если он слишком старый, попробуйте обновить его.