PostgreSQL故障转移与Kubernetes

我有主从复制与Kubernetes合作,但现在想实现故障转移。 我有运行与service = postgresql和angular色=主或angular色=奴隶angular色的豆荚。 当主服务器出现故障时,我想select另一个主服务器并将其angular色标签更改为主服务器,所以postgresql-master服务指向新的主服务器。

两个问题:

  • 我可以从一个吊舱连接到Kubernetes API,在船长死亡的时候得到通知,看看哪一个吊舱成为了新的主人?
  • 当我尝试通过说'kubectl label pod postgresql-slave role = master'来更改标签时,我收到消息说我只能更改正在运行的pod的图像,虽然我从命令帮助中获得了印象,但我应该可以改变豆荚的标签。 我究竟做错了什么?

更新:更新标签时的确切错误

$ ./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来validation。 如果太旧,请尝试更新。