K8S 是什么?你知道嗎?
什么是 k8s(Kubernetes)?
k8s 是一個(gè)容器編排系統(tǒng)。它用于容器部署和管理。它的設(shè)計(jì)受谷歌內(nèi)部系統(tǒng) Borg 的影響。
k8s 集群由一組運(yùn)行容器化應(yīng)用程序的工作機(jī)(稱為節(jié)點(diǎn))組成。每個(gè)集群至少有一個(gè)工作節(jié)點(diǎn)。
工作節(jié)點(diǎn)承載著作為應(yīng)用工作負(fù)載組件的 Pod??刂破矫婀芾砑褐械墓ぷ鞴?jié)點(diǎn)和 Pod。在生產(chǎn)環(huán)境中,控制平面通常在多臺(tái)計(jì)算機(jī)上運(yùn)行,一個(gè)群集通常運(yùn)行多個(gè)節(jié)點(diǎn),以提供容錯(cuò)性和高可用性。
圖片
1.控制平面組件
API 服務(wù)器
API 服務(wù)器與 k8s 集群中的所有組件對(duì)話。Pod 上的所有操作都是通過(guò)與 API 服務(wù)器對(duì)話來(lái)執(zhí)行的。
調(diào)度程序
調(diào)度器負(fù)責(zé)監(jiān)控 pod 上的工作負(fù)載,并為新創(chuàng)建的 pod 分配負(fù)載。
控制器管理器
控制器管理器運(yùn)行控制器,包括 Node Controller、Job Controller、EndpointSlice Controller 和 ServiceAccount Controller。
etcd
etcd 是一個(gè)鍵值存儲(chǔ),用作 Kubernetes 所有集群數(shù)據(jù)的后備存儲(chǔ)。
2.節(jié)點(diǎn)
pod
Pod 是一組容器,是 k8s 管理的最小單位。Pod 中的每個(gè)容器都有一個(gè) IP 地址。
Kubelet
在集群中每個(gè)節(jié)點(diǎn)上運(yùn)行的代理。它能確保容器在 Pod 中運(yùn)行。
Kube 代理
Kube-proxy 是一個(gè)網(wǎng)絡(luò)代理,在集群中的每個(gè)節(jié)點(diǎn)上運(yùn)行。它可以路由從服務(wù)進(jìn)入節(jié)點(diǎn)的流量。它將工作請(qǐng)求轉(zhuǎn)發(fā)給正確的容器。
你知道 Kubernetes 為什么被稱為 “k8s ”嗎?
“Kubernetes” 這個(gè)單詞較長(zhǎng),因此社區(qū)采用了一種縮寫方式:
- 取首字母“K”和末尾的字母“s”。
- 中間有 8 個(gè)字母(ubernete),因此用 8 代替。
- 這種縮寫方式在技術(shù)領(lǐng)域也很常見(jiàn),如 i18n(internationalization,國(guó)際化) 和 l10n(localization,本地化)。