Kubernetes ááŒáá·áº á áááºáá±á¬á¡áá«á ááœááºááááºáá¬áááºážááŒá áºáá»á¬áž áááºááŸááºááŒááºážá¡ááŒá±á¬ááºáž áá±á·ááœá¬ážáá±á·ááŸááááºá á€á¡áá»áááºááœááºá Docker áá¯ááºáá¯á¶ á¡áá¯ááºáá¯ááºááŒá®áž Kubernetes á¡á á¯á¡áá±ážááá¯á· ááŒáá·áºáá»ááºá¡áá¯á¶ážááŒá¯ááá¯ááºááŒá±á¬ááºáž áá±áá»á¬á á±ááẠáá¯á¶áá±á¬ááºáá«áááºá
ááá¯á·áá±á¬áº áá±á¬ááºááá¯ááºážááœáẠá¡ááá®áá±ážááŸááºážááᯠá¡ááŒá¬ážá¡ááá®áá±ážááŸááºážáá»á¬ážááŸáá·áºá¡áá° áá¯ááºáá¯ááºáá±ážá¡á á¯á¡áá±ážááœáẠááŒáá·áºáá»ááºáá¬ážááẠááá¯á¡ááºáááºá áááºážááá¯áá¯ááºáá±á¬ááºáááºá áááºááẠááœááºááááºáá¬á¡ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááœá²áá±áá±ážááẠááá¯á¡ááºááŒá®áž á¡ááºááºá¡á¬áž á áááºáááºáááºáááºá¡ááœáẠáááºážááá¯á·á¡áá¯á¶á¡áá±á¬ááºááŸáááŒá±á¬ááºáž áá±áá»á¬á á±áá¬á á¡ááŒá¬ážáá¯ááºáá±á¬ááºáá±ááá·áºá¡ááºááºáá®áá±ážááŸááºážáá»á¬ážááẠááŒá¿áá¬áá»á¬ážááᯠááŒá¯á¶ááœá±á·ááááºááá¯ááºááŒá±á¬ááºáž áá±áá»á¬á á±áá«á
á¡ááœá²á·
ááœááºáá»á°áá¬á¡áááºážá¡ááŒá áºáá»á¬áž
áá»áœááºá¯ááºááá¯á·ááœáẠá¡á±á¬ááºáá«áá°áá áºáá»á¬ážááŒáá·áº á¡áááºážá¡ááŒá áºááŸá áºáá»áá¯ážááŸááááºá
- áááá¯áá¯ááºáá±á¬ááºááŸá¯áá°áá Ạ(CPU) - cores;
- áááºááá¯áá® (MEM) - ááá¯ááºá
ááœááºááááºáá¬áá áºáá¯á á®á¡ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºááŸááºáá¬ážáááºá á¡á±á¬ááºáá« Pod YAML ááá¯ááºááœááºá áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááŸáá·áº ááá·áºáááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážáá«ááŸááá±á¬ á¡áááºážá¡ááŒá áºááá¹áááᯠáááºááœá±á·ááŒááºááááá·áºáááº-
- áá±á¬ááºážááá¯áá¬ážáá±á¬ Pod á¡áááºážá¡ááŒá áºáá»á¬áž = ááœááºááááºáá¬á¡á¬ážáá¯á¶ážá áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬áž áá±á«ááºážá á¯;
- Pod á¡áááºážá¡ááŒá áºááá·áºáááºáá»áẠ= Pod á¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºá¡á¬ážáá¯á¶ážá áá±á«ááºážá á¯á
apiVersion: v1
kind: Pod
metadata:
name: backend-pod-name
labels:
application: backend
spec:
containers:
â name: main-container
image: my-backend
tag: v1
ports:
â containerPort: 8080
resources:
requests:
cpu: 0.2 # REQUESTED CPU: 200m cores
memory: "1Gi" # REQUESTED MEM: 1Gi
limits:
cpu: 1 # MAX CPU USAGE: 1 core
memory: "1Gi" # MAX MEM USAGE: 1Gi
â name: other-container
image: other-app
tag: v1
ports:
â containerPort: 8000
resources:
requests:
cpu: "200m" # REQUESTED CPU: 200m cores
memory: "0.5Gi" # REQUESTED MEM: 0.5Gi
limits:
cpu: 1 # MAX CPU USAGE: 1 core
memory: "1Gi" # MAX MEM USAGE: 1Gi
áá±á¬ááºážááá¯áá¬ážáá±á¬ ááŸáá·áº á¡ááá·áºá¡áááºááŸááá±á¬ á¡áááºážá¡ááŒá áºáá»á¬áž á¥ááá¬
áááºáᬠresources.requested
specification Pod ááẠááá¯áá»ááºáá±á¬ node ááá¯ááŸá¬ááœá±áááºá¡áá¯á¶ážááŒá¯áá±á¬ element áá
áºáá¯ááŒá
áºáááºá áááºážá¡ááœáẠPod ááŒáá·áºáá»ááºááŒááºážááᯠáááºá
á®á
ááºááŒá®ážááŒá
áºáááºá ááá·áºáá»á±á¬áºáá±á¬ node ááá¯áááºáááºááá¯á·ááŸá¬ááœá±ááááºážá
Kubernetes ááœáẠmaster node ááá¯á·ááá¯áẠmaster node (Kubernetes Control Plane) á¡áá«á¡ááẠá¡á áááºá¡ááá¯ááºážáá»á¬ážá áœá¬ áá«áááºáááºá master node ááœáẠáá¯ááºáááºážá ááºáá»á¬ážá áœá¬ ááŸááááº- kube-apiserverá kube-controller-manager ááŸáá·áº kube-schedulerá
kube-scheduler áá¯ááºáááºážá ááºááẠá¡áá áºáááºáá®ážáá¬ážáá±á¬ pods áá»á¬ážááᯠááŒááºáááºáá¯á¶ážáááºáááºááŸáá·áº áá±á¬ááºážááá¯áá¬ážááá·áº á¡áááºážá¡ááŒá áºá¡áá±á¡ááœááºá¡áá«á¡ááẠpod áá±á¬ááºážááá¯ááŸá¯á¡á¬ážáá¯á¶ážááŸáá·áº ááá¯ááºáá®áá±á¬ ááŒá áºááá¯ááºááá·áº worker node áá»á¬ážááᯠááŸá¬ááœá±ááẠáá¬áááºááŸááá«áááºá kube-scheduler ááŸááœá±á·ááŸááá±á¬ node áá»á¬ážá á¬áááºážááᯠá¡ááá·áºáááºááŸááºáá¬ážáááºá pod ááᯠá¡ááŒáá·áºáá¯á¶ážáááŸááºáá»á¬ážááŸáá·áºá¡áá° node ááœááºá á®á ááºáá¬ážáááºá
ááááºážáá±á¬áẠPod ááᯠáááºááŸá¬áá¬ážááá²á
áá¯á¶ááœáẠkube-scheduler ááẠááááºážáá±á¬áẠPod á¡áá áºááᯠá¡áá»áááºááá¬ážááœá²ááá·áºáááºááᯠáááºááœá±á·ááá¯ááºáááºá Kubernetes á¡á á¯á¡áá±ážááœáẠA ááŸáá·áº B ááœáẠnode ááŸá áºáá¯áá«ááŸááááºá áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá kube-scheduler ááẠnode A ááŸá Pod áá áºáá¯á¡á¬áž á¡áá»áááºááá¬ážááœá²ááááá« - áááŸáááá¯ááºáá±á¬ (ááá±á¬ááºážááá¯áá¬ážáá±á¬) áááºážááŒá áºáá»á¬ážááẠááááºážáá±á¬áẠPod ááá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸáá·áº áááá¯ááºáá®áá«á ááá¯á·ááŒá±á¬áá·áº ááááºážáá±á¬áẠPod ááŸáá±á¬ááºážááá¯áá¬ážáá±á¬ 1 GB áááºááá¯áá®ááẠnode A ááœáẠá¡á¶ááááºáá«á áááŸáááá¯ááºáá±á¬áááºááá¯áá®ááŸá¬ 0,5 GB ááŒá áºáááºá áá«áá±ááá·áº node B ááŸá¬ áá¯á¶áá±á¬ááºáá²á·á¡áááºážá¡ááŒá áºááœá±ááŸááá«áááºá ááááºá¡áá±ááŒáá·áº kube-scheduler ááẠááááºážáá±á¬áẠPod á áŠážáááºáá¬ááẠnode B ááŒá áºáááºáᯠáá¯á¶ážááŒááºáááºá
áá±á¬ááºážááá¯áá¬ážáá±á¬áááºážááŒá áºáá»á¬ážááẠPod ááá¯áááºáááºááẠnode ááœá±ážáá»ááºááŸá¯á¡áá±á«áº áááºáá²á·ááá¯á·á¡áá»áá¯ážáááºáá±á¬ááºáááºááᯠááá¯áá»áœááºá¯ááºááá¯á·áááá«áááºá áá«áá±ááá·áº áááŒá áºá áá±á¬áẠá¡áááºážá¡ááŒá áºááœá±áá²á· áááºáá±á¬ááºááŸá¯á áá¬áá²á
á¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºááẠCPU/MEM ááŒááºáá»á±á¬áºááááá±á¬ áááºááááááºáá áºáá¯ááŒá áºáááºá ááá¯á·áá±á¬áºá CPU á¡áááºážá¡ááŒá áºááẠááŒá±á¬ááºážááœááºááŒááºááœááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·á CPU ááá·áºáááºáá»ááºááá¯á·áá±á¬ááºááŸááá±á¬ ááœááºááááºáá¬áá»á¬ážááẠPod ááᯠááœááºáá±á«ááºááŒá áºá á±áááºááá¯ááºáá«á áááºážá¡á á¬ážá CPU ááááºááá¯á·ááŒááºáž á áááºáá«áááºá MEM á¡áá¯á¶ážááŒá¯ááŸá¯ ááá·áºáááºáá»áẠááŒáá·áºááœá¬ážáá«áá OOM-Killer ááŒá±á¬áá·áº ááœááºááááºáá¬ááᯠáááºááá·áºááŒá®áž RestartPolicy áááºáááºá០ááœáá·áºááŒá¯áá«á ááŒááºáááºá áááºáááºááŒá áºáááºá
áá±á¬ááºážááá¯áá¬ážááá·áºááŸáá·áº á¡áá»á¬ážáá¯á¶ážá¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡áá±ážá áááºáá±á¬áºááŒáá¬ážáááºá
Docker ááŸáá·áº Kubernetes á¡ááŒá¬áž á¡áááºážá¡ááŒá áºáááºááœááºáá±áž
á¡áááºážá¡ááŒá áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááŸáá·áº á¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºáá»á¬áž áááºááá¯á·á¡áá¯ááºáá¯ááºááŒá±á¬ááºáž ááŸááºážááŒááẠá¡áá±á¬ááºážáá¯á¶ážáááºážáááºážááŸá¬ Kubernetes ááŸáá·áº Docker á¡ááŒá¬áž áááºáá¶áá±ážááᯠááááºáááºáááºááŒá áºáááºá á¡áááºáá¯á¶ááœáẠKubernetes á¡ááœááºáá»á¬ážááŸáá·áº Docker á áááºááœáá·áºááŒááºážá¡áá¶áá»á¬áž áááºááá¯á·áááºá ááºáááºááᯠáááºááŒááºááá¯ááºáááºá
ááŸááºáá¬ááº- áá±á¬ááºážááá¯ááŸá¯ááŸáá·áº ááá·áºáááºáá»ááº
containers:
...
resources:
requests:
memory: "0.5Gi"
limits:
memory: "1Gi"
á¡áááºááœááºáá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºáž memory ááᯠbytes ááŒáá·áºááá¯ááºážáá¬áááºá áá±á«áºá¡ááŒá±áá¶áᬠG
О Gi
á¡áááááá±á¬á· áá°ááá¯á·áᬠááá®áá»áŸáá°ážááá¯áᬠááááááá¯á·áá«áá²á áááááẠáá¿áááŒá
áºááŒá®áž áá¯áááááŸá¬ ááœáááááºážááŒá
áºáááºá k8s documentation ááœááºáá±á¬áºááŒáá¬ážáá±á¬ á¥ááá¬áá²á·ááá¯á·áááºá 128974848
, 129e6
, 129M
, 123Mi
- áááºážááá¯á·ááẠáááºááœá±á·ááœáẠáá°áá®áááºá
Kubernetes ááœá±ážáá»ááºááŸá¯ limits.memory
á¡áá¶ááŸáá·áºááá¯ááºáá®áááºá --memory
Docker á០á¡ááŸá¯ááá
á¹á
request.memory
Docker ááẠá€á¡ááœááºááᯠá¡áá¯á¶ážáááŒá¯áá±á¬ááŒá±á¬áá·áº Docker á¡ááœáẠáá»áŸá¬ážáááŸááá«á áá«áá±á¬áẠááá¯á¡ááºááá¯á·áá¬ážááá¯á· áá±ážááá¯ááºáá«áááºá áá¯ááºááẠááá¯á¡ááºáááºá á¡áááºáááŒá±á¬áá²á·áááá¯áá²á áááºáááºá Kubernetes á¡ááœáẠá¡áá±ážááŒá®ážáááºá áááºážááŸá¡áá»ááºá¡áááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á kube-scheduler ááẠPod ááá¯á¡áá»áááºááá¬ážááœá²ááẠáááºááá·áº node ááá¯áá¯á¶ážááŒááºáááºá
áá±á¬ááºážááá¯áá»ááºáá áºáá¯á¡ááœáẠááŸááºáá¬ááºááá¯á¶áá±á¬ááºáá«á áááºááá¯á·ááŒá áºáááºáááºážá
ááœááºááááºáá¬ááẠáá±á¬ááºážááá¯áá¬ážááá·áº áááºááá¯áá®á ááá·áºáááºáá»ááºááá¯á· áá±á¬ááºááŸáááœá¬ážáá«áá áá±á«á·ááºááᯠnode ááœáẠáá¯á¶áá±á¬ááºáá±á¬ááŸááºáá¬ááºáááŸáááá·áºá¡áá« áááºááœá¬ážááá·áº Pods á¡á¯ááºá á¯ááœáẠáá¬ážááŸááááºááŒá áºáááºá
áááºááá¯áá®ááá·áºáááºáá»áẠá¡ááœááºáááºážáá«á áááºááá¯á·ááŒá áºáááºáááºážá
ááœááºááááºáá¬ááẠáááºááá¯áá®ááá·áºáááºáá»ááºáááºáá»á±á¬áºááœááºáá«á OOM-Killed ááŒá±á¬áá·áº áááºážááᯠáááºá
á²ááœá¬ážáááºááŒá
áºáááºá áá°ááááºááá¯ážááŸáááá·áº RestartPolicy ááá¯á¡ááŒá±áá¶á ááŒá
áºááá¯ááºáá«á ááŒááºáááºá
áááºáá«áááºá Always
.
áá±á¬ááºážááá¯áá¬ážáá²á· memory ááᯠááááºááŸááºááẠáá¬ááŒá áºááá²á
Kubernetes ááẠááá·áºáááºáááºááá¯ážááᯠáá°áᬠáá°áááºážáááºááá¯ážá¡ááŒá ẠáááºááŸááºáááºááŒá áºáááºá
áááºááá¯áá®ááá·áºáááºáá»ááºááᯠááááºááŸááºáá«á áá¬ááŒá áºááá¯ááºááá²á
ááœááºááááºáá¬ááœáẠááá·áºáááºáá»ááºáááŸááá«á áááºážááẠáááºááá¯áá®ááᯠá¡ááá¯ááŸáááá±á¬áẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡áááºá áá°ááẠnode ááááá¯ááºáá±á¬ memory á¡á¬ážáá¯á¶ážááá¯á áááºá¡áá¯á¶ážááŒá¯áá«á OOM áááºáá°á·ááá¯áááºáááá·áºáááºá ááá¯á·áá±á¬áẠRestartPolicy ááᯠá¡ááŒá±áá¶á ááŒá áºááá¯ááºáá«á ááœááºááááºáá¬ááᯠááŒááºáááºá áááºáá«áááºá
áááºááá¯áá®ááá·áºáááºáá»áẠááááºááŸááºááẠáá¬ááŒá áºááá²á
á€áááºááŸá¬ á¡ááá¯ážáá¯á¶ážá¡ááŒá±á¡áá±ááŒá áºáááº- á¡áá»áááºááá¬ážááœá²áá°ááẠááœááºááááºáá¬ááœáẠá¡áááºážá¡ááŒá áºáááºáá»áŸááá¯á¡ááºáááºááᯠááááá²á áááºážááẠnode ááœáẠááá¯ážááœá¬ážáá±á¬ááŒá¿áá¬áá»á¬ážááᯠááŒá áºá á±ááá¯ááºáááºá á€ááá á¹á ááœááºá namespace (LimitRange á¡á¬ážááŒáá·áºáááºááŸááºáááº) ááœááºáá°áááá·áºáááºáá»ááºáá»á¬ážááŸááááºáá±á¬ááºážáááá·áºáááºá áá¯á¶áá±ááá·áºáááºáá»ááºáá»á¬ážáááŸááá« - Pod ááẠá¡ááá·áºá¡áááºáááŸáá áááºážááẠááá¯áá»ááºááá±á¬áẠmemory ááá¯á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
áá±á¬ááºážááá¯áá¬ážáá±á¬ááŸááºáá¬ááºááẠnode ááŸáá±ážáá±á¬ááºááá¯ááºáá±á¬ááá¬ááááºááá¯áá«á Pod ááá¯á
á®á
ááºáááºááá¯ááºáá«á á¡á²áá«ááᯠááŸááºáá¬ážááá¯á· á¡áá±ážááŒá®ážáááºá Requests.memory
- á¡áááá·áºáá¯á¶ážáááºááá¯ážááá¯ááºáá«á á€á¡áá¬ááẠááœááºááááºáá¬ááᯠá
ááºáááºáááŒááºáááºáááºáá±á
á±ááẠáá¯á¶áá±á¬ááºáá±á¬ memory ááá¬áá áá±á¬áºááŒáá»ááºááŒá
áºáááºá
áááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº áá°áá®áá±á¬áááºááá¯ážááᯠáááºááŸááºááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá request.memory
О limit.memory
. áááºážááẠKubernetes ááẠPod ááá¯áááºáááºááẠáá¯á¶áá±á¬ááºáá±á¬ memory áá«ááá·áº node áá
áºáá¯áá±á«áºááœáẠPod áá
áºáá¯ááᯠá¡áá»áááºááá¬ážááœá²áááºááá¯ááºáá±á¬áºáááºáž áááºážááá¯áááºáááºáááºááá¯á¶áá±á¬ááºááŒá±á¬ááºážáá±áá»á¬á
á±áááºá ááŸááºáá¬ážáá¬ážáá«- Kubernetes Pod á¡á
á®á¡á
ááºáá±ážááœá²ááŒááºážáááºáᬠááá·áºááœááºážá
ááºážá
á¬ážáá«áááºá requests.memory
ááŸáá·áº limits.memory
á¡áá±á¬áá·áºáá²ááá¯á·ááá·áºááá¬ážáá°ážá
CPU- áá±á¬ááºážááá¯áá»ááºááŸáá·áº ááá·áºáááºáá»ááº
containers:
...
resources:
requests:
cpu: 1
limits:
cpu: "1200m"
CPU áá²á·ááᯠá¡áá¬á¡á¬ážáá¯á¶ážá áááºážáááºážááá¯ááŸá¯ááºááœá±ážáá«áááºá Kubernetes ááŸáá·áº Docker á¡ááŒá¬áž áááºáá¶áá±ážáá¯á¶ááá¯á· ááŒááºááœá¬ážáá±á¬á¡áá« áááºážááᯠáááºááœá±á·ááŒááºááá¯ááºáááºá request.cpu
ááá¯ááºáá® --cpu-shares
áá±á¬áºáááºáž limit.cpu
á¡áá¶ááŸáá·áºááá¯ááºáá®áááºá cpus
Docker ááœááºá
Kubernetes áá±á¬ááºážááá¯áá±á¬ CPU ááᯠCPU áááºáááºááŸá¯á¡áá»áá¯ážá¡á
á¬áž 1024 ááŒáá·áº ááŒáŸá±á¬ááºáá¬ážáááºá core á¡ááŒáá·áº 1 ááᯠáá±á¬ááºážááá¯ááá¯áá«á ááá·áºááá«áááºá cpu: 1
á¡áááºááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážá
kernel á¡ááŒáá·áºá¡á á¯á¶ (á¡áá»áá¯áž = 1024) áá±á¬ááºážááá¯ááŒááºážááẠááá·áºááœááºááááºáá¬ááᯠáááºáá¶áááŸááááºáᯠáááá¯ááá¯áá«á á¡áááºá ááá·áºá¡áááºááŸááºá ááºááœáẠcore áá áºáá¯áá¬ááŸáááŒá®áž áááºááẠááœááºááááºáá¬áá áºáá¯áááºááá¯á áá¯ááºáá±á¬ááºáá±áá«áá ááœááºááááºáá¬áá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºážááá¯á·ááŒá¬ážááœáẠáááŸáááá¯ááºáá±á¬ CPU ááᯠáá»áŸáá±ááááºááŒá áºáááºá áá«á áááºááá¯ááŒá áºáá¬áá²á áá¯á¶ááá¯ááŒáá·áºááá¯ááºáá¡á±á¬ááºá
CPU áá±á¬ááºážááá¯ááŸá¯ - Single Core á
áá
áº
ááá·áºááœáẠsingle-core host á áá áºááŒáá·áº ááœááºááááºáá¬áá»á¬áž áááºáááºáá±áá¯á¶ááᯠá áááºáá°ážááŒáá·áºááŒáá«á áá¯á·á á¡áá± (Kubernetes) ááẠáá®áá® (CPU) ááᯠáá¯ááºááŒá®áž ááá±ážáá»á¬áž (ááœááºááááºáá¬áá»á¬áž) á¡ááŒá¬áž ááœá²áá±ážááá¯áááºá ááá±ážáá¯á¶ážáá±á¬ááºá áá¯áá·áºáá¯á¶ážáá áºáá¯á¶ážááá¯áá»ááºááẠ(á¡áá»áá¯áž = 1024)á áá±á¬ááºááá±ážá áá®áá¶áá áºááẠ(512) ááá¯áá»ááºáááºá á¡áá±á ááá¬ážáá»áŸáááŒá®áž ááá¯ážááŸááºážáá²á· ááœááºáá»ááºááŸá¯ááᯠááá¯áá»ááºáááºá
# СкПлÑкП пОÑПгПв Ñ
ПÑÑÑ ÐŽÐµÑО?
# 3 ÑебеМка Ñ
ПÑÑÑ Ð¿ÐŸ ÑÐµÐ»ÐŸÐŒÑ Ð¿ÐžÑÐŸÐ³Ñ Ðž еÑе ПЎОМ Ñ
ПÑÐµÑ Ð¿ÐŸÐ»ÐŸÐ²ÐžÐœÑ Ð¿ÐžÑПга
cakesNumberKidsWant = (3 * 1) + (1 * 0.5) = 3.5
# ÐÑÑажеМОе пПлÑÑаеÑÑÑ Ñак:
3 (ÑебеМка/кПМÑейМеÑа) * 1 (ÑелÑй пОÑПг/пПлМПе ÑÐŽÑП) + 1 (ÑебеМПк/кПМÑейМеÑ) * 0.5 (пПлПвОМа пОÑПга/пПлПвОМа ÑÐŽÑа)
# СкПлÑкП пОÑПгПв ОÑпеÑеМП?
availableCakesNumber = 1
# СкПлÑкП пОÑПга (ЌакÑОЌалÑМП) ЎеÑО ÑеалÑМП ЌПгÑÑ Ð¿ÐŸÐ»ÑÑОÑÑ?
newMaxRequest = 1 / 3.5 =~ 28%
ááœááºáá»ááºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶á ááá±ážáá¯á¶ážáŠážááẠá¡á°ááá¯ááºá 28% áááŸááááºááŒá áºááŒá®áž á¡á°ááá¯ááºáá áºáá¯áá¯á¶ážááá¯ááºáá±á á áá¯áá¹áááá±ážááẠáááºáááºááá¯ááºáá² áá¬áááºá¡ááŒáá·áºá 14% áááŸááááºááŒá áºáááºá áá«áá±ááá·áº Multi-Core á áá áºáá áºáá¯ááŸááááºáá±á¬á· ááœá²ááŒá¬ážááœá¬ážááŸá¬áá«á
CPU Request - Multi-Core (4) á
áá
áº
á¡áá±á«áºááá¯á¶ááŸá¬ ááá±ážáá¯á¶ážáá±á¬ááºá áá¯áá·áºáá¯á¶ážááá¯áá»ááºááŒá®áž áá áºáá±á¬ááºá áá áºáááºááá¯áá»ááºáá¬ááᯠááœá±á·ááá¯ááºáá«áááºá áá±áá±á áá®áá¬áá±ážáá¯á¶áž áá¯ááºáá²á·á¡ááœáẠáá¬ážááá®ážááá¯ááºáž ááá¯áá»ááºááá±á¬áẠáá»á¬ážáá»á¬ážááááá·áºáááºá Multi-core á áá áºááœáẠáááá¯áááºáá¬á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááŸáááá¯ááºáá±á¬ áááá¯áááºáᬠcores á¡á¬ážáá¯á¶ážááᯠááŒáá·áºáá±áá«áááºá ááœááºááááºáá¬áá áºáá¯ááẠCPU core áá áºáá¯áááºáááºážáá±á¬ ááá·áºáááºáá¬ážáá«á áááºážááᯠ100% ááœáẠáááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
á¡áááºáá±á¬áºááŒáá« ááœááºáá»ááºááŸá¯áá»á¬ážááẠCPU ááᯠááœááºááááºáá¬áá»á¬ážááŒá¬ážááœáẠáááºááá¯á·ááŒáá·áºáá±áááºááᯠáá¬ážáááºááẠááá¯ážááŸááºážáá«áááºá áá¯ááºáá«áááºá ááœááºááááºáá¬áá»á¬ážááá¯ááºááá¯ááºá¡ááŒááºá CPU á¡áááºážá¡ááŒá
áºáá»á¬ážááá¯áááºáž á¡áá¯á¶ážááŒá¯ááá·áº á¡ááŒá¬ážáá±á¬ áá¯ááºáááºážá
ááºáá»á¬ážáááºáž ááŸááá±ážáááºá ááœááºááááºáá¬áá
áºáá¯ááŸá áá¯ááºáááºážá
ááºáá»á¬ážááẠá¡áá¯ááºááá¯ááºáá±á¬á¡áá«á á¡ááŒá¬ážáá°áá»á¬ážá áááºážáá¡áááºážá¡ááŒá
áºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá CPU: "200m"
ááá¯ááºáá® CPU: 0,2
ááá¯ááá¯áááºááŸá¬ core áá
áºáá¯á 20% ááá·áºááᯠááá¯ááá¯áááºá
áá² á¡ááŒá±á¬ááºážááŒá±á¬ááŒáá¡á±á¬áẠlimit.cpu
. Kubernetes ááá·áºáááºáá¬ážáá±á¬ CPU ááᯠ100 ááŒáá·áº ááŒáŸá±á¬ááºáá¬ážáááºá ááááºááŸá¬ ááœááºááááºáá¬ááẠ100 µs ááá¯ááºáž á¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡áá»áááºááá¬á (cpu-period
).
limit.cpu
Docker á¡áá¶ááŸáá·áº ááá¯ááºáá®áááºá --cpus
. áá«á á¡áá±á¬ááºáž áá±á«ááºážá
ááºááŸá¯ á¡áá
áºáá«á --cpu-period
О --cpu-quota
. áááºážááᯠáááºááŸááºááŒááºážááŒáá·áºá ááááºááá¯á·ááŒááºážáá
áááºáá® ááœááºááááºáá¬ááœáẠááœááºááááºáá¬ááœáẠá¡áá»á¬ážáá¯á¶ážá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áááŸáááá¯ááºáá±á¬ CPU á¡áááºážá¡ááŒá
Ạáááºáá»áŸááŸááááºááᯠáá»áœááºá¯ááºááá¯á·ááœáŸááºááŒáááº-
- cpus - áá±á«ááºážá
ááº
cpu-period
Оcpu-quota. cpus = 1.5
setting ááŸáá·áºáá®áá»áŸáááºácpu-period = 100000
Оcpu-quota = 150000
; - CPU-áá±áẠ- áá¬á
CPU CFS á¡áá»áááºááá¬áž áá¯á¶áá± 100 ááá¯ááºáááá¯á áá¹ááá·áºá - cpu-ááœá²áááºáž - á¡ááœááºážá០ááá¯ááºáááá¯á
áá¹ááá·áº á¡áá±á¡ááœááº
cpu-period
ááœááºááááºáá¬ááŒáá·áº ááá·áºáááºáá¬ážáááºá
áá±á¬ááºážááá¯áá¬ážáá±á¬ CPU ááá¯á¶áá±á¬ááºáá«á áááºááá¯á·ááŒá áºáááºáááºážá
ááœááºááááºáá¬ááẠáááºážááœááºááá·áºááœááºážáá¬ážáááºááẠááá¯ááá¯ááá¯á¡ááºáá«áá áááºážááẠCPU ááᯠá¡ááŒá¬ážáá¯ááºáááºážá ááºáá»á¬ážá០ááá¯ážáá°áááºááŒá áºáááºá
CPU ááá·áºáááºáá»áẠá¡ááœááºáááºážááẠáá¬ááŒá áºááá²á
CPU áááºážááŒá áºááᯠáá»áááºááŸáááá¯ááºáá±á¬ááŒá±á¬áá·áº á¡ááá·áºá¡áá¬ážááŒá¯áá¯ááºááŒááºážááᯠááœáá·áºáá«áááºá
CPU áá±á¬ááºážááá¯áá»ááºááᯠááááºááŸááºáá«á áá¬ááŒá áºááá²á
áááºááá¯áá®áá²á·ááá¯á·áááºá áá±á¬ááºážááá¯áá»ááºáááºááá¯ážááẠááá·áºáááºáá»ááºááŸáá·áº áá®áááºá
CPU ááá·áºáááºáá»ááºááᯠááááºááŸááºáá«á áá¬ááŒá áºááá²á
ááœááºááááºáá¬ááẠááá¯á¡ááºááá±á¬áẠCPU ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá áºáááºá áá°áááºáž CPU áá±á«áºáá á® (LimitRange) ááᯠnamespace ááœáẠáááºááŸááºáá«áá á€ááá·áºáááºáá»ááºááᯠááœááºááááºáá¬á¡ááœááºáááºáž á¡áá¯á¶ážááŒá¯áá«áááºá
áá±á¬ááºážááá¯áá»ááºáá áºáᯠááá¯á·ááá¯áẠCPU ááá·áºáááºáá»ááºááᯠáááºááááºááŸááºáá«á áááºááá¯á·ááŒá áºáááºáááºážá
ááŸááºáá¬ááºáá²á·ááá¯á·áááºá á€áááºááŸá¬ á¡ááá¯ážáá¯á¶ážá¡ááŒá±á¡áá±ááŒá áºáááºá á¡áá»áááºááá¬ážááœá²áá°ááẠááá·áºááœááºááááºáá¬á¡ááœáẠáááºážááŒá áºáááºáá»áŸááá¯á¡ááºáááºááᯠááááá«á áááºážááẠnode ááœáẠááá¯ážááœá¬ážáá±á¬ááŒá¿áá¬áá»á¬ážááᯠááŒá áºá á±ááá¯ááºáááºá áááºážááá¯ááŸá±á¬ááºááŸá¬ážáááºá namespaces (LimitRange) á¡ááœáẠáá¯á¶áá±ááá·áºáááºáá»ááºáá»á¬ážááᯠáááºáááºááŸááºáááºááá¯á¡ááºáááºá
áááááá«- áááºááẠnode áá»á¬ážáá±ážá
áœááºážááá¯ááºáá±á¬ CPU áááºááá¯ááá¯áá±á¬ááºážááá¯áá«á Pod ááá¯á
á®á
ááºáááºááá¯ááºáá«á Requests.cpu
- á¡áááá·áºáá¯á¶ážáááºááá¯ážááá¯ááºáá±á¬áºáááºáž Pod ááá¯á
áááºá áá¡á±á¬ááºááŒááºáá²á¡áá¯ááºáá¯ááºáááºáá¯á¶áá±á¬ááºáá±á¬áááºááá¯ážá á¡áááºá á¡ááá®áá±ážááŸááºážááẠááŸá¯ááºááœá±ážáá±á¬ááœááºáá»ááºááŸá¯áá»á¬ážááᯠááá¯ááºáá±á¬ááºáá«áá á¡áá±á¬ááºážáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ ááá·áºááœááºážáááºááŒá
áºáááºá request.cpu <= 1
ááŒá®ážáá»áŸáẠááá¯á¡ááºáááᯠáá¯á¶áá°áá»á¬ážá
áœá¬ááᯠááœáá·áºáá«á
áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬áž ááá¯á·ááá¯áẠá¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºá á á¶ááŒááá¬á
ááœááºááŒá°áá¬áááºážááŒá áºáá»á¬ážá ááá·áºáááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºážááᯠáá»áœááºá¯ááºááá¯á· áá±á·áá¬áá²á·áááºá ááá¯áá±ážááœááºážááá¯ááŒá±áááºá¡áá»áááºáá±á¬ááºááŒá®- "ááŒá¿áá¬áááŸááá²á¡ááá®áá±ážááŸááºážááá¯ááœáá·áºáááºáá»áœááºá¯ááºá Pod ááẠá¡áááºážá¡ááŒá áºáááºáá»áŸááá¯á¡ááºááááºážá á á¶ááŒááá¬áá áááºáá±á¬ááºáá²á
áá¶ááá±á¬ááºážá áœá¬ááŒáá·áºá á€áá±ážááœááºážáá»á¬ážá¡ááœáẠááŸááºážááŸááºážáááºážáááºáž á¡ááŒá±áááŸááá«á ááá·áºá¡ááá®áá±ážááŸááºážáááºáááºááá¯á·á¡áá¯ááºáá¯ááºáá¯á¶ ááá¯á·ááá¯áẠCPU ááá¯á·ááá¯áẠmemory áááºáá»áŸááá¯á¡ááºáááºááᯠáááºááááá«áá á¡áá±á¬ááºážáá¯á¶ážááœá±ážáá»ááºááŸá¯ááŸá¬ á¡ááá®áá±ážááŸááºážá¡á¬áž memory ááŸáá·áº CPU á¡áá»á¬ážá¡ááŒá¬ážáá±ážááŒá®ážáá±á¬áẠá áœááºážáá±á¬ááºáááºá á áºáá±ážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºááŒá áºáááºá
á áœááºážáá±á¬ááºáááºá á áºáá±ážááŸá¯áá»á¬ážá¡ááŒááºá áá áºáááºááŒá¬á á±á¬áá·áºááŒáá·áºááŒááºážááœáẠá¡ááá®áá±ážááŸááºážáá¡ááŒá¯á¡áá°ááᯠá á±á¬áá·áºááŒáá·áºáá«á á¡áááºá ááá·áºá¡ááá®áá±ážááŸááºážááẠáááºáá±á¬ááºážááá¯áááºááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºážáá«ážá áœá¬á á¬ážáá¯á¶ážááŒá±á¬ááºáž ááááºáá»á¬ážá áá±á¬áºááŒáá«áá áááºááẠáá±á¬ááºážááá¯áá¬ážáá±á¬ CPU ááá¯á·ááá¯áẠmemory ááá¬áááᯠáá»áŸá±á¬á·áá»ááá¯ááºáááºá
á¥ááá¬á¡áá±áá²á· áá«ááá¯ááŒáá·áºáá«á
áá±á¬ááºáá»ááº
á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá±á¬ááºážááá¯ááŒááºážááŸáá·áº ááá·áºáááºááŒááºážááẠáááºá Kubernetes á¡á á¯á¡áá±ážááᯠáá»ááºážáá¬á á±áá«áááºá ááá·áºáá»á±á¬áºáá±á¬ ááá·áºáááºááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááẠáá¯ááºáá»á ááááºáá»á¬ážááᯠáá»á±á¬á·áááºážá á±ááŒá®áž á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠá¡áá»áááºááá¯ááºážáááºáááºáá±á á±áá«áááºá
á¡ááá¯áá»á¯ááºá¡á¬ážááŒáá·áºá ááŸááºáá¬ážáá¬ážáááá·áºá¡áá»ááºá¡áá»áá¯á·ááŸááá«áááºá
- áá±á¬ááºážááá¯áá¬ážáá±á¬áááºážááŒá áºáá»á¬ážááẠá áááºáá»áááºá ááá·áºááœááºážááœááºáá»ááºáá¬ážáá±á¬ ááœá²á·á ááºážááŸá¯áá áºáá¯ááŒá áºááẠ( Kubernetes ááẠá¡ááá®áá±ážááŸááºážááᯠáááºáá¶áá»ááºážáááẠá á®á ááºááá·áºá¡áá«)á ááá·áºáá»ááºáááºá¡á¬ážááŒáá·áºá á¡ááá®áá±ážááŸááºážááẠnode áá±á«áºááœááºáááºáááºáá±áá±á¬á¡áá«ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá·áºáááºááŒááºážááẠá¡áá±ážááŒá®ážáá«áááºá
- áááºááá¯áá®ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á CPU ááẠááááºážáá»á¯ááºáá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá áºáá¯ááŒá áºáááºá CPU á¡áá¯á¶á¡áá±á¬ááºáááŸááá«áá áááºá Pod ááẠááááºááœá¬ážáááºááŒá áºááŒá®áž throttling ááá¹ááá¬ážááᯠááœáá·áºáá«áááºá
- áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááŸáá·áº á¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºááẠá¡áááºážáá¯á¶ážááŸáá·áº á¡ááŒáá·áºáá¯á¶ážáááºááá¯ážáá»á¬áž ááá¯ááºáá«á áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáááºááŸááºááŒááºážááŒáá·áºá á¡ááá®áá±ážááŸááºážááẠááŒá¿áá¬áááŸááá² áááºáááºáá±áááºááᯠáá±áá»á¬áá«áááºá
- á¡áá±á·á¡áá»áá·áºáá±á¬ááºážáá áºáá¯ááẠmemory áá±á¬ááºážááá¯ááŸá¯ááᯠmemory limit ááŸáá·áºáá®á¡á±á¬ááºáááºááŸááºáááºááŒá áºáááºá
- Ok install áá±á¬ááºážááá¯áá¬ážáááºá
CPU <=1
á¡ááá®áá±ážááŸááºážááẠááŸá¯ááºááœá±ážáá±á¬ ááœááºáá»ááºááŸá¯áá»á¬ážááᯠááá¯ááºáá±á¬ááºáá«áá - á¡áááºá áááºááẠnode áá áºáá¯ááœááºáááŸáááá¯ááºáááºááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááá¯ááá¯áá±á¬ááºážááá¯áá«á Pod ááᯠááᯠnode ááá¯á· áááºááá·áºá¡áá«á០á á®á ááºáááºááá¯ááºáá«á
- áá±á¬ááºážááá¯áá¬ážáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬áž/á¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºáá»á¬ážá ááŸááºáááºáá±á¬ááá¬áááᯠáá¯á¶ážááŒááºáááºá áááºá ááºážáááºááŒááºážááŸáá·áº á á±á¬áá·áºááŒáá·áºááŒááºážááᯠá¡áá¯á¶ážááŒá¯áá«á
á€áá±á¬ááºážáá«ážááẠá¡áááºážá¡ááŒá áºááá·áºáááºáá»ááºá á¡ááŒá±áá¶ááá±á¬ááá¬ážááᯠáá¬ážáááºááẠáá°áá®áá±ážáááºáᯠáá»áŸá±á¬áºááá·áºáá«áááºá ááŒá®ážáá±á¬á· áá®á¡ááááá¬ááᯠáááºážá¡áá¯ááºááŸá¬ á¡áá¯á¶ážáá»ááá¯ááºáááá·áºáááºá
áá¶áá±á¬ááºážáá«á á±!
áá±á¬ááºáááºáááºá áá¬áá»á¬áž
SRE Observability- Namespaces ááŸáá·áº Metric Structure .Kubernetes á¡ááœáẠá¡áá¯á¶ážáááºáá±á¬ áááááᬠ90+- ááŒáá·áºáá»ááºááŒááºážá á á®áá¶ááá·áºááœá²ááŒááºážá á á±á¬áá·áºááŒáá·áºááŒááºážá áá¯á¶ááŒá¯á¶áá±ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬áž .Telegram ááŸá Kubernetes áááºážáá»ááºááœáẠáá»áœááºá¯ááºááá¯á·ááá»ááºááẠ.
source: www.habr.com