色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

Containerd的Bug導(dǎo)致容器被重建!如何避免?

openEuler ? 來(lái)源:openEuler ? 2023-02-10 13:55 ? 次閱讀

最近我們關(guān)注到一個(gè)關(guān)于containerd 運(yùn)行時(shí)的issue

https://github.com/containerd/containerd/issues/7843),該問(wèn)題在 containerd v1.6.9/v1.5.15 被引入。出現(xiàn)的問(wèn)題是,當(dāng) containerd 重啟后,在其中運(yùn)行的 Pod 元數(shù)據(jù)中關(guān)于網(wǎng)絡(luò)相關(guān)的數(shù)據(jù)(如 pod ip)丟失,核心原因在于部分?jǐn)?shù)據(jù)沒(méi)有落盤(pán)。

受影響的版本:

  • v1.6.9 ~ v1.6.14,問(wèn)題在 v1.6.15 版本中被修復(fù)。

  • v1.5.15 ~ v1.5.16,問(wèn)題在 v1.5.17 版本中被修復(fù)。

通過(guò)以下步驟,可以快速重現(xiàn)該問(wèn)題,并驗(yàn)證該問(wèn)題的修復(fù)情況。

本文使用 rke2 為例進(jìn)行演示,版本為 rke2 v1.24.9+rke2r1,該版本使用了 k3s-containerd v1.6.12-k3s1,受該 containerd 問(wèn)題影響。

在 containerd 的默認(rèn)行為中,重啟 containerd 服務(wù)不會(huì)影響正在運(yùn)行的業(yè)務(wù)容器,并在啟動(dòng)容器時(shí),通過(guò)將容器父進(jìn)程綁定 Pid 1 的方式進(jìn)行體現(xiàn)。即使使用 systemctl 對(duì)服務(wù)進(jìn)行重啟,也不會(huì)影響到已經(jīng)在運(yùn)行的容器狀態(tài)。

——問(wèn)題重現(xiàn)——
#配置rke2使用國(guó)內(nèi)鏡像倉(cāng)庫(kù)下載鏡像
mkdir-p/etc/rancher/rke2
echo"system-default-registry:registry.cn-hangzhou.aliyuncs.com">/etc/rancher/rke2/config.yaml
#使用命令安裝rke2,以下命令使用了我們?cè)趪?guó)內(nèi)維護(hù)的rke2安裝鏡像腳本,會(huì)從aliyunOSS下載RKE2資源
curl-sfLhttps://rancher-mirror.oss-cn-beijing.aliyuncs.com/rke2/install.sh|INSTALL_RKE2_MIRROR=cnINSTALL_RKE2_VERSION=v1.24.9+rke2r1sh-
#[INFO]usingv1.24.9-rke2r1asrelease
#[INFO]downloadingchecksumsathttps://rancher-mirror.rancher.cn/rke2/releases/download/v1.24.9-rke2r1/sha256sum-amd64.txt
#[INFO]downloadingtarballathttps://rancher-mirror.rancher.cn/rke2/releases/download/v1.24.9-rke2r1/rke2.linux-amd64.tar.gz
#[INFO]verifyingtarball
#[INFO]unpackingtarballfileto/usr/local

#啟動(dòng)rke2服務(wù),并等待服務(wù)啟動(dòng)成功
systemctlstartrke2-server

#配置rke2相關(guān)的PATH路徑以及kube-config路徑
exportKUBECONFIG=/etc/rancher/rke2/rke2.yaml
exportPATH=/var/lib/rancher/rke2/bin:$PATH

#使用kubectl查詢(xún)當(dāng)前集群狀態(tài)
kubectlgetpo-A|greprke2-metrics-server-5b987d776b-gqxv9

#kube-systemrke2-metrics-server-5b987d776b-gqxv91/1Running015m

至此,rke2 單節(jié)點(diǎn)服務(wù)啟動(dòng)完成,但我們的目標(biāo)是 containerd,接下來(lái)繼續(xù)操作:

#配置containerd相關(guān)環(huán)境變量
exportCRI_CONFIG_FILE=/var/lib/rancher/rke2/agent/etc/containerd/config.tomlCONTAINER_RUNTIME_ENDPOINT=unix:///var/run/k3s/containerd/containerd.sock
#使用crictl查詢(xún)pods以及container信息
crictlpods|greprke2-metrics-server

#bfad44591742318minutesagoReadyrke2-metrics-server-5b987d776b-gqxv9kube-system0(default)

crictlps|greprke2-metrics-server

#db5d6392a310ef6dc23a68f5fb18minutesagoRunningmetrics-server0bfad445917423rke2-metrics-server-5b987d776b-gqxv9

我們以 metrics-server 的 pod 為例,查詢(xún) pod 詳情中的網(wǎng)絡(luò)部分內(nèi)容,并對(duì) containerd 進(jìn)行重啟,對(duì)問(wèn)題進(jìn)行重現(xiàn):

#查詢(xún)metrics-serverpod的詳情
crictlinspectpbfad445917423|jq.status.network

#{
#"additionalIps":[],
#"ip":"10.42.0.6"
#}

#停止rke2-server服務(wù)并單獨(dú)啟動(dòng)containerd,避免kubelet影響重現(xiàn)結(jié)果
systemctlstoprke2-server
#單獨(dú)啟動(dòng)containerd
containerd-c/var/lib/rancher/rke2/agent/etc/containerd/config.toml-a/run/k3s/containerd/containerd.sock--state/run/k3s/containerd--root/var/lib/rancher/rke2/agent/containerd

通過(guò)新的 terminal,使用 crictl 查詢(xún) containerd 運(yùn)行狀態(tài)

crictlpods|greprke2-metrics-server

#bfad44591742324minutesagoReadyrke2-metrics-server-5b987d776b-gqxv9kube-system0(default)

#再次查詢(xún)metrics-serverpod詳情
crictlinspectpbfad445917423|jq.status.network

#{
#"additionalIps":[],
#"ip":""
#}

從最后的返回結(jié)果可以看出,containerd 重啟后容器的 IP 丟失。

——問(wèn)題影響——

通過(guò)在上述例子中重啟 rke2-server 可以看到,由于 ip 信息丟失,導(dǎo)致了業(yè)務(wù)容器被重建,帶來(lái)了業(yè)務(wù)中斷的風(fēng)險(xiǎn)。

#在中斷containerd進(jìn)程后,重啟rke2-server進(jìn)程(以下數(shù)據(jù)為重新驗(yàn)證后的數(shù)據(jù))
systemctlrestartrke2-server
kubectlgetpo-A|greprke2-metrics-server-5b987d776b-8vg69

#kube-systemrke2-metrics-server-5b987d776b-8vg691/1Running2(115sago)23m

crictlpods|greprke2-metrics-server

#caba6d8d1582341secondsagoReadyrke2-metrics-server-5b987d776b-8vg69kube-system1(default)
#2dec6a11fd36f22minutesagoNotReadyrke2-metrics-server-5b987d776b-8vg69kube-system0(default)

可以看到,在 rke2-server 重啟后,使用了 cni 的 pod 發(fā)生了重啟,在 crictl pods 返回中可以看到重新創(chuàng)建的 pods。

——問(wèn)題修復(fù)驗(yàn)證——

下載新版本 containerd,這次驗(yàn)證使用 k3s-containerd v1.6.14+k3s1。該版本為 Rancher 在 containerd v1.6.15 發(fā)布前緊急發(fā)布的修復(fù)補(bǔ)丁版本。

#拉取新鏡像
dockerpullrancher/hardened-containerd:v1.6.14-k3s1-build20230105
mkdircontainer-new
cdcontainer-new
#從鏡像中獲取新版本containerd
dockerrun--rm-it-v${PWD}:/outputrancher/hardened-containerd:v1.6.14-k3s1-build20230105cp-r/usr/local/bin/output
./output/bin/containerd--version
#containerdgithub.com/k3s-io/containerdv1.6.14-k3s16f9c63d571f5026e85a0768f0f2ef03d1c8dbc6e

#關(guān)閉當(dāng)前運(yùn)行的容器
pkill-f/var/lib/rancher/rke2/data/v1.24.9-rke2r1-d4d8faf800d0/bin/containerd-shim-runc-v2
#替換containerdbinary版本
cp./bin/*/var/lib/rancher/rke2/bin
/var/lib/rancher/rke2/bin/containerd--version
#containerdgithub.com/k3s-io/containerdv1.6.14-k3s16f9c63d571f5026e85a0768f0f2ef03d1c8dbc6e

#啟動(dòng)rke2
systemctlstartrke2-server
#此時(shí)使用crictl查詢(xún)新的metrics-serverpod
crictlpods|grep"Ready"|grepmetrics-server
#ad8b101f819df3minutesagoReadyrke2-metrics-server-5b987d776b-gqxv9kube-system1(default)

#停止rke2并使用命令行啟動(dòng)containerd
systemctlstoprke2-server
containerd-c/var/lib/rancher/rke2/agent/etc/containerd/config.toml-a/run/k3s/containerd/containerd.sock--state/run/k3s/containerd--root/var/lib/rancher/rke2/agent/containerd

通過(guò)新的 terminal,使用 crictl 查詢(xún) containerd 運(yùn)行狀態(tài)

crictlinspectpad8b101f819df|jq.status.network
#{
#"additionalIps":[],
#"ip":"10.42.0.13"
#}

可以看到 containerd 重啟后,pod ip 沒(méi)有丟失。

—— RKE2 與 RFO——

RKE2 以下版本受該 issue 影響:

  • v1.23.15+rke2r1

  • v1.24.9+rke2r1

  • v1.25.5+rke2r1

  • v1.26.0+rke2r1

該 issue 在 2022 年 12 月 20 日被提交,RKE2 團(tuán)隊(duì)在 2023 年 1 月 6 日緊急合并了 containerd 中修復(fù)該 issue 的 commit,發(fā)布了 k3s-containerd v1.6.14+k3s1 版本,并發(fā)布了新的 rke2 rc 版本進(jìn)行測(cè)試驗(yàn)證。

最終在 1 月 11 日,RKE2 團(tuán)隊(duì)發(fā)布以下已經(jīng)修復(fù) containerd 問(wèn)題的版本:

  • v1.23.16+rke2r1

  • v1.24.9+rke2r2

  • v1.25.5+rke2r2

  • v1.26.0+rke2r2

RFO 是 Rancher For openEuler 的縮寫(xiě),顧名思義,目的在于面向 openEuler 打造 Rancher 基礎(chǔ)平臺(tái)。

由于 RFO 版本發(fā)布周期在 RKE2 之后,RFO 并沒(méi)有受到該 issue 影響,并在近期發(fā)布了以下版本:

  • v1.23.16+rfor1

  • v1.24.9+rfor1

  • v1.24.10+rfor1

  • v1.25.5+rfor1

  • v1.25.6+rfor1

  • v1.26.0+rfor1

  • v1.26.1+rfor1

—— 寫(xiě)在最后 ——

由于操作系統(tǒng)的軟件包發(fā)布存在一定的時(shí)間延后性,在大部分情況下都無(wú)法及時(shí)修復(fù)軟件出現(xiàn)的問(wèn)題。像 CVE、功能缺陷等問(wèn)題都比較緊急,等待操作系統(tǒng)供應(yīng)商提供修復(fù)版本將是一個(gè)漫長(zhǎng)的過(guò)程,甚至有時(shí)候由于一些限制,操作系統(tǒng)提供商無(wú)法提供新版本的軟件包,這會(huì)給系統(tǒng)運(yùn)行帶來(lái)不確定因素。

在這種情況下,將軟件自身依賴(lài)的組件打包到自己的 rootfs 中進(jìn)行分發(fā),能更好地對(duì)其進(jìn)行管理和升級(jí),避免給系統(tǒng)運(yùn)行帶來(lái)風(fēng)險(xiǎn)以及潛在的損失。


審核編輯 :李倩


聲明:本文內(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)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6801

    瀏覽量

    123285
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    495

    瀏覽量

    22060
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    15665

原文標(biāo)題:Containerd 的 Bug 導(dǎo)致容器被重建!如何避免?

文章出處:【微信號(hào):openEulercommunity,微信公眾號(hào):openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何避免容器充電會(huì)時(shí)導(dǎo)致的涌入電流

    在大多數(shù)系統(tǒng)中,為了確保電源軌電壓不會(huì)出現(xiàn)壓降,電容器遍布于整個(gè)設(shè)計(jì)中。當(dāng)電源剛剛被施加到系統(tǒng)中時(shí),為這些電容器充電會(huì)導(dǎo)致一個(gè)涌入電流,如果不加以處理的話(huà),這個(gè)電流會(huì)造成數(shù)個(gè)系統(tǒng)問(wèn)題。 圖1顯示
    的頭像 發(fā)表于 05-31 09:39 ?1.2w次閱讀
    如何<b class='flag-5'>避免</b>電<b class='flag-5'>容器</b>充電會(huì)時(shí)<b class='flag-5'>導(dǎo)致</b>的涌入電流

    Containerd常見(jiàn)命令操作

    作為接替 Docker 運(yùn)行時(shí)的 Containerd 在早在 Kubernetes1.7 時(shí)就能直接與 Kubelet 集成使用,只是大部分時(shí)候我們因熟悉 Docker,在部署集群時(shí)采用了默認(rèn)
    的頭像 發(fā)表于 08-30 10:08 ?4977次閱讀

    容器擊穿的multism模型如何設(shè)計(jì)

    本帖最后由 yangk1990 于 2013-3-8 17:11 編輯 本人初學(xué),需要設(shè)計(jì)一個(gè)示波器觀測(cè)電容器擊穿的波形(或者可變電容逐漸減小到變成導(dǎo)體也行),但電容器的擊穿著實(shí)不會(huì)...希望大神們能夠指點(diǎn)一下!
    發(fā)表于 03-07 20:38

    由于InnoDB MVCC導(dǎo)致的并發(fā)BUG介紹

    [原]記錄一個(gè)由于InnoDB MVCC導(dǎo)致的并發(fā)BUG
    發(fā)表于 07-17 09:46

    8 分鐘入門(mén) K8s | 詳解容器基本概念

    提供一個(gè)靈活的插件化管理。而 shim 就是針對(duì)于不同的容器運(yùn)行時(shí)所開(kāi)發(fā)的,這樣就能夠從 containerd 中脫離出來(lái),通過(guò)插件的形式進(jìn)行管理。其次,因?yàn)?shim 插件化的實(shí)現(xiàn),使其能夠
    發(fā)表于 09-17 15:29

    蘋(píng)果IOS10.3.1正式版緊急發(fā)布,修復(fù)BUG

    在3月28日發(fā)布的10.3正式版中被發(fā)現(xiàn)存在一個(gè)BUG。這一BUG的存在可能導(dǎo)致此前已經(jīng)關(guān)閉的iCloud服務(wù)自動(dòng)開(kāi)啟。蘋(píng)果方面并沒(méi)有解
    發(fā)表于 04-05 15:03 ?1856次閱讀

    IOS 10.3.1正式版緊急發(fā)布,修復(fù)BUG

    在3月28日發(fā)布的10.3正式版中被發(fā)現(xiàn)存在一個(gè)BUG。這一BUG的存在可能導(dǎo)致此前已經(jīng)關(guān)閉的iCloud服務(wù)自動(dòng)開(kāi)啟。蘋(píng)果方面并沒(méi)有解
    發(fā)表于 04-05 16:13 ?791次閱讀
    IOS 10.3.1正式版緊急發(fā)布,修復(fù)<b class='flag-5'>BUG</b>

    重磅!阿里巴巴工程師獲得 containerd 社區(qū)席位,與社區(qū)共建云時(shí)代容器標(biāo)準(zhǔn)

    重磅!阿里巴巴工程師獲得 containerd 社區(qū)席位,與社區(qū)共建云時(shí)代容器標(biāo)準(zhǔn)11 月 29 日,CNCF containerd 社區(qū)正式宣布:兩位阿里巴巴工程師正式獲得 containe
    發(fā)表于 12-11 17:25 ?333次閱讀

    MDK-ARM V5.28的Bug修復(fù)了嗎 ?

    MDK-ARM V5.28的Bug修復(fù)了嗎?
    的頭像 發(fā)表于 03-01 12:01 ?2208次閱讀

    微軟又證實(shí)一新Bug Windows 10或導(dǎo)致無(wú)法訪(fǎng)問(wèn)互聯(lián)網(wǎng)

    據(jù)外媒報(bào)道稱(chēng),微軟證實(shí)了一個(gè)新的Bug,那就是Windows 10存在一個(gè)可能導(dǎo)致無(wú)法訪(fǎng)問(wèn)互聯(lián)網(wǎng)的問(wèn)題。
    的頭像 發(fā)表于 03-28 11:20 ?2262次閱讀

    微軟Win10兩個(gè)新Bug曝光:可以濫用于各種攻擊

    ,一位 Windows 安全研究人員在 Twitter 上披露了兩個(gè) Bug,可以濫用于各種攻擊。 第一個(gè) Bug 允許無(wú)權(quán)限的用戶(hù)或程序輸入一條命令,導(dǎo)致 NTFS 硬盤(pán)
    的頭像 發(fā)表于 01-19 17:00 ?1373次閱讀

    Containerd控制runC的守護(hù)進(jìn)程

    ./oschina_soft/containerd.zip
    發(fā)表于 05-11 10:05 ?0次下載
    <b class='flag-5'>Containerd</b>控制runC的守護(hù)進(jìn)程

    Containerd基礎(chǔ)用法

    從 Docker 1.11 版本開(kāi)始,Docker 容器運(yùn)行就不是簡(jiǎn)單通過(guò) Docker Daemon 來(lái)啟動(dòng)了,而是通過(guò)集成containerd、runc等多個(gè)組件來(lái)完成的。 雖然Docker
    的頭像 發(fā)表于 04-11 10:50 ?781次閱讀

    一個(gè)冗余電路導(dǎo)致BUG

      昨天解了一個(gè)BUG,一個(gè)低級(jí)錯(cuò)誤導(dǎo)致BUG,一個(gè)冗余電路導(dǎo)致BUG,寫(xiě)寫(xiě)做個(gè)記錄。
    的頭像 發(fā)表于 05-14 15:28 ?889次閱讀
    一個(gè)冗余電路<b class='flag-5'>導(dǎo)致</b>的<b class='flag-5'>BUG</b>

    服務(wù)器數(shù)據(jù)恢復(fù)-重建MDisk導(dǎo)致VDisk丟失的數(shù)據(jù)恢復(fù)案例

    重建MDisk導(dǎo)致對(duì)應(yīng)的存儲(chǔ)池中的VDisk丟失,導(dǎo)致Solaris操作系統(tǒng)中的Oracle數(shù)據(jù)庫(kù)無(wú)法使用。
    的頭像 發(fā)表于 07-26 15:26 ?316次閱讀
    主站蜘蛛池模板: 先锋影音av资源站av| 久久久久久久国产精品视频| 亚洲免费片| 久久久国产精品免费A片蜜芽广 | 国产国产乱老熟女视频网站97| 午夜电影三级还珠格格| 和I儿媳妇激情| 中文字幕免费视频精品一| 年轻的女教师2017韩国在线看| 成人免费在线视频| 午夜理伦片免费| 久久精品WWW人人爽人人| 999精品影视在线观看| 日韩大胆视频| 国内免费视频成人精品| 瑜伽牲交AV| 青青草 久久久| 国产区精品综合在线| 又紧又大又爽精品一区二区 | 国产性夜夜春夜夜爽1A片| 曰产无码久久久久久精品| 欧美成人国产| 国产成人精品久久一区二区三区| 亚洲精品无码专区在线播放| 美女用手扒开粉嫩的屁股| 儿子操妈妈| 亚洲精品一二三区-久久| 蜜臀AV熟女人妻中文字幕| 二级毛片免费观看全程| 亚洲免费网站在线观看| 暖暖 日本 视频 在线观看免费 | 人妻熟女斩五十路0930| 国产人妻午夜无码AV天堂| 1300部真实小Y女视频合集| aaaaaaa一级毛片| 偷拍亚洲色自拍| 久久午夜免费视频| 国产69精品久久久久无码麻豆| 野花社区WWW韩国日本| 亲女乱h文小兰第一次| 国内偷拍夫妻av|