Failover do PostgreSQL com o Kubernetes

3

Eu tenho replicação master slave trabalhando com o Kubernetes, mas agora gostaria de implementar o failover. Tenho pods em execução com os papéis service = postgresql e role = master ou role = slave. Quando o mestre falha, quero selecionar outro mestre e alterar seu rótulo de função para mestre, para que o serviço postgresql-master aponte para o novo mestre.

Duas perguntas:

  • Posso me conectar de um pod à API do Kubernetes para ser notificado quando o mestre morre e ver qual deles deve se tornar o novo mestre?
  • Quando tento alterar um rótulo dizendo 'kubectl label pod postgresql-escravo role = master' recebo a mensagem dizendo que só posso alterar a imagem de um pod em execução, embora eu receba a impressão do comando help que eu deve ser capaz de alterar rótulos de pods. O que estou fazendo errado?

UPDATE: erro exato ao atualizar o marcador

$ ./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

ATUALIZAÇÃO: Parece ser possível alterar o rótulo de um serviço, o que talvez me permitisse alterar o problema, mas obviamente não seria o ideal

    
por Vincent den Boer 24.07.2015 / 16:19

1 resposta

1

@vincent É possível que a versão do servidor seja muito antiga. Por favor, tente kubectl version para verificar isso. Se for muito antigo, tente atualizá-lo.

    
por 03.09.2015 / 02:10