自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

管理 Kubernetes 集群這3年,我踩過(guò)的十個(gè)坑

譯文 精選
云計(jì)算 云原生
本文主要分析了 K8s 集群管理必須要考慮的十大要點(diǎn),主要包括底層基礎(chǔ)設(shè)施的部署和管理、Helm Chart 的使用、服務(wù)網(wǎng)格的安裝、Kubernetes 工具的選擇、 定義 pod 的資源限制等。但在實(shí)際工作中,往往可能需要同時(shí)管理多個(gè)集群,情況也更加復(fù)雜。所以有些要點(diǎn)在實(shí)際操作過(guò)程中是可以忽略的,但還有些“坑”是需要自己格外注意的。?

作者 | Herve Khg

編譯 | 如煙

出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)

Kubernetes 作為云計(jì)算領(lǐng)域的絕對(duì)主角,當(dāng)仁不讓地坐上了容器技術(shù)領(lǐng)域的“頭把交椅”。它的精髓在于,你只要在 YAML 里描述清楚應(yīng)用的樣子,剩下的一切都可以交給它來(lái)完成。

但這一切的前提是 K8s 集群的高效管理。

說(shuō)起我管理 Kubernetes 集群這三年,真可謂是一波三折、跌宕起伏。在這段充滿挑戰(zhàn)的經(jīng)歷中,我對(duì)這項(xiàng)技術(shù)有了更加深刻的了解,總結(jié)出十條我認(rèn)為最有價(jià)值的經(jīng)驗(yàn)教訓(xùn),涵蓋的內(nèi)容包括管理底層基礎(chǔ)設(shè)施、優(yōu)化部署流程、確保集群的可擴(kuò)展性和安全性的最佳實(shí)踐。

無(wú)論你是剛?cè)腴T(mén) Kubernetes 的新手,還是經(jīng)驗(yàn)豐富的專(zhuān)家,這些經(jīng)驗(yàn)都可以為管理 Kubernetes 集群提供更豐富的視角。

1、自己管理 Kubernetes 底層基礎(chǔ)設(shè)施?真的沒(méi)必要

花費(fèi)大量時(shí)間管理底層基礎(chǔ)設(shè)施,或許可以讓你成為kube-api、kube-apiserver、kubelet、etcd、kube-proxy 等領(lǐng)域的專(zhuān)家,但這對(duì)于業(yè)務(wù)而言可能是事倍功半。

想要更高效地管理 Kubernetes 集群,只要將這個(gè)任務(wù)交給合適的云服務(wù)廠商就行。

2、使用代碼部署 Kubernetes 基礎(chǔ)設(shè)施

不要在控制臺(tái)上進(jìn)行任何集群操作,特別是不要抱著“在操作臺(tái)修復(fù)問(wèn)題后,我馬上就更新代碼”的僥幸心理。

3、避免過(guò)度使用您無(wú)法完全控制的Helm Chart

雖然Helm Chart 提供了一種更加簡(jiǎn)單的方式來(lái)打包和分發(fā) Kubernetes 應(yīng)用,不需要為了編寫(xiě) YAML 絞盡腦汁。但也要注意,還是要理解 values.yaml 文件中的每個(gè)變量并避免使用默認(rèn)值。

4、Kubernetes 不適合直接遷移

不要讓 Kubernetes 適應(yīng)你的應(yīng)用,而是要讓?xiě)?yīng)用適應(yīng) Kubernetes。所以你需要重新調(diào)整舊的應(yīng)用程序,確保能夠與云兼容。如果無(wú)法重新編碼應(yīng)用程序,也可以繼續(xù)使用舊的虛擬機(jī)。

5、是否要安裝服務(wù)網(wǎng)格?

非必要不安裝服務(wù)網(wǎng)格。那如何判斷是否需要安裝服務(wù)網(wǎng)格呢?可以問(wèn)自己兩個(gè)問(wèn)題:

一是集群中的應(yīng)用程序可以相互通信嗎?

二是集群中的應(yīng)用程序之間的交換是否需要被保護(hù)?

如果這兩個(gè)問(wèn)題的答案都是肯定的,那么就需要安裝服務(wù)網(wǎng)格。

6、不要使用多種工具

Kubernetes 提供了大量的輔助工具,可以幫助你更好地管理集群,包括 argocd, lens, k9s, keda, krew, kubectx, kubens, kail等。但不要依賴太多工具,合適的 kubectl 就能滿足 90%的需求。

以我的經(jīng)驗(yàn)來(lái)說(shuō),一般只選擇 kubectx、kubens、k9s 這幾種工具,這樣管理集群的效率更高。

7、務(wù)必定義分配給 pod 的資源限制

這樣做可以防止因某些 pod 過(guò)于貪婪致使編碼或配置不當(dāng)?shù)膽?yīng)用程序吞噬所有集群資源,最終導(dǎo)致應(yīng)用程序一個(gè)接一個(gè)關(guān)閉的風(fēng)險(xiǎn)。這也是對(duì) Helm Chart 保持警惕并始終檢查完美包裝背后的清單源代碼的原因之一。

8、避免在 pod 中保留數(shù)據(jù)

如果確實(shí)難以實(shí)現(xiàn),那么最好安裝在 NAS上而不是磁盤(pán)上。否則你會(huì)發(fā)現(xiàn)部署中的某些 pod 無(wú)權(quán)訪問(wèn)持久資源。

因?yàn)橛脖P(pán)只能掛載在一個(gè)節(jié)點(diǎn)上,所以如果你的 pod 分布在多個(gè)節(jié)點(diǎn)上,同一節(jié)點(diǎn)上的 pod 會(huì)看到相同的數(shù)據(jù),而其他節(jié)點(diǎn)上的 pod 則看不到數(shù)據(jù)。使用類(lèi)似 EFS 這樣的 NAS 類(lèi)型安裝,就能避免這個(gè)問(wèn)題。

9、配置HPA 

如果你想停止像以前那樣工作,并受益于Kubernetes根據(jù)需求自動(dòng)管理資源利用率的能力,就需要在所有應(yīng)用程序項(xiàng)目上配置HPA(水平 pod 自動(dòng)縮放器)。

10、不要害怕改變

每四個(gè)月就應(yīng)該升級(jí)一次集群版本,一年下來(lái)大概要升級(jí)三次。有些升級(jí)更新是透明的,但通常也會(huì)帶來(lái)一些影響。

為了做好更加充分的更新準(zhǔn)備,我覺(jué)得你需要重新回顧一下發(fā)行說(shuō)明并多參考一下其他專(zhuān)家的經(jīng)驗(yàn)。

11、寫(xiě)在最后

本文主要分析了 K8s 集群管理必須要考慮的十大要點(diǎn),主要包括底層基礎(chǔ)設(shè)施的部署和管理、Helm Chart 的使用、服務(wù)網(wǎng)格的安裝、Kubernetes 工具的選擇、 定義 pod 的資源限制等。但在實(shí)際工作中,往往可能需要同時(shí)管理多個(gè)集群,情況也更加復(fù)雜。所以有些要點(diǎn)在實(shí)際操作過(guò)程中是可以忽略的,但還有些“坑”是需要自己格外注意的。

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2025-02-26 00:33:59

Java編程程序

2024-05-06 00:00:00

緩存高并發(fā)數(shù)據(jù)

2019-09-25 15:30:15

2024-06-26 10:37:05

2019-02-19 09:46:58

美圖容器化Kubernetes

2024-04-01 08:05:27

Go開(kāi)發(fā)Java

2019-10-30 14:44:41

Prometheus開(kāi)源監(jiān)控系統(tǒng)

2025-04-29 10:17:42

2017-07-17 15:46:20

Oracle并行機(jī)制

2024-09-24 13:31:33

2024-12-31 08:10:00

2022-03-09 09:43:20

并發(fā)編程Java

2022-08-16 08:27:20

線程毀線程異步

2025-04-14 09:31:03

2020-09-15 08:46:26

Kubernetes探針服務(wù)端

2021-02-21 09:28:24

kafka系統(tǒng)并發(fā)量

2024-02-05 10:10:06

Vue策略編譯

2024-08-13 00:23:48

2024-08-20 08:00:00

2018-01-10 13:40:03

數(shù)據(jù)庫(kù)MySQL表設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)