Middle
Mi történik a Deployment entitás létrehozásakor a rendszerben?
sobes.tech MI
Válasz az MI-től
Kubernetesben Deployment létrehozásakor a következő történik:
- A Deployment vezérlő észleli egy új Deployment entitás megjelenését.
- A Deployment definícióját megkapva a vezérlő létrehozza vagy frissíti a megfelelő ReplicaSet-et. A ReplicaSet felelős a kívánt számú pod replikák fenntartásáért.
- Ezután a ReplicaSet létrehozza a sablonban megadott podokat. Ez a pod sablon a Deployment specifikációjából (
spec.template) származik. Ez a sablon határozza meg a konténer képét, portokat, kötet csatlakozásokat és más pod paramétereket. - A podokat a ütemezőhöz (Scheduler) küldik.
- Az ütemező kiválasztja a megfelelő csomópontokat a klaszteren belül a podok futtatásához, figyelembe véve a korlátozásokat (erőforrások, affinity/anti-affinity stb.).
- A kiválasztott csomópontokon lévő kubelet instrukciókat kap a kube-apiserver-től, és elindítja a konténereket a podokban.
- A kubelet jelentést tesz a podok állapotáról vissza a kube-apiserver-hez.
- A Deployment és ReplicaSet vezérlők folyamatosan figyelik a podok állapotát, biztosítva a kívánt replikaszámot, és kezelik a hibákat vagy változásokat a Deployment-ben.
Deployment specifikáció példája:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment # A deployment neve
spec:
replicas: 3 # A kívánt pod replikák száma
selector:
matchLabels:
app: nginx # Kiválasztó a podok megtalálásához, amelyeket ez a deployment kezel
template:
metadata:
labels:
app: nginx # Címkék a létrehozott podokhoz
spec:
containers:
- name: nginx # Konténer neve
image: nginx:1.14.2 # Konténer kép
ports:
- containerPort: 80 # Konténer port