第二章: 重要概念
1. Cluster :
2.Master:
Cluster的大腦,主要職責(zé)是調(diào)度,可以運(yùn)行多個(gè)master來保證高可用。
3. Node:
職責(zé)是運(yùn)行容器應(yīng)用,Node由Master管理,負(fù)責(zé)監(jiān)控并匯報(bào)容器的狀態(tài),同時(shí)根據(jù)Master的要求管理容器的生命周期。
4. Pod:
Pod 是K8s的最小工作單元。每個(gè)Pod包含一個(gè)或多個(gè)容器。
有些容器天生就是需要緊密聯(lián)系,一起工作。Pod提供了比容器更高層次的抽象,K8s以Pod為最小單位進(jìn)行調(diào)度、擴(kuò)展、共享資源、管理生命周期。
Pod中的所有容器使用同一個(gè)網(wǎng)絡(luò)的namespace,即相同的IP地址和Port空間。它們可以直接用localhost通信。同樣的,這些容器可以共享存儲(chǔ),當(dāng)K8s掛載Volume到Pod上,本質(zhì)上是將volume掛載到Pod中的每一個(gè)容器。
5. Controller:
K8s通常不直接創(chuàng)建Pod,而是通過Controller來管理Pod。Controller中定義了pod的部署屬性,比如幾個(gè)副本、在什么樣的Node上運(yùn)行等。
K8s提供了多種Controller,包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等。
6. Service:
Deployement可以部署多個(gè)副本,每個(gè)Pod都有自己的副IP,外界如何訪問這些副本。
Pod會(huì)被頻繁的銷毀和重啟,IP實(shí)時(shí)變化,不能用IP, 答案是通過service。
K8s service 定義了外界訪問一組特定Pod的方式。service有自己的IP和端口,service為Pod提供了負(fù)載均衡。
K8S 運(yùn)行Pod與訪問Pod這兩項(xiàng)任務(wù)分別由Controller和Service執(zhí)行。
7. Namespace:
Namespace將物理的Cluster邏輯上劃分成多個(gè)虛擬Cluster,每個(gè)Cluster就是一個(gè)Namespace。不同的Namespace里的資源是完全隔離的。
default:默認(rèn)的namespace
kube-system: K8s自己創(chuàng)建的的系統(tǒng)資源放到這個(gè)namespace