á°áá ááá˝áá! áľá Oleg Sidorenkov áĽáŁááá, DomClick ááľáĽ áĽáá° á¨áá á¨á° áááľ áĄáľá á᪠áĽá°áŤáá. á¨áśáľáľ á ááłáľ á áá áá˝áŤá ᨠCube á áĽá¨á°á ááá áá á, áĽá á áá áá ááľáĽ áĽá á¨á°ááŤáŠ á áľá°áłá˝ áááá˝á á ááĽááá. áᏠáĽáááááłáá ᣠá áľááááá á ááŤá¨áĽ ᣠá¨áŤáá áŠá áááľáľ ááááľá°áá á¨á áá á ááááá áĽáá´áľ áĽáá°áááᢠááá áá!
áŠá áááľáľ ááŽáá´ááá áŚááŹáľáľáŤ áá°á á¨áá˝á áááľ ááá áľáááľ áááá ááá˝áá á á°áἠáłáááá˝áᢠáĽáŠáŁ ááá 5 á¨áááľáŽá˝ á áááááľ á¨áááᎠá°ááŞáľáá á¨á áááľ áĄá°áľ á á áááá á áŤáŁá˘ á ááľá°áłá°á á áľááľ á¨áá°áŠá˘ á á°á¨ááŞá, áá áá°ááŤáŠ áľáŤáá˝ á¨áá°ááá ááá ááľ áĽáá° Lego ááᢠáááŁá á á¨áá˝á á°ááŁáŁá á°áááá ááłáŞáŤ áá.
áĽá ááá ááá áĽáŠ áááľáá: á ááááŽá˝á áá° áááľá°á, áĽáá° áááś áá° áááś áłáĽá ááľáĽ ááĽá, áĽá áááá á áŤááá. áá áá áŤáŁá˘á á¨ááá ᣠâáĽáłáľá á ááľá ááľáĽ áĽáá´áľ ááá¨áľ áĽá áŤáŤáá áá¸á¸áľ á¨áá˝áá áĽáá´áľ áá?â áĽáá áŤáľáŁáᢠá áá á áááá áá á¨á° áááľá áááťáťá áĽá ááŞáá˝á áááááľ ááááśá˝á áĽáá´áľ áááá áĽáá°ááťáá˘
1. á¨áĄáľá áĽá á¨áá°áá áŞáŤ ááĽáśá˝á áá¨áłá°á
á áŁá áŁáá áá áá¤áłá á¨áá áá´áá˝ á ááą á¨áĽáŤááá˝/áá°áŚá˝ ááá˘áŤ ááᢠáá°áá áŞáŤáá˝á á áľá áŚáłáá˝áŁ áĽá á¨áľá áŚáłáá˝á á áááľ áĄáľáá˝ áááŠá˘ áá áááŁáŁáŞ áá áŁááá᪠áŁááááŤá áá¨ááť áááł áááá˝á á¨áá°ááŤáľá á ááľ áá°áá áŞáŤáá áŤáááĽáŠá˘
resources:
requests:
memory: 2Gi
cpu: 250m
limits:
memory: 4Gi
cpu: 500m
á ááᾠᣠáá°áá°á፠áá á°áá°áá-á¨áá°áŚá˝ áĽáŤááá˝á á¨áááľ áá á áá áá¨áá áá á¨áááᢠá¨áááľá°á áá á á áĽáŤááá˝ áá á°ááľááś áá°áá áĽá á¨ááĽáśá˝á ááŠááľ ááá°áá áŞáŤáá˝ áááłá á¨5-10 áá áŤááá áłá˛áŤ ááľááá ááááľá á ááłáá˝ á˛áá áĽá á áľáááľ áááľ á˛áá á áá áĽáá°ááá á áľáĄáľ . ááá áĽáŠ ááá á¨ááᢠá˘áŤááľ, áľáŽáľá áĽá á¨áá°áá, áá áŤá°áá á°á á áá áá á áĽá ááľááš ááááłááľ á¨ááአá áá á á°ááŠáľ á áááá˝ áá á¨áłááá áááľ áŤáá.
á á°á¨ááŞá, á áĽááłáł limitranges
ááááŞáŤ áá áááŤáŁá á¨ááĽááľ áááá˝á áááááľ áá˝áá - áá
á°á ᣠá¨áá°á áĽá ááŁáŞ
â ~ kubectl describe limitranges --namespace ops
Name: limit-range
Namespace: ops
Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio
---- -------- --- --- --------------- ------------- -----------------------
Container cpu 50m 10 100m 100m 2
Container ephemeral-storage 12Mi 8Gi 128Mi 4Gi -
Container memory 64Mi 40Gi 128Mi 128Mi 2
á ááľ áľááá áááá á¨áááľá°á ááĽá¨áśá˝á ááá°áľ áĽááłáá˝á á¨áľá áŚáł ááĽáśá˝á ááá°áĄá áŤáľáłááąáĄ
â ~ kubectl describe resourcequotas --namespace ops
Name: resource-quota
Namespace: ops
Resource Used Hard
-------- ---- ----
limits.cpu 77250m 80
limits.memory 124814367488 150Gi
pods 31 45
requests.cpu 53850m 80
requests.memory 75613234944 150Gi
services 26 50
services.loadbalancers 0 0
services.nodeports 0 0
á¨ááááŤá áĽáá°ááłá¨á resourcequotas
á¨áŚááľ áľááá áá 10 á˛áአá¨áá á ááľáá˝á áá°ááŤáľ á¨ááá á¨áá á°ááł á áľááá áĽáá˛á°áŤ á ááá
áľá áĽá áľá
á°áľ áŤááŁáá˘
Error creating: pods "nginx-proxy-9967d8d78-nh4fs" is forbidden: exceeded quota: resource-quota, requested: limits.cpu=5,requests.cpu=5, used: limits.cpu=77250m,requests.cpu=53850m, limited: limits.cpu=10,requests.cpu=10
á°ááłáłá á˝áá ááááłáľ, á ááľ ááłáŞáŤ ááťá áá˝áá, áááłá, áĽáá°
2. áááĄá á¨ááá áá¨ááť ááá¨áĄ
áĽáá á¨áá áĽáŤáá˝ áááľ áĽá ᨠKubernetes á°áŤá°á á áááá˝ á¨á˛áľá áááľ áľáááľá áááŤáľ áĽáááááᢠááá á°á "Cube" á HDD áá á áááľ áá áĽáá°ááá áá á°áľá á á°áááá, ááá áá á ááłááľ áá áá°á á á¤áľá¤áľá˛ áĽááłá á á á áá°áá. áĽá áĽáá°áá áŤá á˝áá á ááĽááá áááἠááľáłááťáá˝ á˛áľáŠá á I / O áŚááŹá˝áá˝ áĽá¨áá°ááľ áá á ᣠáĽá áĽáá áĽá áááľááá˝ á¨áá
-
á¨áá°á á ááťá¸á áŤáá¸áá á¤áľá¤áľá˛áá˝ á°á áá ááá áá° NVMe ááá (á¨áŤáľá á áááľáá á¨ááłáľá°áłáľá á¨áá)á˘
-
á¨ááá˘áŤ á°á¨áá ááááą.
-
á˛áľáŠá á¨áá°áአááśá˝á "áĽááĽ" áááŁá á áŤáľáá (
podAntiAffinity
).
á¨áá áŤáá á á˝á áłá áá˝ áĽááł á nginx-ingress-controller áľá ᨠaccess_logs áááἠááľáłááť á˛áá á¨á˛áľá áá áá áĽáá°ááá á áŤáłáŤá (~12k logs/sec)ᢠá áĽááἠáĽáá˛á ááááą áááł á áá ááľááá ááááľ áá áŤááľá áááá á áááŹá˝áá˝ áá° áá áľá áľ ááŤá፠áá˝áá.
áľá PV ᣠáᎠᣠáááá ááá á ááá¨ááŠáá˘
3. á¨á°ááťáš ááľáá˝á ááááĄ
áŠá áááľáľ á ááĽááľ áĽáá˛áŤááŁá¸á áĽá á áĽááľ áĽáá˛áá˝á á ááŤáŁ á¨á°ááťáš ááľáá˝á áá áá áĽáŠ ááá˘
áááťá¸áľ áááľ ááľáá˝áĄ-
-
á ááľ áá°áá áŞáŤ áĽáť ááŤá ááá á ááľ á°ááŁá áĽáť áá¨ááá;
-
áľáá˝ áá á, ááááŤáąá áľááá ááľáá˝ á á ááłá¨ áá¨áĄ áá á¨á¨á áľááá°ááá;
-
áá¤á áĽá áááááľ áá°áťáá˝ á¨áá¨á¨áť ááĽáŚá˝ á áá¸á ᣠá áá á Kubernetes á áĽá¨ááľ áá á ááłááľ áĽááááá˝á áááľáľ áá˝áá áŁ
-
á¨áá á¨áľ áľá á°áśá˝á á¨á áá á¨áááá áááŤáŁ á°áľáá áŚááŹá˛áá á˛áľá°áá˝ (áĽáá° á áááá ááá áŽááŚá¤áľ) áá ááá˘
-
á¨á°ááá á áááŹá˝áá˝á áĽáť áĽáá á°ááłá áááŽá˝á áá°ááŤáľ áĽááľáľá˝á áŁááĽá á°á¨á áááŁáłáá˝á á°á ááá˘
á á á¨áŤ áá ááľáá˝á áááá°á˝ áĽá ááááťá¸áľ á¨ááŤáľá˝áááľ áĽá ááłáŞáŤáá˝ áĽá á áááááśá˝ á áᢠáááá áĽááąá áá áłá áĽá á°á áááą á¨á°á á á ááľá¨á á áľááá áá. á áá¤áąá, á¨áá¨á°ááľá áŤááá:
-
á á á ááá ááá áá á¨á ááłá¨ áá¨áĽ áááľ áááˇáá˘
-
á¨ááŤáŁ á áá áá áááˇáá˘
-
á¨ááá á¨áśáá°á ááááĽá áľáá˝ áá áá˘
4. á¨á˛ á¤á á¤áľ áá¸á፠áá áá
áľá á¨áá°á áááśá˝ á¨á°ááááá, á¨áááľá°á Რá¤á á¤áľ áľáááľá áłáŤáľá°áŤáá á
áááľ á áŁá á°áŤá áá. á á ááľ áá
áľ á¨áŠá áááľáľ ááá˘áὠᨠkube-dns áááľááŤá¸áá á°ááááᢠá á ááŤá˝á ááľáĽá á°á°ááĽáŻá, ááá áá áá
áśááľáá á á°áᨠáááł á áá°ááá áĽá á áľááááá á áááá á áá°á á, ááá áĽááłá, áľáŤá ááá á˘ááá. á¨ááŤá áŽá¨áśá˝ áłáŠáŁ áá° áĽá ááá¨á áááá áłááá
ᣠá áá á K8s ááľáĽ ááŁáŞ á¨á˛ á¤á á¤áľ á áááááľ ááᢠá á ááľ áá
áľ, áᰠᲠá¤á á¤áľ áľáááľ áĽáľá¨ 40 áşá
áŽá¤á áľá¨áľ á á°áá, áĽá áá
áááľá áĽáá˛á á á á ááá á¨á. ááᣠáĽáá° áĽáľá ááᣠáá´ááŤááľááľ ááŁáŁ aka node local cacheᣠaka
ááá áĽáá áááá? á ááááľ á¨ááá ááľáĽ áĽá áá á NAT ᨠUDP áá á˛ááá ᣠáá° áŽááľáŤáá°áŠ á á¨á´ááá˝ áááá áá° ááľáľá áááł áááŤá ᣠáĽá á NAT á áŠá áŤáá á¨áľáŤáá ááá áá áá (áĽáŤááłááą á á áááááą ááľáĽ NAT áá)ᢠNodelocaldns NAT á á ááľáááľ áĽá áá° TCP áááááľ áᰠᲠá¤á á¤áľ áá°áá á ááťáťá áĽáá˛áá áá°áá á¨á˛ á¤á á¤áľ áá ááá˝á á á áá ááľáĽ á áá¸áἠ(á áá ᨠ5 á°á¨ááľ á ááłá áá¸á፠á¨ááŽ) á˝ááŠá áááłáá˘
5. á áááśá˝á á á ááľá áĽá á á ááŁá á áŤáľ-á°á áááá
ááá áááᎠá°ááŞáľá á¨áááľ áĽáľá¨ áśáľáľ áĽáĽá áááľ ááá¨áá ááá áááá¸áá á áĽááá áááľ áááá áá˝áá? ááá°áá áŞáŤáá˝á ááĽáśá˝á áĽáá´áľ á áľááá ááá°áĽ áĽáá°ááťá? á¨áľáŤá áĽááľ á áá áĽááľ ááśá˝á ááá¨áľ áĽá áá ááááľ áá˝ááᣠáĽá áĽááąá áá° áá ááá¨áľ á áľáááľ áá° á áááááą á¨áááŁá á¨áľáŤáá áá¨áá á¨á°ááł á¨áááá¨áľ ááá á á°á áá ááĽááᢠááááá á ááŤá á¨ááŁááľ áá°á áĽáá°áá
áŤá á áááááśá˝á áááááľ áá¨áłá
VPA á áĽááá°á á á ááá áá á áááľá¨áľ á¨ááŤáŁáá˝áá áĽáŤááá˝/áá°áŚá˝ á ááľ ááľáĽ á áŤáľ-á°á áĽáá˛áŤááą ááá áľáááłáᢠáĽáá´áľ á áá ááá áá˝áá? á áá ááááŤáľ á á ááľá áááá á¨ááá˝á (áá á áá á áľá°ááá áŤááá) ááśá˝ áŤáááľáŁ áŞáᤠááĽáąá áĽáá˛ááá áááá ááá¨á áá˝ááᢠáŁá áŞá á áłáŞáŤá áĽá áá áłá áá¨á á¨ááľáŞá-á°áá¨á áá á¨á°áá°á¨á° á¨ááá áľáááľ áá ᣠáľáááá áĽáŤááá˝á / áá°áŚá˝á á áŤáľ-á°á áááἠáŤáááá á ááá ááŽáá´áááŽá˝á á¨ááá¨áŠ ááĽáśá˝á áá¨áłá°á áĽá á áá áśá˝á áááťá¸áľ á˛áአáĽá áá á°á¨ áľááľáłá ááá ἠáá˝áá ᢠá áááľá°á ááľáĽ.
ááľá ᨠhttps://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231 á¨á°áá°á°
á Kubernetes ááľáĽ áŤáá áááááĽá áááá á áĽáŤááá˝ áá á¨á°áá°á¨á° áá. ááá á áááľ áá á˘áŤáľáááĄ, áááááĽá á ááŞá á áĽáą áá á¨á°áá°á¨á° á°áľáá ááľááá ááááľá ááááá. ááľ ááź áĽáá°áááľáľ ááá áĽáá°áááľá áááá á¨áá°áĽ áĽá´áą á kublet áŤáľááááᢠáĽá áĽá¸áá á áľááá áááŞáŤ á¨áĽáŤááá˝ áá áľááá, áŞáᤠá¨áĽáą áá áá°áŤá. áááá¨áťáá á á ááŁá á˛áááᣠáá áĽáŤááá˝ ááá áĽááłááŁá¸á áááááᢠáĽá á¨á፠áá°áŚá˝ áá áááá? áá áá¤áľ áĽáá˛á á á°ááŁáŁá áá á áá°ááá˘
áááłáᣠá¨á°áááą á¨ááľ á áá áśá˝ áĽáá á á
resources:
requests:
memory: 250Mi
cpu: 200m
limits:
memory: 500Mi
cpu: 350m
á¨ááá áá°áŠ áá°áá áŞáŤá á áľááá áááľáŤáľ 300á á˛áአáĽá 500á áĽáá°ááŤáľáááá áááľááᢠáĽááá á á ááĽáŽá˝ áŤááááĄ-
resources:
requests:
memory: 500Mi
cpu: 300m
limits:
memory: 1000Mi
cpu: 525m
á¨áá áĽáá°á°á áá°áᣠáá á á áá¸áŁáŤáá ááľáĽ áŁááľ á¨áĽáŤááá˝/áá°áŚá˝ áĽáááł áá á¨á°áá°á¨á° á°ááŁáŁá ááŹáľ ááá˘
-
á˛ááŠáĄ 200á â 300áᥠáŹáž 1áĄ1.75;
-
áá á°á¨ áľááľáłáĄ 250á â 500áᥠ1áĄ2 áĽáááłá˘
á .. HPA, á¨ááŤá á¨á á áŤá áá´á á¨á áá ááá˝ áá. áá°áŚá˝ áĽáá° ááŽá°á°á áĽá áá á°á¨ áľááľáł áááľ áááŞáŤáá˝ á°áááĽá¨ááᣠáĽá á¨ááá á ááá˝ á ááŤá á¨áá°áĄ á¨á áá ᣠáľáá áŤá á +1 ááľ áĽá´áą á¨áá°áĄ á áłá˝ áĽáľáŞááľá áľá¨áľ ááá á¨áá°áá á¨á°áŁááá˝ áĽááľ áĽáľáŞá°ááľ áľá¨áľ áááááá˘
ááľá ᨠhttps://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231 á¨á°áá°á°
áĽáá° á˛áአáĽá áá᪠áŤááľ á¨á°áááą áááŞáŤáá˝ á á°á¨ááŞáŁ á áĽááľá áĽá á¨ááŽáá˛á¨áľ ááľáŞááľ áá áá°áŚá˝á áááááľ áĽá áá°áá áŞáŤáá ááź áĽáá°ááŤáłáľá áááá áá á áŁá áľááááá ááááľ áĽáá°áá á¨á°á°áááľ á¨áĽááą áá ááľáŤáľ áá˝ááᢠá áá´ á áááŹá˝á á¨á°á áá°á á¨ááľáŞá áá°áĽ á áłá˝ áŤá¨áá á ááᣠHPA ááśášá áá° áá á°áá á¨á ááá˝ áĽááľ ááá áááą áŁáŤáá áĽáľáŞáŤáá áľá¨áľ áááŁá á ááááŤáá˘
6. áľá ááľááá áľáľáľá áĽá áľá ááľ á ááᲠá áááą
ááá á áááá˝ á á ááľ áááľáá áá á¨áá°áŠ á áá°ááᣠáĽá ááá ááľáá˝ áľááľ-á°áŽá áá°áá áŞáŤáá˝á áááľ á áŤáľáááá¸ááᢠKubernetes á áá áá á¨á áááá˝á áĽá á¨ááłáá˝á ááŠááľ áĽáá˛áááš áŤáľá˝áááłá á¨ááľááá ááááľ áľáľáľá и Pod Affinity.
ááŽáááŠá°á-á°áŽá áľáŤáá˝ á°áľáá á¨áá á áááá˝ áŤáááľ, áá¨áá°áá áá¤áłáááľ, áááá¨áťáá˝á á¨á°áá˘á á áááá˝ áá áá°á á¨á°áťá áá. áá
áá áááľá¨á, áá áá nodeSelector
á ááľááá ááááľ.
áááľ á áááá˝ á áá
áĽáá á: á ááľ áá CPUType=HIGHFREQ
áĽá áĽá ááĽá áŤáá¸á ááŁá áŽáŽá˝, áá ᨠáá MemoryType=HIGHMEMORY
á¨á áá áá
á°á¨ áľááľáł áĽá ááŁá á ááááᢠá áŁá ááá ááááľ á¨ááľ áá°ááŤáľá áá° ááľááá ááááľ ááá°áĽ ááᢠHIGHFREQ
áá° ááá á áá¨á spec
áĽáá°áá
á áááľ ááŤá
âŚ
nodeSelector:
CPUType: HIGHFREQ
áá
áá áááľá¨á á¨á áá ááľ áĽá á¨á°áᨠááááľ áá áá ááᢠnodeAffinity
á ááľá ááľáĽ affinity
ááá spec
. áááľ á ááŤáŽá˝ á ááĄ-
-
requiredDuringSchedulingIgnoredDuringExecution
: á¨áŁáľ ááźáľ (áááááĽá á áľáá á á°áá°á á áááá˝ áá áĽáť (áĽá áá áŚáł á¨áá) áá ááľáá˝á áŤá°ááŤá¸áá); -
preferredDuringSchedulingIgnoredDuringExecution
ááľááł ááźáľ (áááááĽá á ááŞá áá° á°áá°á á áááá˝ ááá°ááŤáľ ááááŤá, áĽá áŤáá°áłáŤ, áá°áááĽáá á¨ááá ááľááá ááááľ ááá°ááŤáľ ááááŤá).
á¨ááľááá ááá áááŤáá˝á áááľá°áłá°á á ááľ á¨á°áá°á á ááŁáĽ áááá˝ áá˝ááᣠáááłáᣠIn
, NotIn
, Exists
, DoesNotExist
, Gt
ááá Lt
. ááá ááᣠá á¨á
á áááŤáá˝ áááá ááľáĽ áŤá ááľáĽáľáĽ áá´áá˝ á á áľá¸á᪠áááłáá˝ ááľáĽ á¨ááłá á á°áŁáĽá áĽáá°ááŤááአáŤáľáłááąá˘ á áá á ááááᣠá¨áá á á áá á áłááłáľáĽá˘
á¨áá áĽáá°á°á áá°á, Kubernetes á¨á ááá á¨ááłáá˝ áľáľáľá áĽáá˛áŤááá ááá áľáááłá. áá¸áá á¨á°áá°á ááľáá˝ á á°ááłáłá á á°ááááľ áá (á¨á°áá áá á°ááá ááľ áŤáá) ááá á áááá˝ ááľáĽ á¨ááá˝ ááľáá˝ áá á áĽá¨á áĽáá˛á°áŠ ááľá¨á áá˝ááá˘
Đ podAffinity
á
áłáá˝ affinity
ááá spec
áĽáá° áááłá ââá°ááłáłá ááľáŽá˝ áááá nodeAffinity
: requiredDuringSchedulingIgnoredDuringExecution
и preferredDuringSchedulingIgnoredDuringExecution
. ááŠááą áá
áĽáť ááᢠmatchExpressions
ááľáááá á á፠áá፠ááľ áĽáŤáá° áŤáá ááľááá ááááľ áá ááľášá áŤáľáŤáá˘
á°á¨á᪠Kubernetes ááľá áŤáááŁá podAntiAffinity
, á á°ááŤáá, á¨á°áá°á ááľáá˝ áá á ááľ ááľ á¨á ááľ ááľááá ááááľ áá á áŤáááá.
áľá ááááŤáá˝ nodeAffinity
á°ááłáłá ááá áá°áĽ áá˝áá: á
áášá ááá áĽá ááááŤáłá áááľá¨á ááááŠ, á¨ááľ ááááá ááľáĽáľáĽ á áá á°ááŚá˝ áááŤá á ááááŠ. á¨áááľá°á áááłáá˝ áá á¨áááŁáŁá á°áἠááá á á áŁá ááá áá, á áá á°ááłá áá á°á¨á᪠áááľ ááŤá áĽá á á ááá á ááááá áá áá¸áľ.
7. áłáááśá˝ áĽá ááťáťá
á¨áá áááááĽáá áááľá°áłá°á áá ááááľ á á. á ááśáá˝ á¨ááá አááśá˝ áĽá á áşáá˝ á¨ááá አáááᎠá áááááśá˝ áŤááľ áľáá áááľá°á áŤáá á¨á°áá°á áááľá°áŽá˝ á á°áá°á á áááá˝ áĽááłááľá°áááą ááá¨áá¨á á áŁá á¨áŁáľ ááá˘
á¨áłáááľ á á áŤá - á°ááŚá˝á á¨áá¨ááá - á áá
áá áŤááá. áááłá, á á°áá°á áááłáá˝ ááľáĽ á¨á°áá°á á áááá˝ ááľáá˝á áĽááłáá°áŠ áá¨áá¨á áá˝áá. á á ááľ á¨á°áá°á ááľááá ááááľ áá áĽáááľá ááá°áá á á ááŤáŠá áá áá taint
á kubectl. ááá áĽá áĽá´áľ ááááš áĽá á¨á፠ááá°áľá áŤá ááš NoSchedule
ááá NoExecute
:
$ kubectl taint nodes node10 node-role.kubernetes.io/ingress=true:NoSchedule
áĽáá˛áá á¨áá¸á¸á áá´ áśáľáľ áá áá áá¤áśá˝á áĽáá°áá°áá áἠááŁá áááŁá- NoSchedule
, NoExecute
и PreferNoSchedule
.
-
NoSchedule
á ááľ áááá ááľáĽ á°ááłá áá¤áľ áĽáľáŞáá áľá¨áľ áááľ áátolerations
, áá° ááľááá ááááľ áá°ááŤáľ á ááťáá (á áá ááłánode10
). -
PreferNoSchedule
- ááá áľáŞáľNoSchedule
. á áá áááł, á¨áá á°ááłá á áľááá á°ááŁáŁá áá¤áľ á¨ááá¸áá ááľáśá˝ ááááá°áĽ ááááŤá.tolerations
á á ááľ ááľááá ááááľ, ááá áá áá á áľá¸á᪠áá°áĽ á áá°áá. á áááľá°á ááľáĽ ááá ááĽáśá˝ á¨áá, áĽáááĽááš á áá ááľááá ááááľ áá áááááľ ááááŤá. -
NoExecute
- áá á°á˝áĽá á°ááá áá¤áľ á¨ááá¸áá ááľáá˝ áá˛áŤáá áááá áŤáľááłátolerations
.
á¨áááááᣠáá áŁá ᪠á¨ááťáťá áá´á á áá áá áááá áľ áá˝ááᢠáá "á¨á°á¨áá¨á" ááľááá ááááľ á˛áá á ááş á˛áá á áአáá á¨áá á¨á° áááľ á áááááśá˝á áĽáť ááľááἠáŤáľáááááłá. áĽáá´áľ ááľá¨á ááťáá? á°áľáá ááťáťá áŤááŁá¸áá áĽáááŤá áĽáááĽáá˝ áĽáť ááááąá˘
á¨ááľ áľáááą áá áĽáá°áááľá áĽáááŚ
spec:
tolerations:
- key: "node-role.kubernetes.io/ingress"
operator: "Equal"
value: "true"
effect: "NoSchedule"
áá
áááľ á áááĽáá á¨áááś áááá áá ááą á áľááá áá
áá ááľááá ááááľ áááłá áááľ á áá°áá ᣠáá
á¨ááľááá áááááľ áá´ á áá°áá áĽá nodeSelector
. ááá áá á ááŤáł áŁá
áŞáŤáľá á ááŁáá á áŁá á°áááá á¨áá á°ááł áááá áá ááááľ áá˝áá.
8. á¨ááľ áá°ááŤáľ á áľá፠áŤááá
á¨ááľ-áá°-ááľááá ááááľ áá°áŞáŤáá˝á áľáááአáĽáť ááá ááľáá˝ á á°ááłáłá á áľá፠ááłá¨á á ááŁá¸á áááľ á áá°ááᢠáááłáᣠá ááłááľ ááśá˝á á¨ááá˝ á ááľ áá°ááŤáľ áľááá ááááá˘
áŠá áááľáľ á¨ááľ á
áľá፠áĽá á
áľá áááłá ááááááľ á¨á°ááŤáŠ ááááśá˝á áŤáááŁáᢠá
ááĽáŠ áĽá áááá˝á áŤáá áá: ááá PriorityClass
áĽá á¨ááľá ááááŤáá˝ priorityClassName
á ááľ áááá ááľáĽ. á ááľ ááłá áĽáááá¨áľáĄ-
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 99999
globalDefault: false
description: "This priority class should be used for very important pods only"
áĽá áĽáááĽáŤáá PriorityClass
áľáᣠááá፠áĽá áá ááľáĄáľá˘ á¨á áŤá value
, á
áľá፠á¨áá°á á á¨á áŤá áá. áĽá´áą ááááá áŁá 32-á˘áľ á˘áá˛áá á¨1 áŤáá° ááá áĽáŠá ááá áá˝ááᢠá¨á áŤá áĽá´áśá˝ áá°ááᎠááłá á¨áľáááľ ááśá˝ á¨á°á á á áá¸áᣠáá
á á á°áááś á áľááľá áá°á¨á á áá˝ááᢠááľááŁáľ á¨áá¨á°á°á á¨áá°á á
áľá፠á¨áá°á á ááľ ááá á¨ááá áĽáť áá, á¨ááŤá á¨á°áá°á ááľááá ááááľ á¨á°áá°ááľ áĽáááĽáá˝ ááááłá. áá
áá´ ááĽááľá á áŁá áĽáĽá
á¨áá, á ááŤáŠá áá¨á áá˝áá preemptionPolicy: Never
, áĽá á¨á፠ááá á
áľá áááł á áááá, ááą á áá¨áá ááľáĽ á¨ááááŞáŤá áááá áĽá áááááĽá á ááŞá ááĽáą áá ááĽáśá˝á áĽáľáŞáŤáá áľá¨áľ áá áĽá.
á ááá á, ááľ áĽáááĽáŤáá, á ááľáĄá áľáá áĽáááááá priorityClassName
:
apiVersion: v1
kind: Pod
metadata:
name: static-web
labels:
role: myrole
spec:
containers:
- name: web
image: nginx
ports:
- name: web
containerPort: 80
protocol: TCP
priorityClassName: high-priority
ááá áĽááłá á áá ááááá°áľ á˘áá¨áá á¨ááááľá áŤá á á¨á áľá፠áááá˝á ááá á áá˝áá (á áááľ áĽáŤáľáá áá á°á ᣠááŤá¨áá áĽá á¨áá°á á áľá፠áááľáĄ)á˘
áľááá , á áľááá á¨áá, áĽáá° nginx-ingress-controller, coredns, ááá° á¨ááłá°á ááłá á áááááśá˝á á¨áá°ááŤáľá áá¤áłáááľ ááłá°á áá˝áá.
9. ᨠETCD áááľá°ááá áŤáłáľá
ETCD á¨ááá áááľá°á á ááá á°áĽá áá ፠áá˝ááᢠá "Cube" ááľáĽ áŤáá á¨áĽáŤ ááĽááľ á áĽáą áá áľáááá°á á¨áá á á¨ááἠááł á á áŤá á á¨áá°á á°á¨á ááá¨áľ á áŁá á áľááá áá. áľáááá á°á¨á áĽá á á°ááłáłá ááᣠáĽáŠ áááľá ááŠá¤-á áá°áá¨á áá á°á áááá¨áľ áĽáá˛áá ᨠETCD áááľá°á á ááľá°á ááśá˝ áá ááľááἠááᢠáá á¨áááťá á¨áá ETCD á á á°áťá áá á á á áἠáŤáľáááĄ, á á°áłáłááá˝ ááŤá¨á áĽáŠ á¨áá°ááá፠áááľ áŤáá. áĽáá˛áá ᨠETCD áľááľ á áááá˝ á áááľá°á áá ááá ááłáľ áłáá°ááľáŁá¸á áááľá áĽáá°áá˝á áἠáá áá˘
á áááľá°á ááľáĽ áŤá á¨á°áłáłááá˝ áĽááľ á¨áá á á áá áá¨áá á á áááá ááŞáá˝ áá á¨áľá á°áľ ááťáťáá áĽáá°áá¨áá áŤáľáłáṠᣠááá ááá á áá á ááá á áá áľá˘
á áááááąá áľááááá á¨á°ááááá áĽááľ áááŽá˝ á á-
-
á áááľá°á áá á áá°á¨áľ áĽáŠ áááľáá áááááľ (ááá ἠáá˝ááá˘
áĽáá ). -
á á˛á˛ áĽááľ ááŤá¨á áááľá°á áŤá°áŤáŠ ááá á ááłá¨ áá¨áĽá áĽá á˛áľáŽá˝á á¨áááááľá á¨áá°á á¨áá áĽááľ áááŞáŤáá˝á áŤáľá°áŤáá (ááá ἠáá˝áá)
áĽáá ).
áá°áá°ááŤ
áá á˝áá áĄáľáá˝á áááá á á¨áááá¨áá ááĽáŚá˝ ááááťáᢠáá á¨áĽááááá˝ á°á¨á á á°á¨á ááá፠á áá°ááᣠááá áá á¨áááľá°áá á¨áááá ááá ááááťá¸áľ á áá ááá á¨áá˝á á ááŤáŽá˝á˘ áĽáŤááłááą áááľá°á á áŤáą ááááľ áአáĽáá°áá ááá˝ ááᣠáĽá á¨áááľá ááłáŚá˝á ááľá°áŤá¨á á áĽá á áááŤáŠ áá˝ááᣠáľááá á¨áĽááľá ááĽá¨ áááľ ááááľ á áľá°áłá˝ áááá-ᨠKubernetes áááľá°ááá áĽáá´áľ áĽáá°áááŁá አᣠá ááááá áĽáá´áľ áĽáá°ááŤáťá˝á ᢠá á áľá°áŤá¨áśá˝ ááľáĽ á¨áĽááľáá á°ááᎠáŤáŤáá, áĽáąá ááá á áľá°áłá˝ áááá.
ááá: hab.com