From 630c018ea78837d65392d02fa030b979150ee8d5 Mon Sep 17 00:00:00 2001 From: Felixnoo <75110798+Felixnoo@users.noreply.github.com> Date: Sun, 27 Mar 2022 17:28:34 +0800 Subject: [PATCH] Add EN Blog: Restart a Kubernetes Cluster (#2345) * Add EN Blog: Restart a Kubernetes Cluster Signed-off-by: Felixnoo * resolve comments from pixiake Signed-off-by: Felixnoo * resolve comments from pixiake 2 Signed-off-by: Felixnoo --- content/en/blogs/restart-k8s-cluster.md | 140 ++++++++++++++++++ .../en/restart-k8s-cluster/restart-k8s.png | Bin 0 -> 37373 bytes 2 files changed, 140 insertions(+) create mode 100644 content/en/blogs/restart-k8s-cluster.md create mode 100644 static/images/blogs/en/restart-k8s-cluster/restart-k8s.png diff --git a/content/en/blogs/restart-k8s-cluster.md b/content/en/blogs/restart-k8s-cluster.md new file mode 100644 index 000000000..d0c6eefd0 --- /dev/null +++ b/content/en/blogs/restart-k8s-cluster.md @@ -0,0 +1,140 @@ +--- +title: 'Restart a Kubernetes Cluster in a Practical Way' +tag: 'Kubernetes, Cluster, Restart' +keywords: Kubernetes, Cluster, Restart +description: This article provides a practical way to restart a Kubernetes cluster built on kubeadm. +createTime: '2022-03-17' +author: 'Pixiake, Felix' +snapshot: '/images/blogs/en/restart-k8s-cluster/restart-k8s.png' +--- + +As cloud-native technologies continue to gain momentum, developers are focusing more on transforming conventional applications into cloud-native applications, hoping to take advantage of the flexibility and scalability that cloud-native technologies like Kubernetes offer. + +Powerful as Kubernetes is, it could still bring difficulties in practice. For example, it might be a puzzle when it comes to restarting a Kubernetes cluster. In this article, we'll look into how to restart a Kubernetes cluster in a practical way. + +## What is a Kubernetes Cluster + +A Kubernetes cluster is a combination of nodes that run containerized applications. These nodes can be virtual machines if the cluster is deployed in a cloud environment, or physical machines if the cluster is running in an on-premises environment. A Kubernetes cluster includes at least one control plane and a number of worker nodes. The control plane exposes the Kubernetes API so that the worker nodes can communicate with the control plane. + +As the control plane oversees the state of a Kubernetes cluster, worker nodes handles tasks assigned by it to actually run containerized applications in pods. Moreover, the pods are not tied to any specific worker nodes. Kubernetes can schedule them around the cluster according to the declarative YAML manifests to improve stability and efficiency. To learn more about the concept of Kubernetes cluster, see [Cluster Architecture](https://kubernetes.io/docs/concepts/architecture/). + +## Restart a Kubernetes Cluster + +This article assumes that you set up your Kubernetes cluster through [kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/) or [KubeKey](https://kubesphere.io/blogs/install-kubernetes-using-kubekey/). + +You have to make sure that you at least finish the backup for ectd before restarting your cluster, which would prevent you from the loss of critical data. Next, let's go into details about the process of restarting a Kubernetes cluster. + +### Shut down worker nodes + +1. Connect to a worker node through SSH. + +2. Run the following commands to stop pod scheduling and drain existing pods on the node. + + ``` + kubectl cordon + kubectl drain --ignore-daemonsets --delete-emptydir-data + ``` + +3. Run the following command to stop kubelet. + + ``` + sudo systemctl stop kubelet + ``` + +4. Run the following command to stop Docker. + + ``` + sudo systemctl stop docker + ``` + +5. Run the following command to shut down the worker node. + + ``` + sudo shutdown now + ``` + +6. Perform the same operations on other worker nodes (if any) to shut them down. + +### Shut down control planes + +1. Connect to a control plane through SSH. + +2. Run the following commands to stop pod scheduling and drain existing pods on the node. + + ``` + kubectl cordon + kubectl drain --ignore-daemonsets --delete-emptydir-data + ``` + +3. Run the following command to stop kubelet. + + ``` + sudo systemctl stop kubelet + ``` + +4. Run the following command to stop Docker. + + ``` + sudo systemctl stop docker + ``` + +5. (Optional) If your etcd is deployed on the control plane, you need to run the following command to stop etcd service. If your etcd runs in the form of pod in your Kubernetes cluster, you can skip this step. + + ``` + sudo systemctl stop etcd + ``` + +6. Run the following command to shut down the control plane. + + ``` + sudo shutdown now + ``` + +7. Perform the same operations on other control planes (if any) to shut them down. + +### (Optional) Shut down ectd nodes + +For a Kubernetes cluster deployed by kubeadm, etcd runs as a pod in the cluster and you can skip this step. If you set up your Kubernetes cluster through other methods, you may need to perform the following steps. + +1. Connect to an etcd node through SSH. + +2. Run the following command to stop kubelet. + + ``` + sudo systemctl stop kubelet + ``` + +3. Run the following command to stop etcd. + + ``` + sudo systemctl stop etcd + ``` + +4. Run the following command to stop Docker. + + ``` + sudo systemctl stop docker + ``` + +5. Run the following command to shut down the ectd node. + + ``` + sudo shutdown now + ``` + +6. Perform the same operations on other etcd nodes (if any) to shut them down. + +### Shut down storage + +When all the worker nodes and control planes are shut down, you can shut down any persistent storage devices (if any). + +### Restart the Kubernetes cluster + +1. Power on any persistent storage devices (if any). +2. Power on the instances for ectd nodes. You can log in to the etcd nodes and run the command `docker ps` to ensure that ectd is up and running. +3. Power on the instances for control planes. You can log in to the control planes and run the command `docker ps` to ensure that kube-apiserver, kube-controller-manager, and kube-scheduler are up and running. +4. Power on the instances for worker nodes. You can log in to the worker nodes and run the command `docker ps` to ensure that kubelet and kube-proxy are up and running. + +## Conclusion + +This article hopes to give you a practical idea about how to restart a Kubernetes cluster. Nevertheless, restarting Kubernetes clusters requires caution because we might come across downtime during the restarting process, especially when we run single replicas of our application. In this connection, we should always pay attention to issues necessary to be taken into consideration before restarting any Kubernetes clusters. \ No newline at end of file diff --git a/static/images/blogs/en/restart-k8s-cluster/restart-k8s.png b/static/images/blogs/en/restart-k8s-cluster/restart-k8s.png new file mode 100644 index 0000000000000000000000000000000000000000..fefd66bc2304d2416d369f19f0fd2d23687627d5 GIT binary patch literal 37373 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 P2d>Mu&KIc{{1g8NpIK4c literal 0 HcmV?d00001