
áĄáŹá¸ááŻáśá¸áááşášáááŹááŤ! ááťá˝ááşáŻááşááĄáááşáážáŹ Oleg Sidorenkov ááźá áşááźáŽá¸á ááťá˝ááşáŻááşáááş áĄááźáąááśáĄááąáŹááşáĄáŚáĄáá˝á˛áˇááĄááźáŽá¸áĄáá˛áĄááźá áş DomClick áá˝ááşáĄááŻááşááŻááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááş ááŻááşááŻááşáážáŻáá˝ááş Kubik ááᯠááŻáśá¸áážá áşááťáąáŹáşáĄááŻáśá¸ááźáŻáá˛áˇááźáŽá¸ áááŻáĄááťáááşáĄáá˝ááşá¸ áááşá¸áážááˇáşááá°áá˝á˛ááźáŹá¸ááąáŹ á áááşáááşá áŹá¸á ááŹáĄáááŻááşáĄáááˇáşááťáŹá¸ááᯠáá˝áąáˇááźáŻáśááśá áŹá¸áá˛áˇááááşá áážááşáááşááąáŹááťááşá¸áááşáááşá¸ááźááˇáş áááˇáşáĄá áŻáĄááąá¸áĄáá˝ááş vanilla Kubernetes ááž áááŻáááŻá á˝ááşá¸ááąáŹááşáááşááᯠáážá áşááŻááşáááŻááşááŻáśááᯠáááąáˇ ááťá˝ááşáŻááşááźáąáŹááźááŤáááşá áĄáááşáááˇáşáᲠááźáááşáá˝áŹá¸áááŻááşááŤá
Kubernetes áááş container orchestration áĄáá˝ááş áĄáá˝ááşáááşáááŻááşááąáŹ open source á áá áşááźá áşáááşááᯠáááşááąáŹááşá¸á á˝áŹááááŤáááşá ááŹááŹáááşáááşá¸ááťááşáá˝ááş áááˇáş microservices ááťáŹá¸áááááśáááŹááᯠá áŽááśáááˇáşáá˝á˛ááźááşá¸ááźááˇáş áážáąáŹáşáááşááąáŹáĄááŻááşááŻááşááąáŹ áá˝áá áŻáś 5 ááŻá áááŻáˇáĄááźááşá áááşá¸áááş ááá°ááŽááąáŹááŻááşáááşá¸ááąáŹááşááŹááťáŹá¸áĄáá˝ááş áĄááťáŹá¸ááŻáśá¸á áááşááźááŻááşááźáŻááŻááşáááşáĄáá˝ááş Lego áá˛áˇáááŻáˇ á áŻá ááşá¸áááŻááşáááˇáş ááťážááťážááááźáąáŹááşá¸áá˝ááşááźááşáá˝ááşáážáááąáŹááááááŹáá áşááŻááźá áşáááşá
áĄáŹá¸ááŻáśá¸áĄáááşááźáąááŻáśááááş- ááŹááŹááťáŹá¸ááᯠááŽá¸ááŻáśá¸áá˛áááŻáˇ áááşá¸áá˛áˇáááŻáˇ áĄá áŻáĄááąá¸áá˛áááŻáˇ áá áşááťáááŻááşááźáŽá¸ áááşáááˇáşáááşá¸áááşá¸áá°áá˝áąá¸áážáŻáááŻááťáž áááşááááááŻááşááŤá ááŤááąáááˇáş áááşá áááşáááşá¸ááťááşáĄáá˝ááşáááŻáááşááąáŹáˇ âááŽá¸ááᯠáááşáááŻááááşá¸ááźáŽá¸ ááąáŹááᯠáážááźáąáŹááá˛â áááŻáˇ áá˝áąá¸ááŤááááˇáşáááşá áá áşáááşá¸áááŻáááąáŹáş áĄááźáąááśáĄááąáŹááşáĄáĄáŻáśááťáŹá¸ ááźážááˇáşáááşáááşáážááˇáş ááŻááşááťá ááááşááťáŹá¸ ááťážáąáŹáˇááťáááş áááşá¸áááşá¸ááťáŹá¸ áážáŹáá˝áąáááşá¸á
1. áĄáá˝á˛áˇáážááˇáş ááťážáąáŹááşáá˝ážáŹáĄáááşá¸áĄááźá áşááťáŹá¸ááᯠá áąáŹááˇáşááźááˇáşááŤá

áĄááŻáśá¸áĄááťáŹá¸ááŻáśá¸ááźá áşááąáŹáşáááşá¸ ááááąáŹááşááąáŹáááşá¸áááşá¸ááťáŹá¸áá˛áážáá áşááŻáážáŹ ááąáŹááşá¸áááŻáážáŻááťáŹá¸/áááˇáşáááşááťááşááťáŹá¸ááᯠááááŤááşá¸ááťááŻá¸ááźááşá¸ááźá áşáááşá áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠnamespace ááťáŹá¸áĄáááŻááşá áážááˇáş namespaces ááťáŹá¸ááᯠáá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸áĄáá˝á˛áˇááťáŹá¸ááźááˇáş áááŻááşá¸ááźáŹá¸ááŤá ááźááˇáşááťááşááźááşá¸áááźáŻááŽá ááááŻáááşááŹáĄááťáááşá áážááşááŹááşáážááˇáş ááááşášááááŻáážáąáŹááşáážáŻáĄááŻáśá¸ááźáŻáážáŻáĄáá˝ááş áĄáááŽááąá¸áážááşá¸áááşáááŻá¸ááťáŹá¸ááᯠáááşáážááşááŤá
resources:
requests:
memory: 2Gi
cpu: 250m
limits:
memory: 4Gi
cpu: 500máĄáá˝áąáˇáĄááźáŻáśáĄáŹá¸ááźááˇáş ááťá˝ááşáŻááşáááŻáˇáááş ááááŻáśá¸ááťáŻááşáááŤáááş- áááşáááş áááˇáşáááşááťááşááťáŹá¸ááž ááąáŹááşá¸áááŻááťááşááťáŹá¸ááᯠáážá áşááźáááşáááşáááŻá áááťá˛áˇáááˇáşááŤá ááąáŹááşá¸áááŻáážáŻááťáŹá¸áĄááąáŤáşáĄááźáąááśá áĄá áŻáĄááąá¸áááŹáááᯠáá˝ááşááťááşááźáŽá¸ áĄáááşá¸áĄááźá áşááťáŹá¸áá˝ááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸áá˝áŹááźáŹá¸ááťááşááᯠáĽáááŹáĄáŹá¸ááźááˇáş 5-10 ááźáááşááąá¸áááşáááŻááŤáá áááşá¸áááş pods ááťáŹá¸ááźááˇáşááŹááźáŽá¸ ááŻááşááááş load ááážáááąáŹáĄááŤáá˝ááş áááşá node áá˝ááş ááŹááźá áşáááşááᯠá áááşáá°á¸ááźááˇáşááŤá ááŹááž áááąáŹááşá¸ááŤáá°á¸á áĄááááˇáşááŻáśá¸á áĄáááˇáşáĄááŹá¸ááźá áşá áąááźáŽá¸ áĄááźááˇáşááŻáśá¸áá˝ááşá áááşáááş ááŻááşááŹá¸áĄáŹá¸ áážáŻááşáááşááźáŽá¸ áĄá áąáˇááťáŹá¸á áááşáá˝áąáˇááťáŹá¸ááźáŽá¸ááąáŹááş ááťááşáážáááąáŹ node ááťáŹá¸ááąáŤáşáá˝ááş á ááşááŽá¸á áŽá¸áááˇáşáááşááᯠááážááááşááźá áşáááşá
ááąáŹááşááźáŽá¸ áĄáá°áĄááŽáá˛áˇ 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áĄáá˝á˛áˇáá áşáá˝á˛áˇá áĄá áŻáĄáá˝á˛áˇá áĄáááşá¸áĄááźá áşáĄáŹá¸ááŻáśá¸ááᯠáááááşá¸áááŻááşáááŻááşá áąáááş namespace áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠáááˇáşáááşáááş áááąáˇááŤáážááˇáşá
â ~ 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ááąáŹáşááźááťááşááž áá˝áąáˇááźááşáááŻááşáááş resourcequotasops áĄáá˝á˛áˇáááş áĄááźáŹá¸ááąáŹ 10 cpu áááŻá
áŹá¸ááŻáśá¸áááˇáş pods ááťáŹá¸ááᯠáĄááŻáśá¸ááťáááŻááŤáá á
áŽá
ááşáá°áááş áááşá¸ááᯠáá˝ááˇáşáááźáŻáᲠáĄáážáŹá¸áĄáá˝ááşá¸áá
áşáᯠááźáŻááŻááşááááˇáşáááş-
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áááŻáá˛áˇáááŻáˇááąáŹááźáżááŹáááŻááźáąáážááşá¸áááş, áĽáááŹ, áá˛áˇáááŻáˇááąáŹ tool áááŻááąá¸áááŻááşááŤáááşá áĄááááˇáşááąá¸áááˇáş áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠááááşá¸áááşá¸á áááááźáŻáááŻááşáááşá
2. áĄááąáŹááşá¸ááŻáśá¸ááąáŹ áááŻááşáááŻáážáąáŹááşáážáŻááᯠáá˝áąá¸ááťááşááŤá

á¤áá˝ááş ááťá˝ááşáŻááşáááş áĄááźá˛áážáááąááąáŹ volumes ááťáŹá¸áážááˇáş Kubernetes áĄááŻááşáááŹá¸ node ááťáŹá¸á disk subsystem áážááˇáşáááşáááşááąáŹ áĄááźáąáŹááşá¸áĄááŹááᯠááźáąáŹááťááşááŤáááşá ááŻááşááŻááşáážáŻáá˝ááş HDD áá˝ááş "Cube" áááŻáááşáá°ááťážáĄááŻáśá¸áááźáŻáááşááťážáąáŹáşáááˇáşááąáŹáşáááşá¸ áá áşááŤáá áşááśáá˝ááş ááŻáśáážááş SSD áááş áááŻáśááąáŹááşááąáŹáˇááŤá I/O ááŻááşááąáŹááşááťááşááťáŹá¸ááźáąáŹááˇáş áážááşáááşá¸ááťáŹá¸áááş disk ááᯠáááşáá áşáááˇáş ááźáżááŹáá áşáᯠááźáŻáśáá˝áąáˇáááźáŽá¸ ááźáąáážááşá¸áááşá¸ááťáŹá¸á á˝áŹ ááážáááŤ-
á á˝ááşá¸ááąáŹááşáááşááźááˇáş SSDs áááŻááŻáśá¸á፠áááŻáˇáááŻááş NVMe áááŻáˇááźáąáŹááşá¸á፠(áááşáááŻááşáááŻááşááŹáˇááşáá˛ááᯠá áŽááśáááˇáşáá˝á˛ááŤá)á
áá áşááŻááşááźááşá¸áĄáááˇáşááᯠááťážáąáŹáˇááťááŤá
áá áşááᯠááŻááááşá¸ááťááˇáşááąáŹ pods ááťáŹá¸á "á áááş" áááşááťááşááŽáážáŻááᯠááźáŻááŻááşá፠(
podAntiAffinity).
access_logs áážááşáááşá¸áááŻáá˝ááˇáşááŹá¸ááąáŹáĄááŤáá˝ááş nginx-ingress-controller áĄáąáŹááşáážá ááťááşáážáŹááźááşáááş ááźá áşááťááşááąáááş (~12 logs/sec) áááŻááźááááşá á¤áĄááźáąáĄááąááẠᤠnode ááąáŤáşáážá application áĄáŹá¸ááŻáśá¸ááᯠááťááşá áŽá¸áá˝áŹá¸á áąáááŻááşáááşá
PV áĄáá˝ááş ááźá áşááťááşááąáŹáˇ ááťá˝ááşááąáŹáş áĄááŻááşáá ááşá¸áá°á¸ááŤáá°á¸á áĄááźá˛áááşá¸ áĄáá˝á˛ááťáŹá¸á áááˇáşáĄáá˝ááş áĄáááˇáşááąáŹáşááŻáśá¸ áá˝áąá¸ááťááşáážáŻááᯠáĄááŻáśá¸ááźáŻááŤá ááááŻááşá¸ááźáąáŹááşá¸áĄáá áááşááąáŹááşáážáŻááťáŹá¸á áĄá áááşáĄáááŻááşá¸áĄáááşá¸áááşáááş RWX áĄáá˝á˛ááťáŹá¸ áááŻáĄááşááźáŽá¸ á¤ááŻááşáááşá¸áĄáá˝ááş NFS áááŻáážáąáŹááşáážáŻááᯠá áááşáĄááŻáśá¸ááźáŻáá˛áˇáááşáážáŹ ááźáŹááźááˇáşááąááźáŽááźá áşáááşá á áťáąá¸áááşáááşááŹááŹáá˛áˇ...ááŻáśááąáŹááşááŤáááşá ááŻááşááŤáááşá áá°áá˛áˇááťá˝ááşááąáŹáş áá°á¸áá˝ááşáááş - áááşá¸ááᯠááąáŹááşá¸ááťáŽá¸ááąá¸áááşá ááŤááąáááˇáş áĄá˛ááŤááᯠáážááááŻáˇ áááşáá°áá˛áˇááźáŽá¸á ááŤáˇááąáŤááşá¸áááşá¸ áááŹááąáŹáˇáá°á¸á ááźá áşáááŻááşááťážááş S3 áĄááŹááášááŻáááŻáážáąáŹááşáážáŻáááŻáˇ áá˝ážáąáˇááŤá
3. áĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááş ááźáŻááŻááşááŹá¸ááąáŹ ááŻáśááťáŹá¸ááᯠá áŻááąáŹááşá¸ááŤá

Kubernetes áááş áááşá¸áááŻáˇááᯠáááŻááźááşá áąááźáŽá¸ áááşá¸áááŻáˇááᯠáááŻáááŻááááąáŹááşá á˝áŹ ááŻááşááąáŹááşáááŻááşá áąáááşáĄáá˝ááş áá˝ááşááááşááŹ-áĄááąáŹááşá¸áá˝ááşááŻáśá¸ááŻáśááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááźááşá¸áááş áĄááąáŹááşá¸ááŻáśá¸ááźá áşáááşá
Optimized áááŻáááşáážáŹ ááŻáśááťáŹá¸ááᯠáááŻáááŻáááş-
áĄáááŽááąá¸áážááşá¸áá áşááŻááŹááŤáááşá፠áááŻáˇáááŻááş ááŻááşááąáŹááşááťááşáá áşááŻááŹááŻááşááąáŹááşááŤá
áĄáá˝ááşáĄá áŹá¸ ááąá¸áááşááąáŹááźáąáŹááˇáşá ááźáŽá¸ááŹá¸ááąáŹááŻáśááťáŹá¸ááᯠáá˝ááşáááşááąáŤáşáá˝ááş áááŻáááŻá¸á áąááąáŹááźáąáŹááˇáşá
á ááşáááşááťáááşáá˝ááş Kubernetes áĄáŹá¸ áĄááąá¸áá°ááąáŹááşáá˝ááşáááŻááşáááş ááťááşá¸ááŹááąá¸áážááˇáş áĄáááşáááˇáş áĄááŻáśá¸áážááşááťáŹá¸ áážááááşá
Configuration áĄáážáŹá¸ááťáŹá¸ááᯠáááŻáááŻááśáááŻááşáááşáážáááąáŹ áá˝ááşááááşááŹ-ááąáŹáşáá˝áąááąáŹ áááşáááşáážáŻá áá áşááťáŹá¸ (Alpine áááŻáˇáááŻááş CoreOS áá˛áˇáááŻáˇ) ááᯠáĄááŻáśá¸ááźáŻááŤá
ááąáŤááşá¸á ááşááŹá¸ááąáŹ áĄáááŽááąá¸áážááşá¸ááťáŹá¸áááŻáᏠáĄááŻáśá¸ááźáŻáááŻááşááźáŽá¸ ááŤáááşáááˇáşáááşá¸ááźá áşááťáŹá¸áááŻáᏠáĄááŻáśá¸ááťáááŻááşá áąáááş multi-stage áááşááąáŹááşáážáŻááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻááŤá
ááŻáśááťáŹá¸ááᯠáĄááťáááşáážááˇáşáááźáąá¸áᎠá á áşááąá¸áááŻááşá áąáááşáážááˇáş áĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááş ááŻááşááąáŹááşáááŻááşáááˇáş ááááááŹááťáŹá¸áážááˇáş áááşááąáŹááşáážáŻááťáŹá¸á á˝áŹáážáááŤáááşá áááşá¸áááŻáˇááᯠáĄááźá˛áááşá¸ ááąááşááŽááąá áąáááşáážááˇáş ááąá¸áááşá¸á áąáááş á ááşá¸áááşá á áşááąá¸áááş áĄááąá¸ááźáŽá¸ááŤáááşá ááááşáĄááąááźááˇáş áááşááážááááş-
áĄá áŻáĄááąá¸áá áşááŻááŻáśá¸áá˝ááş áá˝ááşáááşáááşááᯠááťážáąáŹáˇááťááŹá¸áááşá
áá˝ááşááááşáᏠá áááşááťáááşááᯠááťážáąáŹáˇááťááźááşá¸á
áááşá Docker áážááşááŻáśáááşááźááşá¸áá áşááŻááŻáśá¸á ááąá¸áááşááąáŹáĄáá˝ááşáĄá áŹá¸á
4. DNS cache áááŻááŻáśá¸ááŤá

ááźááˇáşááŹá¸ááąáŹáááşááťáŹá¸áĄááźáąáŹááşá¸ááźáąáŹááŤáá áĄá áŻáĄáá˝á˛áˇá DNS á áá áşáĄáŹá¸ ááťáááşáážáááźááşá¸áááźáŻáᲠáááááş áĄáá˝ááşáááŻá¸áá˝áŹá¸áááşá áá áşááťáááşá Kubernetes developer ááťáŹá¸áááş áááşá¸áááŻáˇá kube-dns ááźáąáážááşá¸ááťááşááᯠááąáŹááşááśáá˛áˇááźáááşá áááşá¸ááᯠá¤ááąááŹáá˝ááşáááşá¸ áĄááąáŹááşáĄáááşááąáŹáşááŹá¸ááąáŹáşáááşá¸á á¤ááąáŹáˇááşáá˛ááᯠáĄáá°á¸ááťáááşáážáááŹá¸ááźááşá¸ááážááá˛áˇáᲠáááŻáĄááşááąáŹá á˝ááşá¸ááąáŹááşáááşááᯠáááŻááşááŻááşáááŻááşáá˛áˇáá˛á áááşá¸áááş áááŻá¸áážááşá¸ááąáŹáĄááŻááşááźá áşááŻáśááááşá áááŻáˇááąáŹááşáá˝ááş ááťá˝ááşáŻááşáááŻáˇááž ááźáąáŹááşá¸áá˛áá˛áˇááźáŽá¸ áá°áá˝áąá¸ááźááşá¸ááážáááąáŹ coredns ááąáŤáşááŹáááşá áááşá¸áááş ááąáŹááşáááŻááşá¸áá˝ááş K8s áá˝ááş áá°áááşá¸ DNS áááşááąáŹááşáážáŻááźá áşááŹáá˛áˇáááşá áá áşááťáááşááťáááşáá˝ááşá ááťá˝ááşáŻááşáááŻáˇáááş DNS á áá áşáááŻáˇ 40 rps áááŻá¸ááŹáᏠá¤ááźáąáážááşá¸ááťááşáážáŹáááşá¸ áááŻáśááąáŹááşááąáŹáˇááŤá áááŻáˇááąáŹáş ááśááąáŹááşá¸ááąáŹááşáá á˝áŹááźááˇáş Nodelocaldnsá aka node local cache, aka áá˝ááşááŹáá˛áˇáááşá .
ááŹááźáąáŹááˇáş ááŤáááŻááŻáśá¸ááŹáá˛á áĄááááĄáŹá¸ááźááˇáş Linux UDP áážáá áşáááˇáş Conntrack NAT áážáá áşáááˇáş ááąáŹááşá¸áááŻáážáŻááťáŹá¸á á˝áŹ ááźáŻááŻááşááąáŹáĄá፠Conntrack áááŹá¸ááťáŹá¸áážá entry ááťáŹá¸áĄáá˝ááş race condition ááᯠááźá áşááąáŤáşá áąááźáŽá¸ NAT áážáá áşáááˇáş traffic áĄááťááŻáˇ ááŻáśá¸áážáŻáśá¸áá˝áŹá¸áááˇáş bug áá áşááŻáážááááş (Service áážáá áşáááˇáş hop áááŻááşá¸áááş NAT ááźá áşáááş)á Nodelocaldns áááş NAT ááᯠáááşáážáŹá¸ááźáŽá¸ upstream DNS áĄáá˝ááş TCP áááŻáˇ ááťáááşáááşáážáŻááᯠáĄáááˇáşááźážááˇáşáááşááźááşá¸áĄááźááş upstream DNS áááŻáˇ DNS request ááťáŹá¸ááᯠlocal caching ááŻááşááźááşá¸ (5-second negative cache áááŻááąáŹááşá¸ááźááşá¸áĄááŤáĄáááş) ááźááˇáş á¤ááźáżááŹááᯠááźáąáážááşá¸áááşá
5. áĄá áąáˇááťáŹá¸ááᯠáĄááťáŹá¸áááŻááş ááąáŤááşáááŻááş áĄáááŻáĄááťáąáŹááş ááťáááşáážáááŤá

áááşá microservices áĄáŹá¸ááŻáśá¸áááş áážá áşáááž ááŻáśá¸ááĄáá áááŻá¸ááŹáááşáĄáá˝ááş áĄáááşáááˇáşááźá áşááąááźáŽáᯠááŻáśááźááşá áááşááťá á˝áŹ ááźáąáŹáááŻááşááŤáááŹá¸á áááˇáşáĄáááŽááąá¸áážááşá¸ááťáŹá¸ááś áĄáááşá¸áĄááźá áşááťáŹá¸ááᯠáááşáááŻáˇáá˝á˛ááąááąá¸áááşáááşá¸á áĄááŻááşáááşáááşááťáąáŹáşáá˝ááşá áĄááŻááşááŻááşááąáŹ pods áážá áşááŻááᯠááŹá¸áážáááźááşá¸áááş ááááŻáĄááşááąáŹáˇááąáŹáşáááşá¸ áááşá¸áááŻáˇááᯠááąáŹááşááźáąáŹááşá¸ááźááşááŹá¸ááźááşá¸ááźááˇáş áááşááąáŹááşáážáŻáááŻáˇ áĄáá˝áŹá¸áĄááŹááŻááşááááş áááŻá¸ááŹááŹááž áĄááťáááşáááşáááˇáşáá˝áŹá¸áááŻááşáááˇáş áĄáášáááŹááşáážááááşá áĄá áážááá˛áˇ áááşááąáŹááşáážáŻááťáŹá¸ и .
VPA áĄáážááşááááşáĄááŻáśá¸ááźáŻáážáŻááąáŤáşáá°áááşá pod áĄáá˝ááşá¸áážá áááˇáşáá˝ááşááááşááŹááťáŹá¸á ááąáŹááşá¸áááŻáážáŻááťáŹá¸/áááˇáşáááşááťááşááťáŹá¸ááᯠáĄáááŻáĄááťáąáŹááş ááźážááˇáşáááşáááŻááşáááşááźá áşáááşá áááşáááŻáĄááŻáśá¸áááşáááŻááşááá˛á áĄáááşá áááˇáşáá˝ááş áĄááźáąáŹááşá¸áá áşááŻááŻááźáąáŹááˇáş áĄááťáŹá¸áááŻááş ááťáááşáážááááááąáŹ áĄáá˝ááşááťáŹá¸áážáááŤá (ááŻáśá¸á á áááşáááťáááąáŹ)á áááŻáˇááąáŹááş áááşá¸ááĄáááşá¸áĄááźá áşááťáŹá¸ááᯠVPA áááŻáˇ ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ áĄááşáážááşá¸áááş ááźááŻá¸á áŹá¸áááŻááşááŤáááşá áááşá¸ááĄááşášááŤáááşáááş áááşááá áşááŹááŹááž ááááŻááşá¸áááşáážááˇáş áááşáážáááąááŹáĄááąáŤáşáĄááźáąááśáááˇáş áĄááźáśááźáŻááťááşá áá áşááźá áşááąáŹááźáąáŹááˇáş ááąáŹááşá¸áááŻáážáŻááťáŹá¸/áááˇáşáááşááťááşááťáŹá¸ááᯠáĄáááŻáĄááťáąáŹááşáááźáąáŹááşá¸áá˛áááŻááŤáá áááşáááş áááşááá˝ááşááááşááŹáĄáá˝ááş áĄááźáśááźáŻááŹá¸ááąáŹáááşá¸ááźá áşááťáŹá¸ááᯠáááŻá¸áážááşá¸á á˝áŹá áąáŹááˇáşááźááˇáşáááŻááşááźáŽá¸ CPU ááᯠááááşá¸áááşá¸áááşáĄáá˝ááş áááşáááşááťáŹá¸ááᯠáĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááş ááźáŻááŻááşáááŻááşáááşá áĄá áŻáĄááąá¸áá˝ááşáážááşááŹááşá
ááŻáśáĄáŹá¸ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231 ááž áááŻááşáá°ááŹá¸áááş
Kubernetes áážá áĄááťáááşáááŹá¸áá˝á˛áááş ááąáŹááşá¸áááŻááťááşááťáŹá¸áĄááąáŤáş áĄááźá˛áĄááźáąááśáááşá áááşáááˇáşáááşáááŻá¸ááᯠáááşáááˇáşááŹá¸ááŤá áąá áĄá áŽáĄá ááşááąá¸áá˝á˛áá°áááş áááşá¸áĄááąáŤáşáĄááźáąááśá áááˇáşááťáąáŹáşááąáŹ node áá áşááŻááᯠáážáŹáá˝áąáááşááźá áşáááşá áá°á¸ááᯠáááşáĄááťáááşáážáŹ áĄáážáááşááźážááˇáşáááᲠáááŻáˇáááŻááş áááşáá áşáááş cubelet áĄáá˝ááş áááˇáşáááşáááşáááŻá¸ááťáŹá¸ áááŻáĄááşááŤáááşá áá áşááŻáááşá¸ááąáŹáĄááąá¸ááźáŽá¸ááąáŹáááˇáşáááşááťááşáááş ááąáŹááşá¸áááŻáážáŻáááşáááŻá¸ááźá áşááąáŹááźáąáŹááˇáş VPA áááş áááşá¸áážááˇáşáĄááŻááşááŻááşáááşááźá áşáááşá áĄáááŽááąá¸áážááşá¸áá áşááŻáĄáŹá¸ ááąáŤááşáááŻááşáĄáááŻááşá¸áĄááŹááźááˇáş áááŻááşá¸ááŹáááˇáşáĄááŤáááŻááşá¸á ááąáŹááşá¸áááŻááťááşááťáŹá¸áááş áááşáááˇáşáĄááŹááźá áşáááˇáşáááşááᯠáááşáááşáážááşáááşá áĄá˛ááŽáĄá፠áááˇáşáááşááťááşáá˝áąá ááŹááźá áşááá˛á á¤áááˇáşáááşááťááşáááŻáááşá¸ áĄááťááŻá¸ááť ááťáááşáážááááşááźá áşáááşá
áĽáááŹáĄáŹá¸ááźááˇáşá á¤áááşáážáŹ ááŻáśáážááş pod áááşáááşááťáŹá¸ááźá áşáááş-
resources:
requests:
memory: 250Mi
cpu: 200m
limits:
memory: 500Mi
cpu: 350máááˇáşáĄáááŽááąá¸áážááşá¸áááş ááąáŹááşá¸á á˝áŹáááşáááşáááş 300m CPU áážááˇáş 500Mi áááŻáĄááşááźáąáŹááşá¸ áĄááźáśááźáŻááťááşáĄááşááťááşá ááŻáśá¸ááźááşáááşá áĄáąáŹááşááŤáááşáááşááťáŹá¸ááᯠáááşááážáááŤáááş-
resources:
requests:
memory: 500Mi
cpu: 300m
limits:
memory: 1000Mi
cpu: 525máĄáááşáá˝ááşááąáŹáşááźáá˛áˇáááˇáşáĄáááŻááşá¸á áááşá¸áááş áááşááŽá¸áááşá áşáážá ááąáŹááşá¸áááŻááťááş/áááˇáşáááşáážáŻáĄááťááŻá¸áĄááąáŤáşáĄááźáąááśá áĄááťááŻá¸ááťá ááąá¸ááťá˛áˇááźááşá¸ááźá áşáááş-
CPU: 200m â 300m: áĄááťááŻá¸ 1:1.75;
áááşáááŻááŽ- 250Mi â 500Mi: áĄááťááŻá¸ 1:2á
áážááťáˇ áááťáááť. HPAááŤááᯠáááşáááşáážáŻ ááášáááŹá¸á áááŻáá˝ááˇáşáááşá¸áááşá CPU áážááˇáş Memory áá˛áˇáááŻáˇááąáŹ áááşááá áşááťáŹá¸ááᯠáááˇáşáááşááŹá¸ááźáŽá¸á ááŻáśáá°áĄáŹá¸ááŻáśá¸á ááťááşá¸ááťážáááŹááááş áááşáážááşááťááşáááşááťáąáŹáşáá˝ááşááŤáá áááşáááŻá¸áááşáážááşááťááşáĄáąáŹááşáááŻáˇ ááťáááşá¸áá˝áŹá¸áááşáĄáá áááŻáˇáááŻááş ááŻáśáá°áá˝áŹá¸áážáŻ áĄááťáŹá¸ááŻáśá¸áĄááąáĄáá˝ááşáááŻáˇ áááąáŹááşáááťááşá¸ áĄáááŽááąá¸áážááşá¸ááᯠ+1 áá˝á˛ááźááˇáş ááťáááşáážááááşááźá áşáááşá
ááŻáśáĄáŹá¸ https://levelup.gitconnected.com/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231 ááž áááŻááşáá°ááŹá¸áááş
CPU áážááˇáş Memory áá˛áˇáááŻáˇááąáŹ ááŻáśáážááşáááşááá áşááťáŹá¸áĄááźááş Prometheus ááž áááˇáşá áááşááźááŻááşáááşááá áşááťáŹá¸ááąáŤáşáá˝ááş áĄáááˇáşáááşáážááşááťááşááťáŹá¸ áááşáážááşáááŻááşááźáŽá¸ áááşá¸áááş áááˇáşáĄáááŽááąá¸áážááşá¸ááᯠá ááąá¸ááťáááşáááş áĄááááťááŻáśá¸ááźá áşááźáąáŹááşá¸ áááşáá°áááŤá áááşá¸áááŻáˇáážááˇáş ááŻááşááąáŹááşáááŻááşáááşá áĄáááŽááąá¸áážááşá¸áááş áááşáážááşááŹá¸ááąáŹ áááşááá áşáááşáážááşááťááşáĄáąáŹááş áááşááźáááşáá˝áŹá¸áááşáážááˇáşá HPA áááş áĄááááˇáşááŻáśá¸ááŻáśá áśáá° áĄááąáĄáá˝ááşáĄáá áááŻáˇáááŻááş áááşáĄáŹá¸ áááşáážááşááŹá¸áááˇáş áĄáááŻááşá¸áĄááŹáážááˇáş ááźááˇáşááŽáááˇáşáááŻááşáĄáąáŹááş áĄááťáááşáĄáááşááťáŹá¸ááᯠá áááşáááşááźá áşáááşá
6. Node Affinity áážááˇáş Pod Affinity áĄááźáąáŹááşá¸ áááąáˇááŤáážááˇáş

node ááťáŹá¸áĄáŹá¸ááŻáśá¸áááş áá°ááŽááąáŹááŹáˇááşáá˛ááąáŤáşáá˝ááş áĄááŻááşááŻááşáááşáááŻááşááŤá ááąáŤáˇááşáĄáŹá¸ááŻáśá¸áááş áá˝ááşááťááşáážáŻáĄáá°á¸ááźáŻááąáŹ áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠááŻááşááąáŹááşáááşááááŻáĄááşááŤá Kubernetes ááᯠáĄááŻáśá¸ááźáŻá node áážááˇáş pods ááťáŹá¸á áĄáá°á¸ááźáŻáážáŻááᯠáááşáážááşáá˝ááˇáşááźáŻáááşá Node Affinity и Pod Affinity.
áĄáááşá áááˇáşáá˝ááş áá˝ááşááźá°ááŹááŻáśá¸ááąáŹ ááŻááşááąáŹááşááťááşááťáŹá¸áĄáá˝ááş áááˇáşááťáąáŹáşááąáŹ node ááťáŹá¸áážáááŤáá áĄááźááˇáşááŻáśá¸ááááąáŹááşáážáŻááážááááş áááşá¸áááş áĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠáááşáááŻááşáᏠnode ááťáŹá¸áážááˇáş ááťáááşáááşááźááşá¸áááş áááŻááąáŹááşá¸ááŤáááşá ááŽáááŻááŻááşáááŻáˇ ááŻáśá¸áááşá nodeSelector node ááśááááşáá
áşááŻáážááˇáşá
áááˇáşáá˝ááş node áážá
áşááŻáážááááş- one with CPUType=HIGHFREQ áážááˇáş ááźááşáááşááąáŹ cores áĄááťáŹá¸áĄááźáŹá¸á ááąáŹááşáá
áşáᯠMemoryType=HIGHMEMORY Memory áááŻááźááşááźáŽá¸ á
á˝ááşá¸ááąáŹááşáááş áááŻááźááşááŤáááşá áĄáá˝ááşááŻáśá¸áááşá¸áááşá¸áážáŹ node áá
áşááŻáááŻáˇ deployment ááᯠáááşáážááşáááşááźá
áşáááşá HIGHFREQáĄáááŻááşá¸ááᯠááąáŤááşá¸áááˇáşááźááşá¸ááźááˇáş spec á¤áá˝áąá¸ááťááşáážáŻá
áá
áş-
âŚ
nodeSelector:
CPUType: HIGHFREQáááŻáááŻá
áťáąá¸ááźáŽá¸ááźáŽá¸ ááááťááąáŹáááşá¸áááşá¸ááᯠáĄááŻáśá¸ááźáŻáááşááźá
áşáááşá nodeAffinity áááşá affinity аСдоНа spec. áá˝áąá¸ááťááşá
ááŹáážá
áşááŻáážááááşá
requiredDuringSchedulingIgnoredDuringExecution: hard setting (áĄááťáááşáááŹá¸áá˝á˛áá°áááş ááŽá¸ááźáŹá¸ node ááťáŹá¸ (áážááˇáş áĄááźáŹá¸áááşáááˇáşááąááŹááž) áá˝ááşáᏠpods ááťáŹá¸ááᯠááźááˇáşááťááşááąá¸áááş);preferredDuringSchedulingIgnoredDuringExecution: ááťáąáŹáˇááťáąáŹááşá¸ááąáŹáááşáááş (áĄááťáááşáááŹá¸áá˝á˛áá°áááş ááŽá¸ááźáŹá¸ node ááťáŹá¸áááŻáˇ ááźááˇáşááťááşáááş ááźááŻá¸á áŹá¸áááşááźá áşááźáŽá¸ áááşá¸áááş ááťááşáá˝ááşááŤáá áááşá¸áááş ááąáŹááşáááşááážááááŻááşáááˇáş node áááŻáˇ ááźááˇáşááťááşáááş ááźááŻá¸á áŹá¸ááááˇáşáááş)á
áá˛áˇáááŻáˇááąáŹ node áĄáá˝ážááşá¸ááťáŹá¸ááᯠá
áŽááśáááˇáşáá˝á˛áááşáĄáá˝ááş ááŽá¸ááźáŹá¸ syntax ááᯠáááş áááşáážááşáááŻááşáááşá In, NotIn, Exists, DoesNotExist, Gt áááŻáˇáááŻááş Lt. áááŻáˇááąáŹáşá áážááşááťáŹá¸ááąáŹ áĄáá˝ážááşá¸ááťáŹá¸á
áŹáááşá¸áá˝ááş áážáŻááşáá˝áąá¸ááąáŹáááşá¸áááşá¸ááťáŹá¸áááş áĄááąá¸ááźáŽá¸ááąáŹáĄááźáąáĄááąááťáŹá¸áá˝ááş ááŻáśá¸ááźááşááťááşááťááźááşá¸ááᯠáážáąá¸áá˝áąá¸á
áąááźáąáŹááşá¸ ááááááŤá áá
áşáááşá¸áĄáŹá¸ááźááˇáş áááŻá¸áááŻá¸áážááşá¸áážááşá¸ááŹá¸ááŤá
áĄáááşáá˝ááşááąáŹáşááźááŹá¸áááˇáşáĄáááŻááşá¸ Kubernetes áááş áááˇáşáĄáŹá¸ áááşáážá pods ááťáŹá¸á áááşá¸áážáŽá¸áážáŻááᯠáááşáážááşáááŻááşá áąááŤáááşá áááŻáááŻáááşáážáŹá áĄááťááŻáˇááąáŹ pods ááťáŹá¸áááş áá°ááŽááąáŹááážááááŻááşáážáŻááŻááş (clouds áĄáá˝ááşáááşáááŻááşááŹ) áááŻáˇáááŻááş node ááťáŹá¸áá˝ááş áĄááźáŹá¸ pods ááťáŹá¸áážááˇáşáĄáá° áĄááŻááşááŻááşááźáąáŹááşá¸ ááąááťáŹá áąáááŻááşááŤáááşá
Đ podAffinity áááşáá˝ááşá¸ affinity аСдоНа spec áá°ááŽááąáŹáĄáá˝ááşááťáŹá¸ááᯠááá
ášá
áááşáá˝ááş ááážááááŻááşáááşá nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution и preferredDuringSchedulingIgnoredDuringExecution. áá
áşááŻáááşá¸ááąáŹ ááźáŹá¸ááŹá¸ááťááşá áĄá˛ááŤááŤáá˛á matchExpressions pods ááťáŹá¸ááᯠáááŻááśááááşááźááˇáş pod áá
áşááŻááᯠááŻááşááąáŹááşááąááźáŽá¸ááźá
áşááąáŹ node áá
áşááŻáážááˇáş ááťáááşááŤáááşá
Kubernetes áááşáááşá¸ áĄáá˝ááşáá
áşááŻááᯠááąá¸áááşá podAntiAffinityáááˇáşááťááşáááşáĄááąáážááˇáşá pod ááᯠááŽá¸ááźáŹá¸ pods ááťáŹá¸ááŤáááˇáş node áá
áşááŻáážááˇáş ááťáááşáááŹá¸ááŤá
áĄááŻáśá¸áĄáážáŻááşá¸ááťáŹá¸áĄááźáąáŹááşá¸ nodeAffinity áá°ááŽááąáŹáĄááźáśááŹááşááᯠááąá¸áááŻááşáááş- á
ááşá¸ááťááşá¸ááťáŹá¸ááᯠáááŻá¸áážááşá¸ááźáŽá¸ ááťááŻá¸ááźáąáŹááşá¸ááŽááťáąáŹáşáĄáąáŹááş ááźááŻá¸á
áŹá¸ááŤá áážáŻááşáá˝áąá¸ááąáŹ á
ááşá¸ááťááşá¸ááťáŹá¸ááźááˇáş pod specification ááᯠáá˝ááşáá˝ááşáá˛áᲠáááźááŻá¸á
áŹá¸ááŤáážááˇáşá áĄá
áŻáĄáá˝á˛áˇá áĄááźáąáĄááąááťáŹá¸áážááˇáş ááááŻááşááŽáááˇáş á
ááşá¸ááťááşá¸áá
áşááŻááᯠáááşááŽá¸áááşá áĄááťáááşáááŹá¸áá˝á˛áá°áá˝ááş ááááŻáĄááşááąáŹáááşááᯠáááşááŽá¸áᏠáĄááŻáśá¸á
áŻáśá
á˝ááşá¸ááąáŹááşáááşááᯠááťážáąáŹáˇááťáááş áĄáá˝ááşáá˝ááşáá°áááşá
7. áĄáŹáááąáŤáááŹá¸áážááˇáş áááşá¸ááśááźááşá¸áááŹá¸
áĄá áŽáĄá ááşáá˝á˛áá°ááᯠá áŽááśáááˇáşáá˝á˛áááş áĄááźáŹá¸áááşá¸áááşá¸áá áşááŻáážááááşá áááˇáşáá˝ááş node ááŹááąáŤááşá¸ááťáŹá¸á á˝áŹáážááˇáş ááąáŹááşááąáŤááşá¸ááťáŹá¸á á˝áŹááąáŹ microservice ááťáŹá¸ááŤáážáááąáŹ ááźáŽá¸ááŹá¸ááąáŹáĄá áŻáĄááąá¸áá áşááŻáážáááŤáá áĄááťááŻáˇááąáŹ pods ááťáŹá¸ááᯠáĄááťááŻáˇááąáŹ node ááťáŹá¸áá˝ááş áááşááśááŹá¸áááşáážáŹ áĄáá˝ááşáááşáá˛ááŤáááşá
áĄáŹáááąáŤáááŹá¸áááŻáˇá ááášáááŹá¸âáááášááŹááŻááşááᯠááŹá¸ááźá
áşááźááşá¸âá¤áááŻáˇ áá°ááŽááąá¸áá áĽáááŹáĄáŹá¸ááźááˇáşá áĄááťááŻáˇááąáŹáĄááźáąáĄááąááťáŹá¸áá˝ááş áááşáááş pods ááťáŹá¸áááşáááşááźááşá¸ááž áĄááťááŻáˇááąáŹ node ááťáŹá¸ááᯠááŹá¸ááźá
áşáááŻááşáááşá ááŽá¸ááźáŹá¸ node áá
áşááŻáá˝ááş áá
áşáááşá¸áážáŻááᯠáĄááŻáśá¸ááťáááş áá˝áąá¸ááťááşáá˝ááˇáşááᯠáááşáĄááŻáśá¸ááźáŻáááş áááŻáĄááşáááşá taint kubectl áá˝ááş ááąáŹáˇáá˛áˇáááşáááŻá¸ááᯠáááşáážááşááźáŽá¸ááąáŹáˇ áá
áşáááşá¸ááŹááťááŻá¸ NoSchedule áááŻáˇáááŻááş NoExecute:
$ kubectl taint nodes node10 node-role.kubernetes.io/ingress=true:NoScheduleáá
áşáááşá¸áážáŻááášáááŹá¸áááş áĄááááĄááťááŻá¸áááşááąáŹááşáážáŻááŻáśá¸ááŻááᯠááśáˇáááŻá¸ááąá¸ááźáąáŹááşá¸áááŻáááşá¸ áááááźáŻáááˇáşááŤáááşá NoSchedule, NoExecute и PreferNoSchedule.
NoScheduleáááŻáááŻááŹá áĄááŻáĄááťáááşáážáŹ pod specification áážáŹ áááşáááŻááşáá˛áˇ entry áá˝áą áážáááąáŹáˇáážáŹ áááŻááşááŤáá°á¸átolerationsá áááşá¸áááş node ááąáŤáşáá˝ááş deploy ááŻááşááááˇáşáááşáááŻááşá፠(á¤áĽáááŹáá˝ááşnode10).PreferNoSchedule- áááŻá¸áážááşá¸ááąáŹááŹá¸áážááşá¸NoSchedule. á¤ááá ášá áá˝ááşá áĄááťáááşáááŹá¸áá˝á˛áá°áááş áááŻááşááŽááąáŹ entry áááŤááąáŹ pods ááťáŹá¸ááᯠáá˝á˛ááąáááąá¸áááş ááźááŻá¸á áŹá¸ááŤáááşátolerationsnode áá áşááŻá áŽá ááŤááąáááˇáş ááŤá áááşáá˛áá˛áˇ áááˇáşáááşááťááş áááŻááşááŤáá°á¸á áĄá áŻáĄááąá¸áá˝ááş áááşá¸ááźá áşááťáŹá¸ááážáááŤáá pods ááťáŹá¸ááẠᤠnode ááąáŤáşáá˝ááş á áááşáĄááŻáśá¸ááźáŻáááŻááşáááşááźá áşáááşáNoExecute- á¤áĄááťááŻá¸áááşááąáŹááşáážáŻáááş áááşáááŻááşáᏠentry ááťáŹá¸ááážáááąáŹ pods ááťáŹá¸ááᯠááťááşááźááşá¸áá˝ážáąáˇááźáąáŹááşá¸áááş áĄá ááťááŻá¸ááąá¸ááŤáááşátolerations.
á áááşáááşá áŹá¸á ááŹááąáŹááşá¸áááşáážáŹá á¤áĄááźáŻáĄáá°áááŻáááşá¸ááśááźááşá¸ááášáááŹá¸ááŻáśá¸ááźáŽá¸áááşááťááşáááŻááşáááşá "ááŹá¸ááźá áşááŹá¸ááąáŹ" node áá áşááŻáážáááąáŹáĄááŤáá˝ááşáááşá¸áááşáĄáááşááźáąááźáŽá¸áááşá¸ááąáŤáşáá˝ááşáĄááźáąááśáĄááąáŹááşáĄáĄáŻáśáááşááąáŹááşáážáŻááťáŹá¸áááŻááŹáááşááŹá¸áááşáááŻáĄááşáááşá áááşááᯠááŻááşáááá˛? áááˇáşááťáąáŹáşááąáŹ ááśáááŻááşáááşáážáááąáŹ áĄáááŻá፠pods ááťáŹá¸áááŻáᏠáá˝ááˇáşááźáŻááŤá
á¤áá˝ááş pod specification áááşáááşáá˛áˇáááŻáˇááźá áşáááşáááşá¸á
spec:
tolerations:
- key: "node-role.kubernetes.io/ingress"
operator: "Equal"
value: "true"
effect: "NoSchedule"áááşá¸áááş ááąáŹááşáá
áşááźáááş ááźááşáááşáĄááŻáśá¸ááťááźááşá¸áááş á¤áĄáá°á¸ Node ááąáŤáşáá˝ááş ááťááąáŹááşáááşáᯠááááŻáááŻááŤá áááşá¸áááş Node Affinity ááášáááŹá¸áááŻááşááŤá nodeSelector. áááŻáˇááąáŹáş áĄááşášááŤáááşááťáŹá¸á
á˝áŹááᯠááąáŤááşá¸á
ááşááźááşá¸ááźááˇáş áááşáááş áĄáá˝ááşááźáąáŹááşá¸áá˝ááşááźááşáá˝ááş áĄááťáááşáááŹá¸áá˝á˛ááźááşá¸ áááşáááşááťáŹá¸ááᯠáááşááážááááŻááşááŤáááşá
8. Pod Deployment ááᯠáŚá¸á áŹá¸ááąá¸ áááşáážááşááŤá
áááˇáşáá˝ááş node ááťáŹá¸áĄáá˝ááş áááşáážááşááąá¸ááŹá¸ááąáŹ pods ááťáŹá¸áážáááąá pods áĄáŹá¸ááŻáśá¸ááᯠáá°ááŽááąáŹáŚá¸á áŹá¸ááąá¸ááźááˇáş áááşááśááááşáᯠááááŻáááŻááŤá áĽáááŹáĄáŹá¸ááźááˇáşá áááşáááş áĄááťááŻáˇááąáŹ pods ááťáŹá¸ááᯠáĄááźáŹá¸áá°ááťáŹá¸áážáąáˇáá˝ááş áĄááŻáśá¸ááťáááŻááąáááşá
Kubernetes áááş Pod Priority áážááˇáş Preemption ááᯠá
áŽá
ááşáááşáážááşáááş ááá°ááŽááąáŹáááşá¸áááşá¸ááťáŹá¸ááᯠááąá¸ááąáŹááşáááşá áááşáááşáá˝ááş áĄá
áááşáĄáááŻááşá¸ááťáŹá¸á
á˝áŹ ááŤáááşáááş- áĄááŹááášáᯠPriorityClass áážááˇáş áĄáá˝ááşááąáŹáşááźááťááşááťáŹá¸ priorityClassName pod specification áá˛áážáŹá áĽáááŹáá
áşááŻáááŻááźááˇáşááĄáąáŹááşá
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-bit ááááşá¸ááźááˇáş 1 áááşáááşá¸áááˇáş áááŻáˇáááŻááş ááŽááťážáááŻááşáááşá ááąááŻááťáĄáŹá¸ááźááˇáş ááźááŻáááşáááźááŻáááşáááááŻááşááąáŹ mission-critical system pods ááťáŹá¸áĄáá˝ááş ááŽá¸áááˇáşáááşáááŻá¸ááťáŹá¸á áŚá¸á
áŹá¸ááąá¸áĄáááˇáşááźááˇáş pod áááş áážááˇáşáááşááąááŹááážááážáᏠááąááŹáá˝ážáąáˇááźáąáŹááşá¸áážáŻááźá
áşááąáŤáşáááşááźá
áşááźáŽá¸á áĄááťááŻáˇááąáŹ node áá
áşááŻááž pods ááťáŹá¸ááᯠáááşááŻááşáááşááźá
áşáááşá á¤ááášáááŹá¸áááş áááˇáşáĄáá˝ááş áááşá¸ááťááşáá˝ááşá¸ááŤáá áááşáááş áá˝áąá¸ááťááşáážáŻááᯠáááˇáşáááŻááşáááşá preemptionPolicy: Neverá áááŻáˇááąáŹááş ááźááŻáááşáážáŹáá°ááźááşá¸ ááážáááąáŹáˇááŤá pod áááş áááşá¸á
áŽááźááşá¸áá˝ááş áŚá¸á
á˝áŹáááşáááşááźá
áşááźáŽá¸ áááşá¸áĄáá˝ááş áĄááá˛áˇáĄáááşá¸áĄááźá
áşááťáŹá¸ááᯠáážáŹáá˝áąáááş á
áŽá
ááşáá°áĄáŹá¸ á
áąáŹááˇáşáááŻááşá¸áááşááźá
áşáááşá
áááŻáˇááąáŹááş ááťá˝ááşáŻááşáááŻáˇáááş áĄáááşáááŻáá˝ážááşááźáááˇáş pod áá
áşááŻááᯠáááşááŽá¸áááşá 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 á áááşáááşáážáŻáĄááźááşáážáŻááşá¸áááş áááşá¸ááąáŤáşáá˝ááşáá°áááşááąáŹááźáąáŹááˇáş á¤ááąááŹááąáˇá áşá ááŻááşááąáŹááşááťááşááᯠááźááˇáşááŹá¸ááąáŹáĄáááˇáşáá˝ááş ááááşá¸ááááşá¸ááŹá¸áááş áĄáá˝ááşáĄááąá¸ááźáŽá¸ááŤáááşá ááťážáááąáŹá áśáážáŻááşá¸áá áşááŻááźá áşááźáŽá¸ áá áşááťáááşáááşá¸áá˝ááşá ááąáŹááşá¸ááąáŹááźáąáážááşá¸ááťááşáážáŹ kube-apiserver áááŻáˇ áĄáááşá¸ááŻáśá¸áážáąáŹááˇáşáážáąá¸á áąáááşáĄáá˝ááş ETCD cluster ááᯠmaster node ááťáŹá¸ááąáŤáşáá˝ááşááŹá¸áááşááźá áşáááşá áááşá¤áááŻáˇáááŻááşáááŻááşááŤá ááŤáááşáá°ááťáŹá¸ááźáŹá¸áá˝ááş bandwidth ááąáŹááşá¸ááąáŹááşá¸ááźááˇáş ETCD ááᯠáááşáááŻááşáááťáž ááŽá¸á ááşáĄáąáŹááşááŹá¸ááŤá ETCD ááž node áááşááťáž áĄá áŻáĄááąá¸ááž áááááŻááşáážáŻááážááᲠáá˝ááşáá˝áŹá¸áááŻááşááźáąáŹááşá¸áááŻáááşá¸ áĄáŹááŻáśá ááŻááşááŤá

áĄá áŻáĄáá˝á˛áˇáá áşááŻáážá áĄáá˝á˛áˇáááşáĄááąáĄáá˝ááşááᯠáĄáá˝ááşáĄááťá˝áś áááŻá¸ááźážááˇáşááźááşá¸áááş á á˝ááşá¸ááąáŹááşáááşááŻááşááťá ááááşááźááˇáş áĄáážáŹá¸áĄáá˝ááşá¸ááśáááŻááşáááşááᯠáááŻá¸ááŹá áąáááŻááşááźáŽá¸ áĄááŹáĄáŹá¸ááŻáśá¸áááş ááááşá¸áážáááąá¸áááˇáşáááşáᯠáážááşááŹá¸ááŹá¸ááŤá
áááşááąáŹááşáážáŻááᯠá áááşáááşáážááşááźááşá¸áĄááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇááźáąáŹáááŻááŤáá áĄááźáśááźáŻááťááşáĄáááşá¸áááşáážáááŤáááşá
áĄá áŻáĄááąá¸ááĄáá˝ááşáĄá áŹá¸ááąáŤáşáá°áááşá ááąáŹááşá¸áá˝ááşááąáŹ ááŹáˇááşáá˛áážáá፠(áááşáááşáážáŻáááŻááşááŤáááşá ).
áĄáááşá áááşáááş DCs áá áşá áŻáś áááŻáˇáááŻááş áááˇáşáá˝ááşáááşáážááˇáş áá áşááşááťáŹá¸ááźáŹá¸áá˝ááş áĄá áŻáĄááąá¸áá áşááŻááᯠááźááˇáşááťááşááŹá¸ááťážááş áááˇáşáááşááťááşáĄáááşá¸áááşááᯠááźááşáááşá፠(áááşáááşáááŻááşáááşá ).
ááąáŹááşááťááş
á¤ááąáŹááşá¸ááŤá¸áá˝ááş ááťá˝ááşáŻááşáááŻáˇáĄáá˝á˛áˇáááş áááŻááşááŹáááşááźááŻá¸á áŹá¸áááˇáşáĄááťááşááťáŹá¸ááᯠááąáŹáşááźáááşá áááşá¸áááş ááŻááşááąáŹááşááťááşááťáŹá¸á áĄáááˇáşáááˇáşááąáŹáşááźááťááşáááŻááşááąáŹáşáááşá¸ áĄá áŻáĄáá˝á˛áˇáĄááąáŤáşáááŻááşá¸ááᯠáĄááąáŹááşá¸ááŻáśá¸ááźá áşáĄáąáŹááşááźáŻááŻááşáááş áĄááŻáśá¸áááşáááŻááşáááˇáş áá˝áąá¸ááťááşá ááŹááťáŹá¸á áĄá áŻáĄááąá¸áá áşááŻá áŽáááş áááşá¸ááááŻááşáááŻááşáááşá¸ááźááˇáş áá áşáá°áá°á¸ááźáŹá¸ááźáąáŹááşá¸ áážááşá¸áážááşá¸áááşá¸áááşá¸áááááźáŽá¸ áá˝á˛áˇá ááşá¸áážáŻáááŻááşááŹááźáąáážááşá¸ááťááşááťáŹá¸áááş ááťáŹá¸á á˝áŹáá˝á˛ááźáŹá¸áááŻááşáááşá áááŻáˇááźáąáŹááˇáş áááşá Kubernetes áĄá áŻáĄááąá¸ááᯠáááşáááşáááŻáˇá áąáŹááˇáşááźááˇáşáááşá¸áážááˇáş áááşá¸áá á˝ááşá¸ááąáŹááşáááşááᯠááźážááˇáşáááşááŻáśáážááˇáşáááşáááşá áááˇáşááŻáśáˇááźááşááťááşááá°áááş á áááşáááşá áŹá¸áá˝ááşááąáŹááşá¸ááŤáááşá áááˇáşáĄáá˝áąáˇáĄááźáŻáśááᯠáážááşááťááşááťáŹá¸áá˝ááş ááťážááąááŤá áááşá¸áááş á áááşáááşá áŹá¸áá˝ááşááąáŹááşá¸ááźáąáŹááşá¸ áááááŻááşáááşááźá áşáááşá
source: www.habr.com
