From 336989088a24c0fd483db0a28a3d0b14129a360e Mon Sep 17 00:00:00 2001 From: Joakim Karlsson <5434736+roffe@users.noreply.github.com> Date: Wed, 7 Feb 2018 15:19:30 +0100 Subject: [PATCH] reverted rollingUpdate strategy (#300) * reverted rollingUpdate strategy & added docs for how to achieve it instead --- Documentation/upgrading.md | 30 ++++++++++++++++++- ...erouter-all-features-advertise-routes.yaml | 4 --- .../generic-kuberouter-all-features.yaml | 4 --- daemonset/generic-kuberouter.yaml | 4 --- ...ll-service-daemonset-advertise-routes.yaml | 4 --- .../kube-router-all-service-daemonset.yaml | 4 --- daemonset/kube-router-firewall-daemonset.yaml | 4 --- daemonset/kube-router-proxy-daemonset.yaml | 4 --- .../kubeadm-kuberouter-all-features-dsr.yaml | 4 --- .../kubeadm-kuberouter-all-features.yaml | 4 --- daemonset/kubeadm-kuberouter.yaml | 4 --- 11 files changed, 29 insertions(+), 41 deletions(-) diff --git a/Documentation/upgrading.md b/Documentation/upgrading.md index d892b9d2..422c9ec7 100644 --- a/Documentation/upgrading.md +++ b/Documentation/upgrading.md @@ -68,8 +68,36 @@ kubectl -n kube-system delete pods -l k8s-app=kube-router ``` ### With Rolling Updates +After updating a DaemonSet template, old DaemonSet pods will be killed, and new DaemonSet pods will be created automatically, in a controlled fashion -*TODO* +If your global BGP peers supports gracefull restarts and has it enabled, [rolling updates](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/) can be used to upgrade your kube-router DaemonSet without network downtime +To enable gracefull BGP restart kube-router must be started with `--bgp-graceful-restart` + +To enable rolling updates on your kube-router DaemonSet modify it and add a updateStrategy + + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + +maxUnavailable controls the maximum number of pods to simultaneously upgrade + +Starting from the top of the DaemonSet, it should look like this after you are done editing + + apiVersion: extensions/v1beta1 + kind: DaemonSet + metadata: + labels: + k8s-app: kube-router + tier: node + name: kube-router + namespace: kube-system + spec: + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + ... ## Breaking Change Version History diff --git a/daemonset/generic-kuberouter-all-features-advertise-routes.yaml b/daemonset/generic-kuberouter-all-features-advertise-routes.yaml index 379e8dc2..71579b1a 100644 --- a/daemonset/generic-kuberouter-all-features-advertise-routes.yaml +++ b/daemonset/generic-kuberouter-all-features-advertise-routes.yaml @@ -47,10 +47,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/generic-kuberouter-all-features.yaml b/daemonset/generic-kuberouter-all-features.yaml index fda26123..883e3b09 100644 --- a/daemonset/generic-kuberouter-all-features.yaml +++ b/daemonset/generic-kuberouter-all-features.yaml @@ -47,10 +47,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/generic-kuberouter.yaml b/daemonset/generic-kuberouter.yaml index 99970487..6f6c8e5d 100644 --- a/daemonset/generic-kuberouter.yaml +++ b/daemonset/generic-kuberouter.yaml @@ -28,10 +28,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kube-router-all-service-daemonset-advertise-routes.yaml b/daemonset/kube-router-all-service-daemonset-advertise-routes.yaml index a955b539..6179723a 100644 --- a/daemonset/kube-router-all-service-daemonset-advertise-routes.yaml +++ b/daemonset/kube-router-all-service-daemonset-advertise-routes.yaml @@ -26,10 +26,6 @@ metadata: labels: k8s-app: kube-router spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kube-router-all-service-daemonset.yaml b/daemonset/kube-router-all-service-daemonset.yaml index 89764383..cc27ea45 100644 --- a/daemonset/kube-router-all-service-daemonset.yaml +++ b/daemonset/kube-router-all-service-daemonset.yaml @@ -26,10 +26,6 @@ metadata: labels: k8s-app: kube-router spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kube-router-firewall-daemonset.yaml b/daemonset/kube-router-firewall-daemonset.yaml index 02697472..110486ed 100644 --- a/daemonset/kube-router-firewall-daemonset.yaml +++ b/daemonset/kube-router-firewall-daemonset.yaml @@ -26,10 +26,6 @@ metadata: labels: k8s-app: kube-router spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kube-router-proxy-daemonset.yaml b/daemonset/kube-router-proxy-daemonset.yaml index dbb84765..9bb7f4b1 100644 --- a/daemonset/kube-router-proxy-daemonset.yaml +++ b/daemonset/kube-router-proxy-daemonset.yaml @@ -26,10 +26,6 @@ metadata: labels: k8s-app: kube-router spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kubeadm-kuberouter-all-features-dsr.yaml b/daemonset/kubeadm-kuberouter-all-features-dsr.yaml index 97d9748a..9a4c827e 100644 --- a/daemonset/kubeadm-kuberouter-all-features-dsr.yaml +++ b/daemonset/kubeadm-kuberouter-all-features-dsr.yaml @@ -27,10 +27,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kubeadm-kuberouter-all-features.yaml b/daemonset/kubeadm-kuberouter-all-features.yaml index 3bdd2e92..19571ff0 100644 --- a/daemonset/kubeadm-kuberouter-all-features.yaml +++ b/daemonset/kubeadm-kuberouter-all-features.yaml @@ -27,10 +27,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: diff --git a/daemonset/kubeadm-kuberouter.yaml b/daemonset/kubeadm-kuberouter.yaml index e4ab30d3..1b64f410 100644 --- a/daemonset/kubeadm-kuberouter.yaml +++ b/daemonset/kubeadm-kuberouter.yaml @@ -27,10 +27,6 @@ metadata: name: kube-router namespace: kube-system spec: - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: 1 template: metadata: labels: