RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Kubernetes集群的關閉與重啟

馬哥Linux運維 ? 來源:data2clouds.com ? 作者:data2clouds.com ? 2022-11-07 09:50 ? 次閱讀

前言

在日常對 Kubernetes 集群運行維護的過程中,您可能需要臨時的關閉或者是重啟 Kubernetes 集群對集群進行維護,本文將介紹如何去安全的關閉 K8s 集群以及如何重新啟動集群。

日常節(jié)點運維方式

關閉 K8s 集群是個危險的操作!在關閉集群之前,您必須完全了解這個操作所帶來的后果。首先,我們要對集群內(nèi)的應用、客戶定義資源 CRD 和 Etcd 進行備份,然后再進行重啟或關閉集群的操作。在通常運維的情況下,建議您驅(qū)逐維護節(jié)點,而非重啟整個集群。在這里,我們也把驅(qū)逐維護節(jié)點命令放在下面供您參考。

首先,確定想要移出的節(jié)點的名稱。可以用以下命令列出集群中的所有節(jié)點:

$kubectlgetnodes

接下來,告訴 Kubernetes 需要移出的節(jié)點:

$kubectldrain

一旦它返回(沒有報錯), 你就可以下線此節(jié)點(或者等價地在云平臺上,刪除支持該節(jié)點的虛擬機)。如果要在維護操作期間將節(jié)點留在集群中,則需要運行:

kubectluncordon

然后告訴 Kubernetes,它可以繼續(xù)在此節(jié)點上調(diào)度新的 Pods。

在進行集群關閉前的準備工作

備份是最最重要的準備工作,保障應用可以重新正常服務為目的各種操作都是必須的。做一個你自己的計劃清單,在重要的步驟之前確認好。

主機之間已經(jīng)設置 SSH 免密登錄

集群內(nèi)應用的備份

集群內(nèi)客戶自定義資源的備份

集群內(nèi) Etcd 的備份

關閉 Kubernetes 集群

再次提示在關閉集群前,請您務按照我們推薦的方法備份集群的數(shù)據(jù)與應用,以便在重新啟動集群時如果遇到任何問題,可以通過備份還原集群與應用。使用本教程中的方法可以平穩(wěn)關閉集群,但數(shù)據(jù)損壞的可能性仍然存在。

首先,我們要獲取節(jié)點列表

k8snodes=$(kubectlgetnodes-oname)

然后,我們就要關閉節(jié)點了,您可以可一臺一臺的關閉?;蜻\行以下腳本關閉節(jié)點:

fornodein${k8snodes[@]}
do
echo"====Shutdown$node===="
ssh$nodesudoshutdown-h1
done

注意: 前提條件是主機之間已經(jīng)設置 SSH 免密登錄。

此時,您就可以關閉其他的集群依賴項,對集群進行維護操作啦。

Kubernetes 集群重啟

在重啟后,我們需要仔細檢查所有節(jié)點和核心組件的狀態(tài),并確保一切就緒。

$kubectlgetnodes-owide
NAMESTATUSROLESAGEVERSIONINTERNAL-IPEXTERNAL-IPOS-IMAGEKERNEL-VERSIONCONTAINER-RUNTIME
mars-k8s1Readycontrol-plane,master17dv1.21.0172.16.60.60Ubuntu20.04.1LTS5.11.0-40-genericdocker://20.10.10
mars-k8s2Ready17dv1.21.0172.16.60.61Ubuntu20.04.1LTS5.11.0-40-genericdocker://20.10.10
mars-k8s3Ready17dv1.21.0172.16.60.62Ubuntu20.04.1LTS5.11.0-40-genericdocker://20.10.10

$kubectlgetsvc-nkube-system
NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
kube-dnsClusterIP10.96.0.1053/UDP,53/TCP,9153/TCP17d
metrics-serverClusterIP10.111.227.248443/TCP17d

$kubectlgetpod-nkube-system
NAMEREADYSTATUSRESTARTSAGE
coredns-558bd4d5db-h7jqc1/1Running217d
coredns-558bd4d5db-wj4bn1/1Running217d
etcd-mars-k8s11/1Running217d
kube-apiserver-mars-k8s11/1Running317d
kube-controller-manager-mars-k8s11/1Running217d
kube-flannel-ds-677dg1/1Running217d
kube-flannel-ds-bxhx61/1Running317d
kube-flannel-ds-r5pqf1/1Running217d
kube-proxy-6w52h1/1Running217d
kube-proxy-p8zfp1/1Running217d
kube-proxy-v8t7j1/1Running217d
kube-scheduler-mars-k8s11/1Running217d
metrics-server-5f9459b95c-dtzbf1/1Running217d

Kubernetes 集群重啟維護避坑指南

說點兒心里話,運維有時要看運氣,這不是開玩笑,在我的職業(yè)生涯中看到了也學到了很多,在過去我有幸支持了多個國家的數(shù)據(jù)災備業(yè)務。包括:韓國,日本,中港臺,及東南亞各個 Region 的客戶公司,在運維做 IT 架構(gòu)變更的時候,買燒豬祭奠關二爺有時真的需要,我們不了解的事情還有很多,要保持敬畏。所以備份吧,多備份幾次?。。?/p>

在我們這個時代人定勝天的神跡比比皆是。但是所謂割接,割下來,接不上的情況也屢見不鮮。通常情況下,重新啟動 Kubernetes 集群后就可以繼續(xù)正常使用,但是由于意外情況,該集群可能不可用。例如:

關閉集群過程中 Etcd 數(shù)據(jù)損壞或是節(jié)點故障,這在 Bare Metal K8s Node 上很常見。

網(wǎng)絡錯誤,這就需要檢查所有集群依賴項的狀態(tài),一定用好監(jiān)控工具,一步一步的查,別怕麻煩,要確保所有集群依賴項均已就緒。

應用的問題,節(jié)點是啟動了,K8s 也好好的,應用不能對外提供服務,這時一系列的排錯是最考驗人的,所以備份恢復吧。這樣可以確保 RTO。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 集群
    +關注

    關注

    0

    文章

    86

    瀏覽量

    17173
  • kubernetes
    +關注

    關注

    0

    文章

    224

    瀏覽量

    8709

原文標題:Kubernetes 集群的關閉與重啟

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    阿里云上Kubernetes集群聯(lián)邦

    摘要: kubernetes集群讓您能夠方便的部署管理運維容器化的應用。但是實際情況中經(jīng)常遇到的一些問題,就是單個集群通常無法跨單個云廠商的多個Region,更不用說支持跨跨域不同的云廠商。這樣會給
    發(fā)表于 03-12 17:10

    Kubernetes Ingress 高可靠部署最佳實踐

    摘要: 在Kubernetes集群中,Ingress作為集群流量接入層,Ingress的高可靠性顯得尤為重要,今天我們主要探討如何部署一套高性能高可靠的Ingress接入層。簡介
    發(fā)表于 04-17 14:35

    kubernetes集群配置

    基于v1104版本手動搭建高可用kubernetes 集群
    發(fā)表于 08-19 08:07

    Kubernetes 從懵圈到熟練:集群服務的三個要點和一種實現(xiàn)

    以我的經(jīng)驗來講,理解 Kubernetes 集群服務的概念,是比較不容易的一件事情。尤其是當我們基于似是而非的理解,去排查服務相關問題的時候,會非常不順利。這體現(xiàn)在,對于新手來說,ping 不通服務
    發(fā)表于 09-24 15:35

    kubernetes v112二進制方式集群部署

    kubernetes v112 二進制方式集群部署
    發(fā)表于 05-05 16:30

    請問鴻蒙系統(tǒng)上可以部署kubernetes集群嗎?

    鴻蒙系統(tǒng)上可以部署kubernetes集群
    發(fā)表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

    的內(nèi)核。把Kubernetes運行在Mesos集群之上,可以和其他的框架共享集群資源,提高集群資源的利用率。 本文是Kubernetes和M
    發(fā)表于 10-09 18:04 ?0次下載
    如何部署基于Mesos的<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>

    淺談Kubernetes集群的高可用方案

    Kubernetes作為容器應用的管理中心,通過對Pod的數(shù)量進行監(jiān)控,并且根據(jù)主機或容器失效的狀態(tài)將新的Pod調(diào)度到其他Node上,實現(xiàn)了應用層的高可用性。針對Kubernetes集群,高可用性
    發(fā)表于 10-11 10:04 ?1次下載
    淺談<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>的高可用方案

    Kubernetes集群發(fā)生網(wǎng)絡異常時如何排查

    本文將引入一個思路:“在 Kubernetes 集群發(fā)生網(wǎng)絡異常時如何排查”。文章將引入 Kubernetes 集群中網(wǎng)絡排查的思路,包含網(wǎng)絡異常模型,常用工具,并且提出一些案例以供學
    的頭像 發(fā)表于 09-02 09:45 ?4781次閱讀

    Kubernetes 集群的功能

    Telepresence 是一個開源工具,可讓您在本地運行單個服務,同時將該服務連接到遠程 Kubernetes 集群。
    的頭像 發(fā)表于 09-05 10:58 ?1084次閱讀

    Kubernetes集群內(nèi)服務通信機制介紹

    現(xiàn)在在 Kubernetes 集群中,我們擁有構(gòu)成集群管理組件和一組工作機器(稱為節(jié)點)的控制平面。這些節(jié)點托管 Pod,這些 Pod 將后端微服務作為容器化服務運行。
    發(fā)表于 10-04 10:13 ?548次閱讀

    在樹莓派上搭建Kubernetes智能邊緣集群

    電子發(fā)燒友網(wǎng)站提供《在樹莓派上搭建Kubernetes智能邊緣集群.zip》資料免費下載
    發(fā)表于 12-09 09:20 ?2次下載
    在樹莓派上搭建<b class='flag-5'>Kubernetes</b>智能邊緣<b class='flag-5'>集群</b>

    Kubernetes集群部署

    Kubeadm是一種Kubernetes集群部署工具,通過kubeadm init命令創(chuàng)建master節(jié)點,通過 kubeadm join命令把node節(jié)點加入到集群
    的頭像 發(fā)表于 02-15 10:35 ?1721次閱讀

    Kubernetes集群中如何選擇工作節(jié)點

    簡要概述: 本文討論了在Kubernetes集群中選擇較少數(shù)量的較大節(jié)點和選擇較多數(shù)量的較小節(jié)點之間的利弊。
    的頭像 發(fā)表于 08-28 15:46 ?620次閱讀
    <b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>中如何選擇工作節(jié)點

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團隊(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?348次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>
    RM新时代网站-首页