久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Kubernetes遷移dockershim

2023-12-11 84

Kubernetes 對(duì)與 Docker Engine 直接集成的支持已被棄用且已經(jīng)被刪除。 大多數(shù)應(yīng)用程序不直接依賴于托管容器的運(yùn)行時(shí)。但是,仍然有大量的遙測(cè)和監(jiān)控代理依賴 docker 來(lái)收集容器元數(shù)據(jù)、日志和指標(biāo)。 本文匯總了一些信息和鏈接:信息用于闡述如何探查這些依賴,鏈接用于解釋如何遷移這些代理去使用通用的工具或其他容器運(yùn)行。

一、遙測(cè)和安全代理

在 Kubernetes 集群中,有幾種不同的方式來(lái)運(yùn)行遙測(cè)或安全代理。 一些代理在以 DaemonSet 的形式運(yùn)行或直接在節(jié)點(diǎn)上運(yùn)行時(shí),直接依賴于 Docker Engine。

1、為什么有些遙測(cè)代理會(huì)與 Docker Engine 通信?

從歷史上看,Kubernetes 是專門(mén)為與 Docker Engine 一起工作而編寫(xiě)的。 Kubernetes 負(fù)責(zé)網(wǎng)絡(luò)和調(diào)度,依靠 Docker Engine 在節(jié)點(diǎn)上啟動(dòng)并運(yùn)行容器(在 Pod 內(nèi))。一些與遙測(cè)相關(guān)的信息,例如 pod 名稱, 只能從 Kubernetes 組件中獲得。其他數(shù)據(jù),例如容器指標(biāo),不是容器運(yùn)行時(shí)的責(zé)任。 早期遙測(cè)代理需要查詢?nèi)萜鬟\(yùn)行時(shí)和 Kubernetes 以報(bào)告準(zhǔn)確的信息。 隨著時(shí)間的推移,Kubernetes 獲得了支持多種運(yùn)行時(shí)的能力, 現(xiàn)在支持任何兼容容器運(yùn)行時(shí)接口的運(yùn)行時(shí)。

一些代理和 Docker 工具緊密綁定。比如代理會(huì)用到 docker ps 或 docker top 這類(lèi)命令來(lái)列出容器和進(jìn)程,用 docker logs 訂閱 Docker 的日志。 如果現(xiàn)有集群中的節(jié)點(diǎn)使用 Docker Engine,在切換到其它容器運(yùn)行時(shí)的時(shí)候, 這些命令將不再起作用。

2、識(shí)別依賴于 Docker Engine 的 DaemonSet

如果某 Pod 想調(diào)用運(yùn)行在節(jié)點(diǎn)上的 dockerd,該 Pod 必須滿足以下兩個(gè)條件之一:

  • 將包含 Docker 守護(hù)進(jìn)程特權(quán)套接字的文件系統(tǒng)掛載為一個(gè)卷;
  • 直接以卷的形式掛載 Docker 守護(hù)進(jìn)程特權(quán)套接字的特定路徑。

舉例來(lái)說(shuō):在 COS 鏡像中,Docker 通過(guò) /var/run/docker.sock 開(kāi)放其 Unix 域套接字。 這意味著 Pod 的規(guī)約中需要包含 hostPath 卷以掛載 /var/run/docker.sock。

下面是一個(gè) shell 示例腳本,用于查找包含直接映射 Docker 套接字的掛載點(diǎn)的 Pod。 也可以刪掉 grep ‘/var/run/docker.sock’ 這一代碼片段以查看其它掛載信息。

kubectl get pods --all-namespaces \
-o=jsonpath='{range .items[*]}{"\n"}{.metadata.namespace}{":\t"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.hostPath.path}{", "}{end}{end}' \
| sort \
| grep '/var/run/docker.sock'

對(duì)于 Pod 來(lái)說(shuō),訪問(wèn)宿主機(jī)上的 Docker 還有其他方式。 例如,可以掛載 /var/run 的父目錄而非其完整路徑 (就像這個(gè)例子)。 上述腳本只檢測(cè)最常見(jiàn)的使用方式。

3、檢測(cè)節(jié)點(diǎn)代理對(duì) Docker 的依賴性

在集群節(jié)點(diǎn)被定制、且在各個(gè)節(jié)點(diǎn)上均安裝了額外的安全和遙測(cè)代理的場(chǎng)景下, 一定要和代理的供應(yīng)商確認(rèn):該代理是否依賴于 Docker。

二、從dockershim遷移

1、Aqua

無(wú)需更改:在運(yùn)行時(shí)變更時(shí)可以無(wú)縫切換運(yùn)行。

2、Datadog

如何遷移: Kubernetes 中對(duì)于 Docker 的棄用名字中包含以下字符串的 Pod 可能訪問(wèn) Docker Engine:

  • datadog-agent
  • datadog
  • dd-agent

3、Dynatrace

如何遷移: 在 Dynatrace 上從 Docker-only 遷移到通用容器指標(biāo)

Containerd 支持公告:在基于 containerd 的 Kubernetes 環(huán)境的獲取容器的自動(dòng)化全??梢?jiàn)性 CRI-O 支持公告:在基于 CRI-O 的 Kubernetes 環(huán)境獲取容器的自動(dòng)化全??梢?jiàn)性(測(cè)試版)

名字中包含以下字符串的 Pod 可能訪問(wèn) Docker:

  • dynatrace-oneagent

4、Falco

如何遷移: 遷移 Falco 從 dockershim Falco 支持任何與 CRI 兼容的運(yùn)行時(shí)(默認(rèn)配置中使用 containerd)。

名字中包含以下字符串的 Pod 可能訪問(wèn) Docker:

  • falco

5、Prisma Cloud Compute

在依賴于 CRI(非 Docker)的集群上安裝 Prisma Cloud 。名字中包含以下字符串的 Pod 可能訪問(wèn) Docker:

  • twistlock-defender-ds

6、SignalFx (Splunk)

SignalFx Smart Agent(已棄用)在 Kubernetes 集群上使用了多種不同的監(jiān)視器, 包括 kubernetes-cluster,kubelet-stats/kubelet-metrics,docker-container-stats。 kubelet-stats 監(jiān)視器此前已被供應(yīng)商所棄用,現(xiàn)支持 kubelet-metrics。 docker-container-stats 監(jiān)視器受 dockershim 移除的影響。 不要為 docker-container-stats 監(jiān)視器使用 Docker Engine 之外的運(yùn)行時(shí)。

如何從依賴 dockershim 的代理遷移:

(1)從所配置的監(jiān)視器中移除 docker-container-stats。 注意,若節(jié)點(diǎn)上已經(jīng)安裝了 Docker,在非 dockershim 環(huán)境中啟用此監(jiān)視器后會(huì)導(dǎo)致報(bào)告錯(cuò)誤的指標(biāo); 如果節(jié)點(diǎn)未安裝 Docker,則無(wú)法獲得指標(biāo)。

(2)啟用和配置 kubelet-metrics 監(jiān)視器。

名字中包含以下字符串的 Pod 可能訪問(wèn) Docker:

  • signalfx-agent

注意:收集的指標(biāo)會(huì)發(fā)生變化,具體請(qǐng)查看規(guī)則和儀表盤(pán)。

  • 廣告合作

  • QQ群號(hào):4114653

溫馨提示:
1、本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享網(wǎng)絡(luò)內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。郵箱:2942802716#qq.com(#改為@)。 2、本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)裁,轉(zhuǎn)載請(qǐng)注明出處“站長(zhǎng)百科”和原文地址。