<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

Kubernetes集群的關閉與重啟

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

前言

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

日常節點運維方式

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

首先,確定想要移出的節點的名稱??梢杂靡韵旅盍谐黾褐械乃泄濣c:

$kubectlgetnodes

接下來,告訴 Kubernetes 需要移出的節點:

$kubectldrain

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

kubectluncordon

然后告訴 Kubernetes,它可以繼續在此節點上調度新的 Pods。

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

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

主機之間已經設置 SSH 免密登錄

集群內應用的備份

集群內客戶自定義資源的備份

集群內 Etcd 的備份

關閉 Kubernetes 集群

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

首先,我們要獲取節點列表

k8snodes=$(kubectlgetnodes-oname)

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

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

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

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

Kubernetes 集群重啟

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

$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 集群重啟維護避坑指南

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

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

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

網絡錯誤,這就需要檢查所有集群依賴項的狀態,一定用好監控工具,一步一步的查,別怕麻煩,要確保所有集群依賴項均已就緒。

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

審核編輯:湯梓紅

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

    關注

    0

    文章

    79

    瀏覽量

    17106
  • kubernetes
    +關注

    關注

    0

    文章

    219

    瀏覽量

    8581

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

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

收藏 人收藏

    評論

    相關推薦

    Kubernetes的Device Plugin設計解讀

    移除。取而代之的是通過Extended Resource+Device Plugin兩個Kubernetes的內置模塊,外加由設備提供商實現的相應Device Plugin, 完成從設備的集群級別調度
    發表于 03-12 16:23

    阿里云上Kubernetes集群聯邦

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

    Kubernetes Ingress 高可靠部署最佳實踐

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

    kubernetes集群配置

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

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

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

    kubernetes v112二進制方式集群部署

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

    請問鴻蒙系統上可以部署kubernetes集群嗎?

    鴻蒙系統上可以部署kubernetes集群
    發表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

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

    淺談Kubernetes集群的高可用方案

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

    Kubernetes集群發生網絡異常時如何排查

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

    Kubernetes 集群的功能

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

    Kubernetes集群內服務通信機制介紹

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

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

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

    Kubernetes集群部署

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

    Kubernetes集群中如何選擇工作節點

    簡要概述: 本文討論了在Kubernetes集群中選擇較少數量的較大節點和選擇較多數量的較小節點之間的利弊。
    的頭像 發表于 08-28 15:46 ?361次閱讀
    <b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>中如何選擇工作節點
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>