áĽáá° á°áᥠᣠááľááááá áĽá áá°á¨áá á á áŤáŠ ááľáá áŤá á¨áá°á ááĽáśá˝á áá áá áá á¨áĽ áŤáľááááᢠáá áĽá áá°áá áŞáŤáá˝ á á°ááłáłá ááá áá á˘á°áŠáľ? ááĽáŤááłááłá¸á á ááľá°ááá á áľááá ááĽáśá˝ áĽáá´áľ áá á¨áĽ áĽáá°ááťá? á¨ááĽáľ áááłá áĽáá´áľ ááá°áĽ ááťáá? á á áááá˝ ááŤá¨á áŤááá áááľ á áľááá áĽáá´áľ áá°áŤá¨áľ ááťáá? á¨á áááŹá˝á áááľ á˘á¨áá á ááłáá á¨áááŞáŤ áá´ áĽáá´áľ áĽáá°áá°áŤ áĽáá´áľ áá¨ááἠááťáá?
á áľáááą ááľáĽ áá ááááľ áá áá ááĽáśá˝ áĽááłá áááá áŤáľáááááłá - áá á áĽááἠááŽá°á°á áá áĽá áŤá ááᢠá k8s ááľáĽ áĽááá á¨ááĽá¨áľ ááááśá˝ á áá¨á°ááľ áááá˝ áááŤááĄ
- á˛áአ- áŽáŽá˝ ááľáĽ
- RAM - á áŁááľ
á¨áá á á áá ááĽáŤááłááą áááá፠áááľ ááááľ ááľáááśá˝á áááááľ ááťáá - áĽáŤááὠи áá°áŚá˝. áĽáŤááá˝ - ááŤáŁáá˝á áááľáŹáľ á¨ááľááá ááááľ á¨áá ááĽáśá˝ áá á°á ááľáááśá˝á (áĽá á á á ááá ááľ) ááááá ᣠáá°áŚá˝ á áá áŤáááŤá áá á ááá ááĽáśá˝ áá á¨áŁáľ áá°áĽ áŤááááá˘
á áá¸áŁáŤáá áááąáá ááááśá˝ á ááá áááá˝ áĽáá°ááá áľ áá¨áłáľ á áľááá ááᣠááá áá áŁá áŞá áĽáá°áá¨á°áá ááááá˘
- á¨ááĽá áľ áá°á áĽáť á ááá á¨á°ááááŁá¨áá ááĽáľ áĽáŤááá˝ á áŤáľ-á°á á¨áá°áŚá˝ áá áĽáŠá á¨áá áá áááľáłá (áá áá ááá á áŤááľ á áá°áá áá¨ááἠáá˝ááá˘) áĽáááŤá˘ áĽáá° áĽáááą á¨áá, áŽáá´ááአááááľ á ááŤáľáááá á°ááłáłá áá á áá áĽáť á¨á°áá°á áááá.
- áááĽáľ áĽáŤááá˝ á ááá á¨á°ááášáŁ á áá ááĽáľ áá ááá á¨áá°á áá°áŚá˝ á áá°áááá - áááľáᢠááŤáŁá á áĽáŤáą ááľááá ááááľ ááĽáśá˝ áĽáť á¨á°áá°á áá.
áĽáá˛áá á á ááľ á¨á°áá°á ááŤáŁ á°á¨á áá áĽáť áłááá á áľá áŚáł á°á¨á á¨áá¨á°ááľá á áŤááľ á áá áá á¨ááĽá¨áľ á áľá°áłá°áá áááá ááťáá á˘
- áá°áĽ ááá - á ááŤáŁá / á ááľ á°á¨á áá áŤááá á¨áĽááł ááᲠá ns ááľáĽ ááááá áĽá á ááŤáŁá / ááľ áá áŤááá ááŁáŞ áá°áŚá˝á ááááá˝ áĽá áĽáá˛áá ááá˝ á¨áá áááŤá áŽáá´áááŽá˝ / ááśá˝ (ááá á á°ááŤáá) áĽááłááá አááá¨áá¨á áŤáľáááá ᣠááĽáŤá¸áá áááľáĄ áĽá á áĽá´áśáš áá°áŚá˝ áĽá áĽáŤááá˝ ááľáĽ ááá á¨áá˝ááá ááŠááľ áááľá
- ResourceQuotas - á á á ááá á ns ááľáĽ áááá ááá áŽáá´áááŽá˝ á¨áĽááł ááá˛á ááááš áĽá áĽáá° á°áᥠá á á¨áŁá˘á ááŤá¨á ááĽáśá˝á áááá°áĽ áĽá á áá áááá (á áŤáŁá˘áá˝ á ááľááá á°á¨á áá á áĽáĽá áŤáá°á¨áá á áá)
á¨áá¨á°ááľ á¨ááĽáľ áá°áŚá˝á á¨ááŤááá á¨áááť ááłáŤáá˝ ááłááá˝ áá¸áá˘
-
á áአááŤáŁ á°á¨á;
containers: - name: app-nginx image: nginx resources: requests: memory: 1Gi limits: cpu: 200m
áĽáááŤá˘ á áá á ááŁá áŽáá´áááŠá á nginx áááľáŹáľ á˘áŤááľ 1á áá áŤá áĽá 0.2 á˛áአá ááľááá ááááą áá áŤáľááááłáᣠá˘á á ááŤáŁá 0.2 á˛áአáĽá áááá á¨ááááľá RAM á ááľááá ááááą áá ááá áá˝ááá˘
-
á á˘áá˛áá á°á¨á ns:
apiVersion: v1 kind: ResourceQuota metadata: name: nxs-test spec: hard: requests.cpu: 300m requests.memory: 1Gi limits.cpu: 700m limits.memory: 2Gi
áĽáááŤá˘ á ááŁáŞ ns ááľáĽ áŤááľ á¨ááá á¨áĽáŤá áŽáá´áááŽá˝ áľáá áá˛áአáĽá 300á áOP á¨1á ááĽáἠá áá˝áá á¨ááá áá°áĽ áľáá áá˛áአ700á áĽá 2á áOP ááá˘
-
á ns ááľáĽ áááŤáŁáá˝ ááŁáŞ áá°áŚá˝áĄ-
apiVersion: v1 kind: LimitRange metadata: name: nxs-limit-per-container spec: limits: - type: Container defaultRequest: cpu: 100m memory: 1Gi default: cpu: 1 memory: 2Gi min: cpu: 50m memory: 500Mi max: cpu: 2 memory: 4Gi
áĽáááŤá˘ á ááŁáŞá á¨áľá áŚáł áááá áŽáá´áááŽá˝ áĽáŤá áá° 100á áá˛áአáĽá 1á á OPᣠáá°áĽ - 1 á˛áአáĽá 2á áááá áŤáᢠá á°ááłáłá áá áá˛áአ(50m <x <2) áĽá RAM (500M < x < 4G) ááá á áá˝á áĽá´áśá˝ áá áá°áĽ á°ááá§áá˘
-
á¨ááľ-á°á¨á áá°áŚá˝áĄ-
apiVersion: v1 kind: LimitRange metadata: name: nxs-limit-pod spec: limits: - type: Pod max: cpu: 4 memory: 1Gi
áĽáááŤá˘ ááĽáŤááłááą ááľ á ááŁáŞ ns ᨠ4 vCPU áĽá 1G áá°áĽ ááá¨ááá˘
á áá áĽááá á áá°áŚá˝ áááááľ áá áĽá áá˝ áĽáá°áá°áĄá ááááá áĽáááááá˘
á á áááá˝ ááŤá¨á á¨áááŁá á áá´á ááŤá
áĽáá°ááŤááᾠᨠk8s ááá áĽáá° á áááá˝ ááŤá¨á ááľáá˝á ááá°áŤá¨áľ áááááľ á áá áľ á¨áá á°ááł á°áŞ, á á°áá°á áľáá° ááá áá°á¨áľ á¨áá°áŤ. áááľááá á áŁá áĽáŠáá ááľááá ááááľ á ááááĄá áľ áá áá áľáá° ááá á áááľ á°á¨ááá˝ ááľáĽ áŤáááá˘
- ááŁáŤáľ
- á°á¨á
áĽáááŤá˘ á á°áááá ááᲠáá°á¨áľ, á áľáĽáľáĽ áá á áááľá¨áľ ááľ ááľááá á¨ááťááŁá¸á ááśá˝ ááááŞáŤ áá á°ááá áá áá°ááĽáŤá (ááľááá ááááľ ááľáá áááľáŹáľ á á ááĽáśá˝ áĽááłááľ áá¨áááĽá á¨áᎠ- PodFitsResources)ᣠáĽá á¨á፠ááĽáŤááłááą áĽááá á áááá˝áŁ áĽáá°ááá á áľá፠á¨áá°áŁá¸áá áááŽá˝ ááĽáŚá˝ á°á°áĽá°áá (á¨á ááľ ááľááá ááááľ á¨á áá áá ááĽáśá˝á á¨áᎠᣠáĽá ááĽáŚá˝ ááá°áŁá - LeastResourceAllocation/LeastRequestedPriority/BalancedResourceAllocation) áĽá ááľ á ááľááá ááááľ áá á áŁá áĽá ááĽáŚá˝á ááááŤá (áĽá á áááá˝ áá áá áááł á á ááľ áá áŤáá ᣠá¨á፠á ááľ á áááá° ááá¨áŁá) .
á á°ááłáłá áá áááááĽá á ááŞá á¨ááľááá ááááľ áŤááľá ááĽáśá˝ á˛áááá á etcd ááľáĽ á á°á¨áḠáá¨á áĽáá°áá፠áá¨áłáľ áŤáľáááááłá - áááľá. á áá
ááľááá ááááľ áá ááá°áŤá á¨áĽáŤááłááą ááľ ááá áá°á á¨áá/áá°áĽáŁ ááľááááá á¨ááĽáľ áááł áá á áá°ááᢠáá
áá¨á á¨áľááá áá
ááľ ááá áá˝áá kubectl describe node $NODE
, áááłá:
# kubectl describe nodes nxs-k8s-s1
..
Non-terminated Pods: (9 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
ingress-nginx nginx-ingress-controller-754b85bf44-qkt2t 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d
kube-system kube-flannel-26bl4 150m (0%) 300m (1%) 64M (0%) 500M (1%) 233d
kube-system kube-proxy-exporter-cb629 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d
kube-system kube-proxy-x9fsc 0 (0%) 0 (0%) 0 (0%) 0 (0%) 233d
kube-system nginx-proxy-k8s-worker-s1 25m (0%) 300m (1%) 32M (0%) 512M (1%) 233d
nxs-monitoring alertmanager-main-1 100m (0%) 100m (0%) 425Mi (1%) 25Mi (0%) 233d
nxs-logging filebeat-lmsmp 100m (0%) 0 (0%) 100Mi (0%) 200Mi (0%) 233d
nxs-monitoring node-exporter-v4gdq 112m (0%) 122m (0%) 200Mi (0%) 220Mi (0%) 233d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 487m (3%) 822m (5%)
memory 15856217600 (2%) 749976320 (3%)
ephemeral-storage 0 (0%) 0 (0%)
áĽáá ááá ááľáá˝ á á ááľ á¨á°áá°á ááľááá ááááľ áá á˛á°áŠ áĽá áĽáá˛áá áĽáŤááłááą ááľ á¨áá ááá¸áá ááĽáśá˝ áĽáááá¨áłáá. áĽá ááŽáááĽ-ááŽá-ááľá°áśá˝-1573793820-xt6q9 ááľ á˛ááá á¨ááŽááŤá á°áŞ áááἠááľáłááťáá˝ áá áĽáá°áááľá áĽáá (áá áá¨á 10 áá á¨ááá˘áŤ á°á¨á á á áľáááŞá áľááá ááááŽá˝ ááľáĽ á˛ááἠá áá á°ááłá ááľáĽ ááłáŤá -v=10 )::
ááááĽ
I1115 07:57:21.637791 1 scheduling_queue.go:908] About to try and schedule pod nxs-stage/cronjob-cron-events-1573793820-xt6q9
I1115 07:57:21.637804 1 scheduler.go:453] Attempting to schedule pod: nxs-stage/cronjob-cron-events-1573793820-xt6q9
I1115 07:57:21.638285 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s5 is allowed, Node is running only 16 out of 110 Pods.
I1115 07:57:21.638300 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s6 is allowed, Node is running only 20 out of 110 Pods.
I1115 07:57:21.638322 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s3 is allowed, Node is running only 20 out of 110 Pods.
I1115 07:57:21.638322 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s4 is allowed, Node is running only 17 out of 110 Pods.
I1115 07:57:21.638334 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, Node is running only 16 out of 110 Pods.
I1115 07:57:21.638365 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s12 is allowed, Node is running only 9 out of 110 Pods.
I1115 07:57:21.638334 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s11 is allowed, Node is running only 11 out of 110 Pods.
I1115 07:57:21.638385 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s1 is allowed, Node is running only 19 out of 110 Pods.
I1115 07:57:21.638402 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s2 is allowed, Node is running only 21 out of 110 Pods.
I1115 07:57:21.638383 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, Node is running only 16 out of 110 Pods.
I1115 07:57:21.638335 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, Node is running only 18 out of 110 Pods.
I1115 07:57:21.638408 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s13 is allowed, Node is running only 8 out of 110 Pods.
I1115 07:57:21.638478 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s10 is allowed, existing pods anti-affinity terms satisfied.
I1115 07:57:21.638505 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s8 is allowed, existing pods anti-affinity terms satisfied.
I1115 07:57:21.638577 1 predicates.go:1369] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s9 is allowed, existing pods anti-affinity terms satisfied.
I1115 07:57:21.638583 1 predicates.go:829] Schedule Pod nxs-stage/cronjob-cron-events-1573793820-xt6q9 on Node nxs-k8s-s7 is allowed, Node is running only 25 out of 110 Pods.
I1115 07:57:21.638932 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 9
I1115 07:57:21.638946 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 2343 millicores 9640186880 memory bytes, score 8
I1115 07:57:21.638961 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: BalancedResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 9
I1115 07:57:21.638971 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: BalancedResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7
I1115 07:57:21.638975 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: LeastResourceAllocation, capacity 39900 millicores 66620170240 memory bytes, total request 4107 millicores 11307422720 memory bytes, score 8
I1115 07:57:21.638990 1 resource_allocation.go:78] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: LeastResourceAllocation, capacity 39900 millicores 66620178432 memory bytes, total request 5847 millicores 24333637120 memory bytes, score 7
I1115 07:57:21.639022 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: TaintTolerationPriority, Score: (10)
I1115 07:57:21.639030 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: TaintTolerationPriority, Score: (10)
I1115 07:57:21.639034 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: TaintTolerationPriority, Score: (10)
I1115 07:57:21.639041 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: NodeAffinityPriority, Score: (0)
I1115 07:57:21.639053 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: NodeAffinityPriority, Score: (0)
I1115 07:57:21.639059 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: NodeAffinityPriority, Score: (0)
I1115 07:57:21.639061 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: InterPodAffinityPriority, Score: (0)
I1115 07:57:21.639063 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639073 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: InterPodAffinityPriority, Score: (0)
I1115 07:57:21.639077 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639085 1 interpod_affinity.go:237] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: InterPodAffinityPriority, Score: (0)
I1115 07:57:21.639088 1 selector_spreading.go:146] cronjob-cron-events-1573793820-xt6q9 -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639103 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s10: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639109 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s8: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639114 1 generic_scheduler.go:726] cronjob-cron-events-1573793820-xt6q9_nxs-stage -> nxs-k8s-s9: SelectorSpreadPriority, Score: (10)
I1115 07:57:21.639127 1 generic_scheduler.go:781] Host nxs-k8s-s10 => Score 100037
I1115 07:57:21.639150 1 generic_scheduler.go:781] Host nxs-k8s-s8 => Score 100034
I1115 07:57:21.639154 1 generic_scheduler.go:781] Host nxs-k8s-s9 => Score 100037
I1115 07:57:21.639267 1 scheduler_binder.go:269] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10"
I1115 07:57:21.639286 1 scheduler_binder.go:279] AssumePodVolumes for pod "nxs-stage/cronjob-cron-events-1573793820-xt6q9", node "nxs-k8s-s10": all PVCs bound and nothing to do
I1115 07:57:21.639333 1 factory.go:733] Attempting to bind cronjob-cron-events-1573793820-xt6q9 to nxs-k8s-s10
áĽáá áá ááááŞáŤ áá áááááĽá á ááŞá áááááŁá¸á á¨áá˝á 3 ááśá˝ (nxs-k8s-s8ᣠnxs-k8s-s9ᣠnxs-k8s-s10) á˛áŤáŁáŤ áĽá áĽáá°ááŤááá áĽááŤááᢠá¨ááŤá á áŁá á°áľáá á¨áááá ááľááá ááááľ áááá°á ááĽáŤááłááą á¨áĽááá á áááá˝ á á ááŤáł áááŞáŤáá˝ (BalancedResourceAllocation, LeastResourceAllocationá á¨ááŽ) áá¤áśá˝á áŤá°ááᢠá áá¨á¨áťá, ááľ á ááľááá ááááľ áá á¨áá°áá á¨ááĽáĽ áĽááľ (áĽáá áá áááľ á áááá˝ á á ááľ áá á°ááłáłá á¨ááĽáĽ áĽááľ 100037, áľááá á ááľ á áááá° ááá¨áŁá - nxs-k8s-s10).
áá°áá°ááŤ: á ááľ ááľááá ááááľ ááá áá°áĽ áŤáá°ááááŁá¸á ááľáá˝ á˘á°áŤ, á¨ááŤá á k8s (á¨ááĽáľ áááł á ááťá) áá á áá ááľááá ááááľ áá áĽáá°áá áŤá ááśá˝ á¨áá áá áĽáŠá áááá. áľááá , áĽááľá, áááłá, ááłáááľ áŤáá áá°áľ (áááłá, wowza) áŤáá ááľ áŤáááľ áĽá ááĽáą ááá áá°áŚá˝ áŤáá°áááĄ, áá ááľ á áĽáááą áááá á¨ááľááá ááĽáśá˝á á˛á á áááł ááá á áá˝áá, ááá áá á k8s áá ááľááá ááááľ. áĽááłáá°áŤá ááá áŤá áĽá á°á¨á á˛áᣠá°ááłáłá á¨ááĽáĽ áĽááľ áá¸ááá (áľáááááá áŤááľá ááĽáśá˝ á áááááá ááĽáĽ) áĽáá° ááľááá ááááľ á¨áá°áŤ ááľ á¨ááá áá ᣠáá á á áá¨á¨áť á á áááá˝ ááŤá¨á áŤááá áááľ áá° áááá áŤááá áľáááľ ááŤá፠áá˝ááá˘
á¨ááľ ááľááŁáľ
áĽáá°ááłááá áĽáŤááłááą ááľ á¨3 QoS áááá˝ ááľáĽ á ááąá ááá°áŁááĄ-
- ááľáľá á°á°áĽáśáłáᢠ- á ááłá ááľáĽ ááá áĽáŤááłááą ááŤáŁ ááá á°á¨ áľááľáł áĽá áá˛áአáĽáŤá áĽá áá°áĽ á˛ááá˝ ááá°áŁá ᣠáĽá áĽááá áĽá´áśá˝ ááááľ á ááŁá¸á
- ááááł á¨áá˝á - á ááľ ááľáĽ á˘áŤááľ á ááľ áŽáá´ááá áĽáŤá áĽá áá°áĽ á ááᣠá¨áĽáŤá áá < áá°á
- ááἠáĽá¨áľ - á ááľ ááľáĽ á ááľ áŽáá´ááá á ááááá áľ áá á¨ááĽáľ ááľáááľ
á á°ááłáłá áá, á ááľ ááľááá ááááľ á¨ááĽáľ áĽáĽá¨áľ (á˛áľá, áá á°á¨ áľááľáł) á˛áŤááĽáá áŠá¤ááľ á¨ááľ áĽá ᨠQoS áááá á áľá፠áááľ ááľáĽ á ááľááŁáľ á á°áᨠáľáá°-ááá áá°á¨áľ á°á¨á ááľá áľ áĽá ááľááŁáľ ááááŤá. áááłá ᣠáľá RAM áĽá¨á°ááááá á¨áá ᣠá¨á፠á QoS ááá áá á áááľá¨áľ ᣠááĽáŚá˝ á áá¨á°áá ááá áá á¨áľ áá°áŁá á˘
- á¨á°á¨ááá -998
- ááἠáĽá¨áľ: 1000
- ááááł á¨áá˝á: á°áá (á¨áá°á (2, 1000 - (1000 * memoryRequestBytes) / machineMemoryCapacityBytes)ᣠ999)
áĽáááŤá˘ á á°ááłáłáŠ á áľááŤ, áŠá¤ááą á ááááŞáŤ á¨áá°á áĽá¨áľ QoS áááá á¨ááľááá ááááą áŤáľááŁá.
áá°áá°ááŤ: á¨áááááá ááľ á áአáá á¨ááĽáľ áĽáĽá¨áľ á áááá áľ áá á¨á ááá ááľáĽ á¨ááľááŁáľ áĽáľáá áááááľ á¨ááá á¨á áľááŤá áá ᣠáĽáá˛áá ááĽáą áĽáŤááá / áá°áĄá ááááááľ áĽááá ááľá¨á á ááĽááľ á˘
á¨á áááŹá˝á ááľáľ (HPA) á ááľá á ááśáá˛áŤááá ááŤááá
áľáŤá á ááĽáľ á á ááá (áľáááľ - á˛ááŠ/áŤá ááá á°á áá - rps) áá á áááľá¨áľ á¨ááłáá˝á ááĽá á áŤáľ-á°á áá¨áá áĽá ááááľ á˛áťá ᨠk8s á áŤá áĽáá° HPA (á ááľá ááľ á ááśáľáŤáá)ᢠáľáá° ááá á¨áá¨á°áá ááá˘
- á áá áŤááľ á¨á°áľá°áá ááĽáśá˝ ááŁáŚá˝ á°ááľááá (currentMetricValue)
- áááĽáą á¨áááááľ áĽá´áśá˝ á°ááľááá (desiredMetricValue)ᣠááľáááľ ááĽáśá˝ á¨áááááľ áĽáŤáá á áá áá ááá˘
- á¨á áá á ááá˝ áĽááľ á°ááľáá (á¨á áá á ááá˝)
- á¨áá¨á°áá áááá á¨áááááá á¨á°áŁá áĽááľ áŤá°áá (desiredReplicas)
á¨ááááReplicas = [ currentReplicas * ( currentMetricValue / wantedMetricValue)]
á áá áááł á¨áááŞáŤ ááŹáľ (currentMetricValue / wantedMetricValue) áá° 1 á˛á á á áá¨á°áľá (á áá áááł á¨áááá°áá áľá á°áľ áĽáŤáłá˝á áááááľ áĽáá˝ááá ᣠá ááŁáŞááľ 0.1 áá)á˘
á á˛áአáááł áá á áááľá¨áľ á¨á ááá˝á áĽááľ áááἠá áľááá á áááá áľ á¨áá°áá áŞáŤ-áá¨áŤ áá°áá áŞáŤá (áĽáá° áá°ááŤáľ á¨á°ááááá) ááłá á áá áá hpa áĽáá´áľ áĽáá°áá°áŤ áĽáááá¨áľá˘
-
á¨áá°áá áŞáŤ á áá¸áŁáŤá
kind: Deployment apiVersion: apps/v1beta2 metadata: name: app-test spec: selector: matchLabels: app: app-test replicas: 2 template: metadata: labels: app: app-test spec: containers: - name: nginx image: registry.nixys.ru/generic-images/nginx imagePullPolicy: Always resources: requests: cpu: 60m ports: - name: http containerPort: 80 - name: nginx-exporter image: nginx/nginx-prometheus-exporter resources: requests: cpu: 30m ports: - name: nginx-exporter containerPort: 9113 args: - -nginx.scrape-uri - http://127.0.0.1:80/nginx-status
áĽáááŤá˘ á¨áá°áá áŞáŤá ááľ ááááŞáŤ á áááľ á ááŁááá˝ áĽáá°ááᨠáĽááŤáá ᣠáĽáŤááłááłá¸á áááľ nginx áĽá nginx-exporter ááŤáŁáá˝á áááá ᣠááĽáŤááłááłá¸á á¨á°áá°áᢠáĽáŤááá˝ áá˛ááŠ.
-
ᨠHPA ááááľáś
apiVersion: autoscaling/v2beta2 kind: HorizontalPodAutoscaler metadata: name: app-test-hpa spec: maxReplicas: 10 minReplicas: 2 scaleTargetRef: apiVersion: extensions/v1beta1 kind: Deployment name: app-test metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 30
áĽáááŤá˘ á¨Deployment áá°áá áŞáŤ-áá°ááá á¨áá¨áłá°á áĽá á á˛áአá áááŤá˝ áá á áááľá¨áľ á¨ááľ ááĽáá á¨áá°áá áŞáŤá áá á¨ááŤáľá°áŤáá hpa áá áá (ááą á¨áááááá á˛áአ30 á ááśáá áĽáá˛ááľáľ áĽáá áĽááá) á¨á°áŁááľ áĽááľ á ááľáĽ ááᢠá¨2-10 áŤáá ááá.
á ááᣠá á ááą ááľááá˝ áá á¸ááá á¨á°á ááá ᨠhpa Operation áá´á áĽáááá¨áľáĄ-
# kubectl top pod NAME CPU(cores) MEMORY(bytes) app-test-78559f8f44-pgs58 101m 243Mi app-test-78559f8f44-cj4jz 4m 240Mi
á á á ááá á¨áá¨á°áá á áá:
- á¨ááááá áĽá´áľ (desiredMetricValue) - á hpa á ááĽáŽá˝ áá á¨áľ 30% á ááá˘
- á¨á áá áá (currentMetricValue) - ááľááľ, á°ááŁáŁáŞ-á áľá°áłáłáŞ á % ááľáĽ áŤááá á¨ááĽá¨áľ áááł á ááŤá áá áŤá°áá, áááľá. á áááłá áááł á¨áá¨á°ááľá áŤá°ááá:
- áášá á¨ááľ áááŞáŤáá˝á á¨ááľáŞá á áááአááá ááᣠi.e. 101á áĽá 4á
- á ááŤá ááá áĽá´áľ áŤá°ááᣠáááľá (101á + 4á) / 2 = 53á
- áááááá á¨ááĽáľ áááł ááá ááá áŤááá (ááá á á¨ááá áŽáá´áááŽá˝ áĽáŤááá˝ á°á áááá) 60m + 30m = 90m
- á¨áĽáŤáá ááľ á ááá á ááŤá á¨á˛áአáááł ááśá áŤá°ááᣠi.e. 53á/90á * 100% = 59%
á áá á¨á°áŁááá˝á ááĽá áááἠáĽááłááĽá áááá°á á¨ááŤáľááááá áá á ááá°áá, áá áá áááľá¨á, áŽáá¸á áĽáá°ááá:
ratio = 59% / 30% = 1.96
áĽáááŤá˘ á¨á°áŁááá˝ áĽááľ ~ 2 áá áĽá áá á áá° [2 * 1.96] = 4 áá¨áá á áá áľá˘
áá áááŤ: áĽáá°áááá¨áąáľ, áá áá´ áĽáá˛á áŤ, á áľáááá áááł á ááłá¨á ááľ ááľáĽ á¨ááá ááŤáŁáá˝ áĽáŤááá˝ ááááľ áá.
á¨á áááá˝ á ááľá á ááśáá˛á áááŞáŤ áá´ (áááľá°á á ááśáá˛á)
á áááľ áá¨ááá áá áľ á á˛áľá°á áá áŤááá á ááłá á°á˝áĽá áááľáááľ á¨á°ááᨠhpa ááአá á á áá°áá. áááłá ᣠá hpa á°ááŁáŁáŞá áĽáŤ á áľáŞáŤá ááľáĽ áŁáá á áá áśá˝ áá á¨áľ ᣠá¨á°áŁá áĽááľ á 2 áá áá¨áá áĽááłáá áľ áááľáá ᣠáá á ááááš áĽáá°áá áŤá á ááŤáł ááśá˝á áááľáŹáľ áá ááĽáśá˝ á¨áá¸áá (áááľá ááľááá ááááą áá áá áá á¨áĽ á áá˝áá) á¨á°á á¨á ááĽáśá˝ áá° áĽáŤáá ááľ) áĽá áĽááá ááľáá˝ áá° á áá áŁá á áá ááłáá áááł ááá¨áŤáá˘
á áá á ááŁáᣠá á áŤá˘á á°ááá IaaS/PaaS (áááłá GKE/GCEᣠAKSᣠEKSᣠááá°) áŤááᣠáĽáá° ááłáŞáŤ ááľááá á ááśáá˛á. á áááľá°á ááľáĽ á¨áá°ááá áĽá áá á°ááá á¨á áááá˝ áĽááľ áĽáá˛áŤááá áĽá á áá áŤááá á¨ááśá˝ áĽááľ (á¨á°áá á á áŤá˘áá á¤áá á á áá°áá ááľááá ááááľá áááá/á ááľáááľ) áĽáá˛áŤáľá°áŤáá ááá áľáááłá á áááľá°á áĽá á ááłáá˝ ááľáĽ á¨ááĽáľ áĽáĽá¨áľ á˛ááᢠáááááĽá ááľáŤá á ááťáá (á áá áŁá á áá áŤá)á˘
áá áááŤ: ááśá˝á á ááśáá˛á áááľá¨á á ááľ áŽáá´áááŽá˝ ááľáĽ áĽáŤááá˝á áááááľ á áľááá áá k8s á ááľááá ááááľ áá áŤááá áááľ á áľááá ááááá áĽá á áá áá á¨áľ á áááľá°á ááľáĽ ááŁáŠá ááľ áááľááá ááá ááĽáśá˝ áĽáá°áá áŞáááľ áŤáľáá á˘
áá°áá°ááŤ
á áááŹá˝á á á°áłáŤ áááł áĽáá˛á ፠á¨ááŤáŁ ááĽáśá˝ áá°áŚá˝á áááá á á áľááá áĽááłááá áἠááŁá áááŁá ᣠáá á ááá á áá¨á°ááľ ááááŤáśá˝ áá áá ááľá¨á á¨á°áťá áá á˘
- á k8s á áááá˝ ááŤá¨á áŤáá áááľ áááŁá á á ááá á¨áá á°ááłáá á¨á áá áľáááá á á áŤá áááááľ
- á¨"ááľ ááľááŁáľ" ááľá°áľ á¨áá¨á°áľ áĽáľáá áááááľ
- á¨á áááŹá˝á ááľáľ (HPA) á ááľá á ááśáá˛áá áááĽáŤáľ
- áá°áá á á áŤá˘áá˝ á¨á áááá˝ á ááľá áŤáľ-áľáŹá (Cluster Autoscaling)
á áĽááá˝á áá ááá˝ á˝ááá˝á áŤááĽáĄáĄ-
á´ááśá á¨á§á᧠ááľáá - áŠá áááľáľ-á°ááá á¨á§á᧠ááľááŽá˝ á Nginx á°áááá áááá˝á ááááŁáľ áŤáááᾠᨠClickHouse áá° ClickHouse á¨áááľ áááŁáą áá á ááŁá? á áááá ááľáĽ áŤááá á¨á ááľ áĽá á áá¨áłáľ Docker ááľáá˝á áááááľ áśáľáľ ááá áá´áá˝ áĽá ááĽá áŤáá¸á á¨á°ááŤáŠ á¨áľá ááŽáááśá˝ ááľáŹ
ááá: hab.com