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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

Kubernetes集群的關(guān)閉與重啟

馬哥Linux運(yùn)維 ? 來(lái)源:data2clouds.com ? 作者:data2clouds.com ? 2022-11-07 09:50 ? 次閱讀

前言

在日常對(duì) Kubernetes 集群運(yùn)行維護(hù)的過(guò)程中,您可能需要臨時(shí)的關(guān)閉或者是重啟 Kubernetes 集群對(duì)集群進(jìn)行維護(hù),本文將介紹如何去安全的關(guān)閉 K8s 集群以及如何重新啟動(dòng)集群。

日常節(jié)點(diǎn)運(yùn)維方式

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

首先,確定想要移出的節(jié)點(diǎn)的名稱??梢杂靡韵旅盍谐黾褐械乃泄?jié)點(diǎn):

$kubectlgetnodes

接下來(lái),告訴 Kubernetes 需要移出的節(jié)點(diǎn):

$kubectldrain

一旦它返回(沒(méi)有報(bào)錯(cuò)), 你就可以下線此節(jié)點(diǎn)(或者等價(jià)地在云平臺(tái)上,刪除支持該節(jié)點(diǎn)的虛擬機(jī))。如果要在維護(hù)操作期間將節(jié)點(diǎn)留在集群中,則需要運(yùn)行:

kubectluncordon

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

在進(jìn)行集群關(guān)閉前的準(zhǔn)備工作

備份是最最重要的準(zhǔn)備工作,保障應(yīng)用可以重新正常服務(wù)為目的各種操作都是必須的。做一個(gè)你自己的計(jì)劃清單,在重要的步驟之前確認(rèn)好。

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

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

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

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

關(guān)閉 Kubernetes 集群

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

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

k8snodes=$(kubectlgetnodes-oname)

然后,我們就要關(guān)閉節(jié)點(diǎn)了,您可以可一臺(tái)一臺(tái)的關(guān)閉?;蜻\(yùn)行以下腳本關(guān)閉節(jié)點(diǎn):

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

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

此時(shí),您就可以關(guān)閉其他的集群依賴項(xiàng),對(duì)集群進(jìn)行維護(hù)操作啦。

Kubernetes 集群重啟

在重啟后,我們需要仔細(xì)檢查所有節(jié)點(diǎn)和核心組件的狀態(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 集群重啟維護(hù)避坑指南

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

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

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

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

應(yīng)用的問(wèn)題,節(jié)點(diǎn)是啟動(dòng)了,K8s 也好好的,應(yīng)用不能對(duì)外提供服務(wù),這時(shí)一系列的排錯(cuò)是最考驗(yàn)人的,所以備份恢復(fù)吧。這樣可以確保 RTO。

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    86

    瀏覽量

    17177
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    224

    瀏覽量

    8715

原文標(biāo)題:Kubernetes 集群的關(guān)閉與重啟

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    Kubernetes Ingress 高可靠部署最佳實(shí)踐

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

    kubernetes集群配置

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

    Kubernetes 從懵圈到熟練:集群服務(wù)的三個(gè)要點(diǎn)和一種實(shí)現(xiàn)

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

    kubernetes v112二進(jìn)制方式集群部署

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

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

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

    如何部署基于Mesos的Kubernetes集群

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

    淺談Kubernetes集群的高可用方案

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

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

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

    Kubernetes 集群的功能

    Telepresence 是一個(gè)開(kāi)源工具,可讓您在本地運(yùn)行單個(gè)服務(wù),同時(shí)將該服務(wù)連接到遠(yuǎn)程 Kubernetes 集群。
    的頭像 發(fā)表于 09-05 10:58 ?1095次閱讀

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

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

    在樹(shù)莓派上搭建Kubernetes智能邊緣集群

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

    Kubernetes集群部署

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

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

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

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購(gòu))開(kāi)源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?359次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>