日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Kubernetes標(biāo)簽:包含10項(xiàng)優(yōu)秀實(shí)踐的專(zhuān)家指南

Kubernetes 標(biāo)簽:包含10項(xiàng)優(yōu)秀實(shí)踐的專(zhuān)家指南

作者:科技狠活與軟件技術(shù) 2022-11-30 15:28:55

云計(jì)算 借助 Kubernetes 標(biāo)簽,DevOps 團(tuán)隊(duì)可以更快地解決問(wèn)題、集中應(yīng)用配置更改并快速響應(yīng)問(wèn)題。標(biāo)簽還可以讓您深入了解成本,提高您的監(jiān)控、分配和管理能力。在使用標(biāo)簽時(shí)遵循最佳實(shí)踐可幫助您從基礎(chǔ)架構(gòu)可見(jiàn)性和高效運(yùn)營(yíng)中獲得巨大收益。

成都創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站建設(shè)、行業(yè)門(mén)戶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)制作的專(zhuān)業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁(yè)設(shè)計(jì)人員,具備各種規(guī)模與類(lèi)型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹(shù)立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來(lái)曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上1000+。

借助 Kubernetes 標(biāo)簽,DevOps 團(tuán)隊(duì)可以更快地解決問(wèn)題、集中應(yīng)用配置更改并快速響應(yīng)問(wèn)題。標(biāo)簽還可以讓您深入了解成本,提高您的監(jiān)控、分配和管理能力。在使用標(biāo)簽時(shí)遵循最佳實(shí)踐可幫助您從基礎(chǔ)架構(gòu)可見(jiàn)性和高效運(yùn)營(yíng)中獲得巨大收益。

以下是您需要了解的有關(guān) Kubernetes 標(biāo)簽的所有信息 - 它們是什么、它們?nèi)绾喂ぷ?、何時(shí)使用它們,以及構(gòu)建可靠標(biāo)簽策略應(yīng)遵循的 10 條最佳實(shí)踐。

什么是 Kubernetes 標(biāo)簽?

Kubernetes 標(biāo)簽是將標(biāo)識(shí)元數(shù)據(jù)鏈接到 Kubernetes 對(duì)象的鍵值字符串對(duì)。Kubernetes 為團(tuán)隊(duì)提供了集成支持,可以使用標(biāo)簽從 Kubernetes API 中檢索和過(guò)濾數(shù)據(jù),并對(duì)所選對(duì)象進(jìn)行批量操作。

許多團(tuán)隊(duì)使用 Kubernetes 標(biāo)簽為 DevOps 提供有關(guān)節(jié)點(diǎn)、Pod 或其他 Kubernetes 對(duì)象的所有權(quán)的信息,以便于跟蹤和運(yùn)營(yíng)決策制定。

創(chuàng)建新標(biāo)簽時(shí),您必須遵守 Kubernetes 對(duì)長(zhǎng)度和允許值的限制。標(biāo)簽值必須:

  • 包含 63 個(gè)字符或更少(標(biāo)簽的值也可以為空),
  • 以字母數(shù)字字符開(kāi)頭和結(jié)尾(除非它為空),
  • 僅包含破折號(hào) (-)、下劃線 (_)、點(diǎn) (.) 和字母數(shù)字。

您可以使用 找到 Kubernetes 對(duì)象具有的標(biāo)簽kubectl。例如,要獲取名為 的 pod 的所有標(biāo)簽pod1,您可以運(yùn)行:

> kubectl get pod1 -o json | jq .metadata.labels

要?jiǎng)?chuàng)建標(biāo)簽,您可以在配置文件規(guī)范的metadata.labels對(duì)象中指定它們。讓我們考慮pod.yaml描述單個(gè) pod 的文件:

apiVersion: v1kind: Podmetadata: name: nginx labels: environment: dev 
critical: "true"spec: containers: - image: nginx name: nginx resources:
requests: cpu: 500m

請(qǐng)注意,critical標(biāo)簽的值是“true”而不是true。這是因?yàn)闃?biāo)簽及其值必須是字符串。

讓我們應(yīng)用配置文件:

> kubectl apply -f pod.yamlpod/nginx created

您現(xiàn)在可以使用 直接在已經(jīng)存在的 Kubernetes 對(duì)象上應(yīng)用或覆蓋標(biāo)簽kubectl。首先,獲取 pod 具有的所有標(biāo)簽:

> kubectl get pod nginx -o json | jq .metadata.labels{ "critical": "true", 
"environment": "dev"}

現(xiàn)在,要更改environment標(biāo)簽的值并添加新的鍵值標(biāo)簽對(duì)deprecated=true,我們執(zhí)行以下命令:

> kubectl label pod nginx environment=prod --overwritepod/nginx 
labeled> kubectl label pod nginx deprecated=truepod/nginx labeled

–overwrite請(qǐng)記住,除非您明確地用標(biāo)志覆蓋它,否則不允許更新標(biāo)簽的值。生成的標(biāo)簽如下:

> kubectl get pod nginx -o json | jq .metadata.labels{ "deprecated": 
"true", "critical": "true", "environment": "prod"}

Kubernetes 標(biāo)簽與注解

Kubernetes 提供了兩種將元數(shù)據(jù)與對(duì)象連接起來(lái)的策略:標(biāo)簽和注釋。

注釋是將非標(biāo)識(shí)元數(shù)據(jù)與對(duì)象連接起來(lái)的鍵值對(duì)。例如,注釋可以包含給定資源的日志記錄或監(jiān)視信息。

標(biāo)簽和注解的主要區(qū)別在于注解不用于過(guò)濾、分組或操作 Kubernetes 資源。相反,您可以使用它們來(lái)訪問(wèn)有關(guān)它的其他信息。

例如之前部署的pod已經(jīng)調(diào)度到的節(jié)點(diǎn)注解如下:

> kubectl get node demo-node -o json | jq .metadata.annotations{ 
"kubeadm.alpha.kubernetes.io/cri-socket": "unix:///var/run/cri-dockerd.sock",
"node.alpha.kubernetes.io/ttl": "0",
"volumes.kubernetes.io/controller-managed-attach-detach": "true"}

這些注釋不提供有關(guān)節(jié)點(diǎn)特征的任何信息。相反,他們提供了一些關(guān)于節(jié)點(diǎn)如何工作的數(shù)據(jù)。

什么時(shí)候使用 Kubernetes 標(biāo)簽?

對(duì)象查詢的組資源

如果將相同的標(biāo)簽鍵值對(duì)添加到多個(gè)資源中,其他人可以輕松查詢到所有資源。例如,DevOps 工程師發(fā)現(xiàn)開(kāi)發(fā)環(huán)境不可用。此時(shí),他們可以快速查看包括 label 在內(nèi)的所有 pod 的狀態(tài)environment:dev。

這是一個(gè)示例命令:

> kubectl get pods -l 'environment=dev'NAME READY STATUS RESTARTS AGEnginx 
0/1 CrashLoopBackOff 1 5m

這讓團(tuán)隊(duì)可以立即看到受影響的 pod 并解決問(wèn)題,這比瀏覽所有資源并僅選擇dev環(huán)境中的資源要快得多。

在具有許多不同部署的復(fù)雜情況下,dev如果工程團(tuán)隊(duì)沒(méi)有將environment:dev標(biāo)簽添加到資源中,那么找到合適的 pod 將花費(fèi) DevOps 工程師很長(zhǎng)時(shí)間。DevOps 工程師必須使用通用kubectl get pods命令,然后使用grep.

執(zhí)行批量操作

Kubernetes 標(biāo)簽的另一個(gè)用例是根據(jù)資源標(biāo)簽執(zhí)行批量操作。

假設(shè)工程師每晚移除所有暫存環(huán)境以降低云成本。通過(guò)使用 Kubernetes 標(biāo)簽,他們可以輕松地自動(dòng)執(zhí)行此任務(wù)。

例如,這是一個(gè)刪除所有標(biāo)記為environment:local,environment:dev或的對(duì)象的命令environment:staging:

> kubectl delete deployment,services,statefulsets -l 'environment in 
(local,dev,staging)'

根據(jù)節(jié)點(diǎn)標(biāo)簽調(diào)度 pod

Kubernetes 標(biāo)簽的隱藏寶石是它們?cè)?Kubernetes 本身中被大量使用,用于將 pod 調(diào)度到適當(dāng)?shù)墓?jié)點(diǎn)。通過(guò)使用標(biāo)簽,您可以通過(guò)讓 Kubernetes 將特定部署安排到特定節(jié)點(diǎn)來(lái)更好地控制您創(chuàng)建的資源。

讓我們看看這在實(shí)踐中是如何工作的:

> kubectl get nodesNAME STATUS ROLES AGE VERSIONgke-node-1fe68171 Ready 
1d v1.22.12-gke.2300gke-node-3cdf3d2b Ready 3d
v1.22.12-gke.2300gke-node-5f7b4cf1 Ready 5d v1.22.12-gke.500> kubectl
get nodes -l ‘critical=true’No resources found

當(dāng)前,不存在具有標(biāo)簽的節(jié)點(diǎn)critical:true。

讓我們嘗試critical:true使用節(jié)點(diǎn)選擇器創(chuàng)建一個(gè)必須在具有標(biāo)簽的節(jié)點(diǎn)上調(diào)度的 pod。這是一個(gè)pod.yaml配置文件:

apiVersion: v1kind: Podmetadata: name: nginx labels: environment: prodspec: 
nodeSelector: critical: "true" containers: - image: nginx name: nginx resources:
requests: cpu: 500m

現(xiàn)在讓我們應(yīng)用它并檢查會(huì)發(fā)生什么:

> kubectl apply -f pod.yamlpod/nginx created> kubectl get pod nginxNAME 
READY STATUS RESTARTS AGEnginx 0/1 Pending 0 1m> kubectl get events
--field-selector involvedObject.name=nginxLAST SEEN TYPE REASON OBJECT
MESSAGE46s Warning FailedScheduling pod/nginx 0/1 nodes are available: 1 node(s)
didn't match Pod's node affinity/selector. preemption: 0/1 nodes are available:
1 Preemption is not helpful for scheduling.

請(qǐng)注意,pod 無(wú)法在任何節(jié)點(diǎn)上調(diào)度,因?yàn)樗鼈兌紱](méi)有所需的標(biāo)簽?,F(xiàn)在,讓我們用所需的標(biāo)簽標(biāo)記其中一個(gè)節(jié)點(diǎn):

> kubectl label node gke-node-5f7b4cf1 critical=truenode/gke-node-5f7b4cf1 
labeled> kubectl get nodes -l 'critical=true'NAME STATUS ROLES AGE
VERSIONgke-node-5f7b4cf1 Ready 5h v1.22.12-gke.500

現(xiàn)在,讓我們檢查 pod:

> kubectl get pod nginxNAME READY STATUS RESTARTS AGEnginx 1/1 Running 0 
3m31s

Pod 已成功調(diào)度到該節(jié)點(diǎn)。

請(qǐng)記住,如果在節(jié)點(diǎn)選擇器中指定了多個(gè)標(biāo)簽,則它們都必須被一個(gè)節(jié)點(diǎn)滿足,以便 pod 被調(diào)度到它上面。

Kubernetes 標(biāo)簽的 10 個(gè)最佳實(shí)踐

1.使用Kubernetes推薦的標(biāo)簽

Kubernetes 提供了一個(gè)推薦的標(biāo)簽列表,用于對(duì)對(duì)象進(jìn)行分組。例如,Kubernetes 推薦使用app.kubernetes.io/name和

app.kubernetes.io/instance分別表示應(yīng)用程序的名稱(chēng)和實(shí)例。只需刪除前綴“app.kubernetes.io”并添加您公司的子域即可自定義標(biāo)簽。

2.注意語(yǔ)法正確

要?jiǎng)?chuàng)建 Kubernetes 標(biāo)簽鍵值對(duì),您需要使用以下語(yǔ)法:/. 讓我們深入了解細(xì)節(jié):

  • <前綴>

前綴是可選的;如果您選擇使用它,它需要是一個(gè)有效的 DNS 子域(例如“cast.ai”)并且總共不超過(guò) 253 個(gè)字符。對(duì)于非用戶私有的工具和命令,前綴會(huì)派上用場(chǎng)。它們也很有用,因?yàn)樗鼈冊(cè)试S團(tuán)隊(duì)使用多個(gè)標(biāo)簽,否則會(huì)發(fā)生沖突(想想第三方包中的標(biāo)簽)。

請(qǐng)注意,前綴kubernetes.io/和k8s.io前綴是為 Kubernetes 核心組件保留的。

  • <名稱(chēng)>

這部分是指標(biāo)簽的任意屬性名。為了清楚起見(jiàn),團(tuán)隊(duì)可以使用名稱(chēng)“環(huán)境”和標(biāo)簽值,例如“生產(chǎn)”或“測(cè)試”。

名稱(chēng)必須滿足與標(biāo)簽值相同的要求,但不能為空。因此,名稱(chēng)需要包含 63 個(gè)字符或更少,以字母數(shù)字字符 ([a-z0-9A-Z]) 開(kāi)頭和結(jié)尾,中間有破折號(hào) (-)、下劃線 (_)、點(diǎn) (.) 和字母數(shù)字.

3.標(biāo)準(zhǔn)化標(biāo)簽命名約定

使用 Kubernetes 的多個(gè)團(tuán)隊(duì)需要遵循相同的標(biāo)簽約定。否則,所有的標(biāo)簽工作都不會(huì)給你帶來(lái)任何價(jià)值。

讓您的開(kāi)發(fā)管道對(duì)資源配置文件執(zhí)行靜態(tài)代碼分析以確保所有必需的標(biāo)簽都存在是一個(gè)很好的做法。如果您未能正確應(yīng)用標(biāo)簽,自動(dòng)化流程可能會(huì)中斷——您使用的任何監(jiān)控解決方案都可能向您發(fā)送誤報(bào)警報(bào)。

4.避免對(duì)標(biāo)簽進(jìn)行不必要的改動(dòng)

Kubernetes 中的標(biāo)簽用于識(shí)別和選擇用于調(diào)度、部署和管理目的的資源。因此,修改資源標(biāo)簽可能會(huì)產(chǎn)生深遠(yuǎn)且無(wú)法預(yù)料的影響。

例如,如果您將一組 pod 的“app”標(biāo)簽從“frontend”切換到“backend”,Kubernetes 可以將這些 pod 重新安排到未設(shè)置為運(yùn)行“backend”應(yīng)用程序的節(jié)點(diǎn)上。吊艙可能會(huì)崩潰;結(jié)果,使它們不可用。

只有在絕對(duì)必要時(shí)才修改標(biāo)簽,并在進(jìn)行任何更改之前仔細(xì)評(píng)估其后果以避免此類(lèi)問(wèn)題,這一點(diǎn)至關(guān)重要。

5.使用標(biāo)簽選擇選項(xiàng)

團(tuán)隊(duì)可以根據(jù)相等性和集合來(lái)選擇帶標(biāo)簽的對(duì)象。

基于相等性的選擇允許您檢索標(biāo)簽等于或不等于指定值(或多個(gè)值)的對(duì)象。深入語(yǔ)法,= 和 == 都表示相等,而 != 表示不等??梢蕴砑右远禾?hào)分隔的多個(gè)標(biāo)簽(所有條件都需要在此處匹配)。例如,如果您執(zhí)行以下命令:

> kubectl get pods -l ‘environment=dev,release=daily’

它將返回所有帶有標(biāo)簽environment:devAND的 pod release:daily。

另一方面,基于集合的選擇允許一次查找具有多個(gè)值的資源。集合類(lèi)似于INSQL 中的關(guān)鍵字。例如,以下命令:

> kubectl get pods -l ‘environment in (prod,dev)’

將找到所有包含標(biāo)簽environment=prodOR的 pod environment=dev。

6. 不要在標(biāo)簽中存儲(chǔ)應(yīng)用程序級(jí)語(yǔ)義

Kubernetes 標(biāo)簽可能與對(duì)象的元數(shù)據(jù)一起出現(xiàn),但它們不應(yīng)該用作應(yīng)用程序的數(shù)據(jù)存儲(chǔ)。鑒于 Kubernetes 資源的使用時(shí)間通常很短,并且與應(yīng)用程序沒(méi)有緊密關(guān)聯(lián),標(biāo)簽很快就會(huì)變得不同步,因此變得無(wú)用。

7. 不要在標(biāo)簽中存儲(chǔ)敏感信息

如果有人在您將密碼或 API 憑據(jù)或其他敏感數(shù)據(jù)存儲(chǔ)在標(biāo)簽中時(shí)獲得了對(duì)您的 Kubernetes 集群的訪問(wèn)權(quán)限,他們將能夠以純文本形式看到它。這是一個(gè)重大的安全風(fēng)險(xiǎn),可能會(huì)產(chǎn)生身份盜用或數(shù)據(jù)泄露等負(fù)面影響。

建議以秘密而不是標(biāo)簽的形式保存敏感信息。秘密是加密的,只有需要它們的 pod 才能解密。通過(guò)這樣做,即使有人設(shè)法訪問(wèn)您的 Kubernetes 集群,他們也無(wú)法查看保密的私有數(shù)據(jù)。

8. 給 pod 模板添加標(biāo)簽

將基本標(biāo)簽添加到作為工作負(fù)載資源一部分的 pod 模板。這樣,Kubernetes 控制器可以始終如一地創(chuàng)建具有您指定狀態(tài)的 pod。

目標(biāo)不應(yīng)該是創(chuàng)建盡可能多的標(biāo)簽,而是創(chuàng)建能為您的團(tuán)隊(duì)帶來(lái)價(jià)值的標(biāo)簽。從小處著手,創(chuàng)建一個(gè)標(biāo)簽列表作為模板的一部分。例如,您可以從確定資源所有者、資源運(yùn)行環(huán)境和版本開(kāi)始。

9. 自動(dòng)化你的標(biāo)簽實(shí)踐

自動(dòng)化可以為您節(jié)省大量時(shí)間,標(biāo)簽也不例外。如果您設(shè)置了持續(xù)集成/持續(xù)交付 (CI/CD) 管道,則可以輕松地自動(dòng)化一些橫切關(guān)注點(diǎn)標(biāo)簽。

使用 CD 工具自動(dòng)附加標(biāo)簽是明智的,因?yàn)樗梢员WC一致性并提高工程師的工作效率。讓 CI 作業(yè)通過(guò)使構(gòu)建失敗并在標(biāo)簽丟失時(shí)向負(fù)責(zé)團(tuán)隊(duì)發(fā)送通知來(lái)強(qiáng)制執(zhí)行正確的標(biāo)簽也是一種很好的做法。

10.使用標(biāo)簽進(jìn)行成本監(jiān)控

標(biāo)簽對(duì)于更好地了解您的 Kubernetes 云成本非常有幫助。成本監(jiān)控、分配和管理都依賴于適當(dāng)?shù)臉?biāo)簽策略。

如果多個(gè)租戶在單個(gè)集群中共享資源,您需要使用相關(guān)標(biāo)簽來(lái)創(chuàng)建成本分配報(bào)告。這就是您可以確定哪個(gè)團(tuán)隊(duì)、服務(wù)或應(yīng)用程序產(chǎn)生了特定成本的方式,這在調(diào)查意外成本激增時(shí)非常有幫助。

使用此免費(fèi)監(jiān)控工具按標(biāo)簽跟蹤您的成本

CAST AI 提供了一個(gè)成本監(jiān)控工具,讓您可以隨時(shí)了解任何工作負(fù)載的成本。成本可以通過(guò)任何工作負(fù)載上存在的任何標(biāo)簽進(jìn)行過(guò)濾,從而可以輕松跟蹤每個(gè)團(tuán)隊(duì)、服務(wù)或您使用的任何其他標(biāo)簽的云成本。按標(biāo)簽對(duì)工作負(fù)載進(jìn)行分組的選項(xiàng)即將推出。

通過(guò)將集群連接到 CAST AI 的免費(fèi)成本監(jiān)控解決方案,了解良好的標(biāo)簽和成本監(jiān)控可以帶來(lái)的不同。


網(wǎng)頁(yè)名稱(chēng):Kubernetes標(biāo)簽:包含10項(xiàng)優(yōu)秀實(shí)踐的專(zhuān)家指南
文章起源:http://www.5511xx.com/article/ccooeeh.html