私は、ミニオンでKubernetesのバージョンをアップグレードする可能性のあるプレイブックを作成しています。2つのグループをターゲットとする可能性のあるプレイブック
- name: Configure and start the Kubernetes Nodes
hosts: kubernetes-minions
serial: 1
tasks:
- name: backup K8S master files.
shell: "{{item}}"
with_items:
- cp /etc/kubernetes/config /var/tmp/k8s-backup/
- cp /etc/kubernetes/kubelet /var/tmp/k8s-backup/
- name: cordon the minion.
command: kubectl cordon {{ ansible_default_ipv4.interface }}
delegate_to: kubernetes-master
- name: Install latest version of Docker on Minion.
yum: name=kubernetes-1.3.0-0.3.git86dc49a.el7 state=present
- name: start the kubernetes kubelet
service: name=kubelet state=restarted enabled=yes
- name: start the kubernetes kube-proxy
service: name=kube-proxy state=restarted enabled=yes
- name: uncordon the minion.
command: kubectl uncordon {{ ansible_default_ipv4.interface }}
delegate_to: kubernetes-master
マイインベントリファイルは次のように::
[kubernetes-masters]
172.29.219.102
[kubernetes-minions]
172.29.219.105
172.29.219.106
172.29.219.107
今、私はターゲットグループTPは、私は、実際のyum update
が起こることになっているが、このステップは、各手先上で実行される前にhosts: kubernetes-minions
ことが規定されているに見えますkubernetes-master
私が抱えている問題は、コードン/アンコドンのステップについて、ミニオンではなくクベネトマスターノードで行うことです。私はdelegate_to: kubernetes-master
を使用しようとしましたが、ミニオン自体のステップを実行しているようです。
EDIT :: 手下のアップグレードは、ダウンタイムを最小限に抑えるために、並列に順次なく行われます。
@techraf自動化のために、できるだけシンプルにしたい。あなたが2つの演劇を言及するとき、あなたはマスターにコード/ uncordonに1つの演劇を意味し、パッケージを更新するために他の演劇? –