áááºá Kubernetes á¡á á¯á¡áá±ážá¡ááœáẠá¡ááá·áºááŒáŸáá·áºáááºááŒááºážáá¯ááºáááºážá ááº
áá
áºáá»áááºáá»áááºááœááºá Kubernetes á¡á
á¯á¡áá±ážááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá«á áááºáááºáá±áá±á¬ node áá»á¬ážááᯠá¡ááºááááºáá¯ááºááẠááá¯á¡ááºáááºá áááºážááœáẠáááºáá±á·áá»áºá¡ááºááááºáá»á¬ážá kernel á¡ááºááááºáá»á¬ážá ááá¯á·ááá¯áẠá¡áá
áºáá±á¬ á
ááºáá¯ááºáá¯á¶áá»á¬ážááᯠááŒáá·áºáá»ááºááŒááºáž áá«áááºáááºá Kubernetes á¡áá±á«áºá¡áá±á«áºá¡á áá«ááᯠáá±á«áºáá«áááºá
á€ááá¯á·á áºááẠááá¯á·á Ạ4 áá¯ááœá²á áá áºá áááºáá áºááá¯ááºážááŒá áºáááº-
- áá®ááá¯á·á áºá
- Kubernetes á¡á á¯á¡áá±ážááŸá pods áá»á¬ážááᯠááŸááºáááºá áœá¬ ááááºááŒááºážá
- áááºážááᯠáá»ááºááá¯ááºáá±á¬á¡áá« áá±á«á·ááºáá áºáá¯á ááŸá±á¬áá·áºááŸá±ážááŒááºážááᯠáááºá á²áááºá
- PodDisruptionBudgets ááá¯á¡áá¯á¶ážááŒá¯á Kubernetes Cluster á ááºáááºáá»áááºááᯠááŸá±á¬ááºááŸá¬ážáááºáž
(á¡áá®ážá ááºáá¯á¶ážá ááá±ážáá±á¬á·áá±á¬á¡áá¬áááºááœáẠá á®ážáá®ážááŸá áá»ááºááŸááá±á¬ áá±á¬ááºážáá«ážáá»á¬ážááᯠáá¬áá¬ááŒááºááá¯ááẠáá»áŸá±á¬áºááá·áºáááº)
á€áá±á¬ááºážáá«ážááœááºá ááá·áº cluster ááœááºáááºáááºáá±áá±á¬ node áá»á¬ážá¡ááœáẠáá¯á¶ážáá ááºáááºááœá¬ážá á±ááẠKubernetes ááŸáá±ážáá±á¬ áááááá¬á¡á¬ážáá¯á¶ážááᯠáá±á¬áºááŒáá«áááºá
ááŒtheáá¬ááá¯áááºááŸááºááŒááºáž
áá»áœááºá¯ááºááá¯á·ááẠá¡á ááá¯ááºážááœáẠáá¯á¶á¡áá±á¬áá»ááºážáááºáááºážááᯠá¡áá¯á¶ážááŒá¯á ááŒá¿áá¬áá»á¬ážááᯠáá±á¬áºáá¯ááºááŒá®áž á€áá»ááºážáááºááŸá¯á ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ á¡áá¹ááá¬ááºáá»á¬ážááᯠá¡áá²ááŒááºáᬠá ááºáááºážáá áºáá»áŸá±á¬ááºááœáẠáá»áœááºá¯ááºááá¯á·ááŒá¯á¶ááœá±á·áá±áááá·áº ááŒá¿áá¬ááá¯ááºážááᯠááŒá±ááŸááºážááẠá¡ááááá¬ááᯠáááºáá±á¬ááºáá«áááºá ááááºááŸá¬ áá»áœááºá¯ááºááá¯á·áá¡áá¯ááºááá¯ááºááá·áºáááºážááá¯ááºááá¯áááŸáááẠlifecycle hooksá á¡áááºááá·áºá á áºáá±ážááŒááºážáá»á¬ážááŸáá·áº Pod á¡ááŸá±á¬áá·áºá¡ááŸááºáááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº ááœá²á·á ááºážááŸá¯áá áºáá¯ááŒá áºáááºá
áá»áœááºá¯ááºááá¯á·áááá®ážá
áááºáááºá ááá¯ááºáá¬áá±á¬á¥ááá¬áá
áºáá¯ááá¯áá°ááŒáá«á
áá¯á·á áá»áœááºá¯ááºááá¯á·ááœáẠá¡ááá®áá±ážááŸááºážáá
áºáá¯ááẠáá±á¬ááºááœááºááœáẠpods ááŸá
áºáá¯ááŒáá·áº áá¯ááºáá±á¬ááºáá±ááá·áº Node ááŸá
áºáá¯á Kubernetes á¡á
á¯á¡áá±ážáá
áºáá¯ááŸáááẠááá¯ááŒáá«á
áá¯á·á Service
:
áá»áœááºá¯ááºááá¯á·á Kubernetes á¡á á¯á¡áá±ážááŸá áºáá¯ááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ Nginx ááŸáá·áº Service ááŒáá·áº pods ááŸá áºáá¯ááŒáá·áº á áááºááŒáá«á áá¯á·á
áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á á¡á á¯á¡áá±ážááŸá á¡áá¯ááºááá¬áž node ááŸá áºáá¯á kernel áá¬ážááŸááºážááᯠá¡ááºááááºáá¯ááºááá¯áá«áááºá áá«ááᯠáááºááᯠáá¯ááºááá²á ááá¯ážááŸááºážáá±á¬ááŒá±ááŸááºážáá»ááºááŸá¬ ááœááºážáá¶áá¬ážáá±á¬ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŒáá·áº node á¡áá áºáá»á¬ážááá¯á áááºáááºááŸáá·áº á¡áá áºáá»á¬ážááá¯á áááºá ááºááœáẠnode á¡áá±á¬ááºážáá»á¬ážááá¯ááááºáááºááŒá áºáááºá áááºážááẠá¡áá¯ááºááŒá áºáá»áááºááœááºá á€áá»ááºážáááºááŸá¯ááœáẠááŒá¿áá¬á¡áááºážáááºááŸááááá·áºáááº-
- node á¡áá±á¬ááºážáá»á¬ážááᯠááááºááá¯ááºáá±á¬á¡áá«ááœáẠáááºážááá¯á·ááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ pods áá»á¬ážááá¯áááºáž ááááºááœá¬ážáá«áááºá áááºáááºá áœá¬ááááºáááºá¡ááœáẠá¡á á±á·áá»á¬ážááᯠááŸááºážáááºážááẠááá¯á¡ááºáá«á á¡áááºáááºážá áááºá¡áá¯á¶ážááŒá¯áá±áá±á¬ virtualization á áá áºááẠááŸááºážáááºážáá±ážáá¯ááºáááºážá ááºááŒá®ážááŒá±á¬ááºááẠáá á±á¬áá·áºááá¯ááºáá«á
- node á¡á¬ážáá¯á¶ážááᯠáá áºáá»áááºáááºážááááºááẠáá¬ááŒá áºááá²á pods áá»á¬ážááẠnode á¡áá áºáá»á¬ážááá¯á· ááœá±á·ááœá¬ážá ááºááœáẠááá·áºááá·áºáá»á±á¬ááºáááºáá±á¬ á ááºáááºáá»áááºááᯠáááŸááá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠnode ááá¯á· ááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž ááŒá¯áá¯ááºáá±á
áẠáá»áœááºá¯ááºááá¯á·á á¡áá¯ááºááá¬áž áá¯ááºáááºážá
ááºáá»á¬áž áááºááá·áºá¡áá¬áá»áŸ ááááºáááºááŒá±á¬ááºáž áá±áá»á¬á
á±áááºá¡ááœáẠpods á¡áá±á¬ááºážáá»á¬ážá០pods áá»á¬ážááᯠáá»á±á¬ááœá±á·á
áœá¬ ááœáŸá±á·ááŒá±á¬ááºážááẠáááºážáááºáž ááá¯á¡ááºáá«áááºá ááá¯á·ááá¯áẠááá°áá¬ááœááºáá²á·ááá¯á·á áá»áœááºá¯ááºááá¯á·ááẠá¡á
á¯á¡áá±ážá ááŒá®ážááŒáá·áºá
á¯á¶áá±á¬ á¡á
á¬ážááá¯ážááŸá¯ááᯠááŒá¯áá¯ááºáá±á¬á¡áá« (ááá¯ááá¯áááºááŸá¬á áá»áœááºá¯ááºááá¯á·ááẠVM áá¯á¶áá»á¬ážááᯠá¡á
á¬ážááá¯ážááŒááºážááŒá
áºáááº)á áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááá®áá±ážááŸááºážáá±á¬ááºážáá»á¬ážá០node á¡áá
áºáá»á¬ážááá¯á· ááœáŸá²ááŒá±á¬ááºážááá¯áá«áááºá ááŸá
áºáá¯áá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠnode á¡áá±á¬ááºážáá»á¬ážáá±á«áºááœáẠpods á¡áá
áºáá»á¬ážááᯠá¡áá»áááºááá¬ážááœá²ááŒááºážá០áá¬ážáá®ážááŒá®áž áá¯ááºáá±á¬ááºáá±ááá·áº pods á¡á¬ážáá¯á¶ážááᯠáááºážááá¯á·áá¶á០ááŸááºáá¯ááºááá¯áá«áááºá á€áááºááŸááºážáá»ááºáá»á¬ážá¡á±á¬ááºááŒááºáááºáá»áœááºá¯ááºááá¯á·ááẠcommand ááá¯áá¯á¶ážááá¯ááºáááºá kubectl drain
.
node áá áºáá¯á០pods á¡á¬ážáá¯á¶ážááᯠááŒááºáááºááŒáá·áºáá±ááŒááºážá
Drain áá¯ááºáá±á¬ááºáá»ááºááẠnode áá
áºáá¯á០pods á¡á¬ážáá¯á¶ážááᯠááŒááºáááºááŒáá·áºáá±ááá¯ááºá
á±áá«áááºá ááŒá±á¬ááºážáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á
ááºááœááºá node á¡á¬áž á¡áá»áááºááá¬ážááœá²ááááá±á¬á¡ááŒá
Ạá¡ááŸááºá¡áá¬ážááŒá¯áá«ááẠ(á¡áᶠNoSchedule
) áááºážááẠáááºážááœáẠá¡á
á±á·á¡áá
áºáá»á¬áž ááá±á«áºá
á±ááẠáá¬ážáá®ážáááºá ááá¯á·áá±á¬áẠnode á០pods áá»á¬ážááᯠáááºáá¯ááºááŒá®ážá node áá±á«áºááœáẠáááºááŸááá¯ááºáá±á¬ááºáá±áá±á¬ container áá»á¬ážááᯠááááºáᬠsignal áá±ážááá¯á·ááŒááºáž TERM
á¡áá¯ážáá
áºáá¯á¶ážáá²ááœáẠááœááºááááºáá¬áá»á¬ážá
áá±áá²á· kubectl drain
á
áá«ážáááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážá¡á¬áž áá±á¬ááºážá
áœá¬áá¯ááºáá±á¬ááºááá¯ááºáááºááŒá
áºááŒá®ážá áá±ááŒá±á¬ááºážáááºáááºááŸá¯ááᯠáá»ááºááœá¬ážá
á±ááá¯ááºáá±á¬ á¡ááŒá¬ážá¡áá»ááºááŸá
áºáá»ááºáááºáž ááŸááá«áááºá
- áááºááá»áŸá±á¬ááºááœáŸá¬ááᯠáááºááœááºážááŒá®ážáá«á ááŒá±ááŒá±áááºááẠá¡áá¯á¶ážá¡ááŒááºáá±ážááá¯ááºááááºá
TERM
á¡áá»ááºááŒá pods áá»á¬ážááᯠááŸááºáá¯ááºááá·áºá¡áá« Kubernetes ááẠá¡áá»ááºááŒááŸá¯áá áºáᯠáá±ážááá¯á·áááºáTERM
ááœááºááááºáá¬áá»á¬ážááẠáááºááŸááºáá¬ážáá±á¬ á¡áá»áááºá¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá áááºááá·áºááẠá á±á¬áá·áºááá¯ááºážááŒá®ážáá±á¬áẠáááºážááá¯á· ááááºááá·áºáá«á áááºážááá¯á·á¡á¬áž á¡áááºážá¡ááŒáẠáááºá á²ááœá¬ážáááºááŒá áºáááºá áááºááá¯á·áááºááá¯á á±á ááá·áºááœááºááááºáá¬ááẠá¡áá»ááºááŒááŸá¯ááᯠááŸááºáááºá áœá¬ áááááºáááá«áá áááºážááá¯á·ááẠáááºááŸááá¯ááºáá±á¬ááºáá±áá«á áááºážááá¯á·ááᯠááŸá¬ážááœááºážá áœá¬ áá®ážááŒáŸáááºážáááºááá¯ááºáá²ááŒá áºááẠ(á¥ááá¬á áá±áá¬áá±á·á Ạá¡áá±á¬ááºážá¡ááẠáá¯ááºáá±á¬ááºáá±áááº)á - ááá·áºáá»áŸá±á¬ááºááœáŸá¬áá«ááŸááá±á¬ pods áá»á¬ážá¡á¬ážáá¯á¶áž áá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá ááœááºááááºáá¬á¡áá áºáá»á¬ážááᯠnode á¡áá áºáá»á¬ážááœáẠá áááºáá±á¬á¡áá« ááá¯á·ááá¯áẠáááºá pods áá»á¬ážááᯠcontrollers ááá«áá² á¡áá¯á¶ážááŒá¯áá«áá áááºážááá¯á·ááẠáá¯á¶ážáááŒááºáááºá áááºáááºááá¯ááºáá«á
á ááºáááºááŒááºážá០ááŸá±á¬ááºááŒááºááŒááºážá
node áá áºáá¯áá±á«áºááŸá drain operation áá²á·ááá¯á·áá±á¬ á áááºááá¹áá¡áá»á±á¬áẠá¡ááŸá±á¬áá·áºá¡ááŸááºáá»á¬ážá០áááºááá·áºáá±áá»áááºááᯠáá»áŸá±á¬á·áá»áááºá¡ááœáẠKubernetes ááẠá¡á±á¬ááºáá« áá¡á±á¬ááºááŒááºááŸá¯áá»á¬ážááᯠááá¯ááºááœááºááẠááœá±ážáá»ááºá áá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááº-
áá»ááºá á®ážáá®ážáá»á¬ážááœááºá pod ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááááºáá±á¬ááºááŸá¯ááᯠáá»á±á¬á·áá«ážáááºáá¬á á±ááẠဠKubernetes á¡ááºá¹áá«áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áááºáá¡áá¯ááºáá®áá¬ááᯠááá¯ááºáá»áŸá±á¬ááºááẠááá¯ááá¯ááœááºáá°á á±áááºá á¡á±á¬ááºáá« á¡áááºážá¡ááŒá áºááœá²á·á ááºážáá¯á¶ááŒáá·áº á¡áááºáá±á¬áºááŒáá« áá»áœááºá¯ááºááá¯á·á á¥ááá¬ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15
ports:
- containerPort: 80
---
kind: Service
apiVersion: v1
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
targetPort: 80
port: 80
á€ááœá²á·á
ááºážáá¯á¶ááẠá¡áááºážáááºáá»áŸáᬠá¥ááá¬áá
áºáá¯ááŒá
áºáááºá Deployment
á¡á
á¯á¡áá±ážááŸá nginx pods áá»á¬ážááᯠá
á®áá¶ááá·áºááœá²áááºá ááá¯á·á¡ááŒááºá ááœá²á·á
ááºážááŸá¯áá¯á¶á
á¶ááẠá¡áááºážá¡ááŒá
áºááᯠáá±á¬áºááŒáááºá Service
á¡á
á¯á¡áá±ážáá
áºáá¯ááŸá nginx pods áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
á ááºáááºážáá áºáá»áŸá±á¬ááºáá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠá ááºáááºáá»áááºááᯠáá»áŸá±á¬á·áá»áááºá¡ááœáẠáá±á¬ááºáá¯á¶ážááœáẠKubernetes á០áá¶á·ááá¯ážáá±ážááá·áº á áœááºážáááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá«áááºá á±ááẠá€ááœá²á·á ááºážáá¯á¶ááᯠáááºááá²áá² áá»á²á·ááœááºáá«áááºá
AWS ááŸáá·áº ááá¯á·áááºááá¯á áááºááá·áºáá±áá»ááẠáá¯á¶ážááááŸááá±á¬ Kubernetes á¡á
á¯á¡áá±ážá á¡ááºááááºáá»á¬ážááᯠá¡ááŒáá·áºá¡á á
ááºážáááºááŒá®áž áá¬ážááŸááºážá¡ááœááºá ááœá¬ážáá±á¬ááºááŒáá·áºááŸá¯áá«á
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááŸá á¡ááŒá¬ážáá±á¬ááºážáá«ážáá»á¬ážááá¯áááºáž áááºáá«-
á ááºáááºáá»áááºááŸáá·áº áá±áá¬áá±á·á áºáá»á¬ážááᯠáá¯á Kubernetes- á áá áºá¡áááºážá¡ááŒá áºá á®áá¶ááá·áºááœá²ááŸá¯ááᯠá áááºáááºááŸááºááẠá¡áááºááŒá±á¬áá·áº á¡ááœááºá¡áá±ážááŒá®ážááááºážá Tekton ááá¯ááºááá¯ááºáž - Kubernetes-áá¬ááááá¯ááºááá¯ááºážáá»á¬áž Nginx á¡ááœáẠááŒá±á¬ááºážáá²áá±áá±á¬ áá±á¬áºáá»á°ážáá»á¬ážááᯠáááºáá±á¬ááºááŒááºážá Hashicorp áá±á¬ááºá á áºáááºá Kubernetes ááœáá·áºááŒá¯áá»ááºá¡á¬áž áááá«ááºáž ááœáá·áºááŒá¯áá»ááºáááŸááá² ClickHouse á០ClickHouse ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááẠáááºááá·áºá¡áá¬áá®ááá¯á· áŠážáááºááœá¬ážááááºážá
source: www.habr.com