αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes Pod

αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes Podαžšαž„αŸ’αžœαžΆαž“αŸ‹αžŠαŸ„αž™ Tohad

αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ Kubernetes αžœαžΆαž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆαž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž—αŸ’αž›αŸαž…αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž’αž“αž’αžΆαž“αž’αž»αž„αŸ” αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡ αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž“αžΆαžαžΆαžšαžΌαž”αž—αžΆαž– Docker αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ’αžšαž»αž˜ Kubernetes αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ’αžšαŸ„αž™αž˜αž€ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž±αŸ’αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αž•αž›αž·αžαž€αž˜αŸ’αž˜αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αžΆαž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αŸ‚αž„αž…αŸ‚αž€αž’αž“αž’αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžš αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž˜αžΆαž“αž–αž½αž€αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž αžΎαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‘αŸαŸ”

αž€αŸ’αžšαž»αž˜αž€αžΆαžšαž„αžΆαžš Kubernetes aaS αž–αžΈ Mail.ru αž”αž€αž”αŸ’αžšαŸ‚αž’αžαŸ’αžαž”αž‘αž’αŸ†αž–αžΈαž’αž“αž’αžΆαž“αž€αž»αž„αžαžΊαž“αŸαžš (CPU & MEM) αžŸαŸ†αžŽαžΎ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αŸ” αž’αŸ’αž“αž€αž“αžΉαž„αžšαŸ€αž“αž–αžΈαž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž αžΎαž™αž“αžΉαž„αž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αž–αž½αž€αžœαžΆαŸ”

αž’αž“αž’αžΆαž“αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš

αž™αžΎαž„αž˜αžΆαž“αž’αž“αž’αžΆαž“αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αžŠαŸ‚αž›αž˜αžΆαž“αž―αž€αžαžΆαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αž’αž„αŸ’αž‚αž—αžΆαž–αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžŽαŸ’αžαžΆαž› (αžŸαŸŠαžΈαž—αžΈαž™αžΌ) - αžŸαŸ’αž“αžΌαž›;
  • αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† (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 αž–αžΈαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹ Pod αž‚αžΊαž‡αžΆαž’αžΆαžαž»αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αžΆαžαž»αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ Pod αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαžšαž½αž…αž αžΎαž™αŸ” αžαžΎαž’αŸ’αž“αž€αžŸαŸ’αžœαŸ‚αž„αžšαž€αžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αžŸαž˜αžšαž˜αŸ’αž™αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?

Kubernetes αž˜αžΆαž“αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‡αžΆαž…αŸ’αžšαžΎαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„αžαŸ’αž“αžΆαŸ†αž„αž˜αŸ αž¬αžαŸ’αž“αžΆαŸ†αž„αž˜αŸ (αž™αž“αŸ’αžαž αŸ„αŸ‡αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ Kubernetes)αŸ” αžαŸ’αž“αžΆαŸ†αž„αž˜αŸαž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ– kube-apiserver, kube-controller-manager αž“αž·αž„ kube-scheduler αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž› kube αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž–αž·αž“αž·αžαŸ’αž™αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž•αžαžαž›αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžαŸ’αž˜αžΈ αž“αž·αž„αžŸαŸ’αžœαŸ‚αž„αžšαž€αžαŸ’αž“αžΆαŸ†αž„αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž“αžΉαž„αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž•αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžšαž½αž˜αž‘αžΆαŸ†αž„αž…αŸ†αž“αž½αž“αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαŸ” αž”αž‰αŸ’αž‡αžΈαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžŠαŸ„αž™ kube-scheduler αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αŸ” pod αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“αž–αž·αž“αŸ’αž‘αž»αžαŸ’αž–αžŸαŸ‹αž”αŸ†αž•αž»αžαŸ”

αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes PodαžαžΎαž•αžαž–αžŽαŸŒαžŸαŸ’αžœαžΆαž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž“αŸ…αž―αžŽαžΆ?

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžαžΆ kube-scheduler αž‚αž½αžšαžαŸ‚αž€αŸ†αžŽαžαŸ‹αž–αŸαž› Pod αž–αžŽαŸŒαžŸαŸ’αžœαžΆαž™αžαŸ’αž˜αžΈαŸ” αž…αž„αŸ’αž€αŸ„αž˜ Kubernetes αž˜αžΆαž“αžαŸ’αž“αžΆαŸ†αž„αž–αžΈαžšαŸ– A αž“αž·αž„ B. αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰ αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž€αžΆαž›αžœαž·αž—αžΆαž‚ kube αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž–αŸαž› Pod αž“αŸ…αž›αžΎ node A αž”αžΆαž“αž‘αŸ - αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“ (αž˜αž·αž“αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†) αž˜αž·αž“αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹ Pod αž–αžŽαŸŒαžŸαŸ’αžœαžΆαž™αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† 1 GB αžŠαŸ‚αž›αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžŠαŸ„αž™ Pod αž–αžŽαŸŒαžŸαŸ’αžœαžΆαž™ αž“αžΉαž„αž˜αž·αž“αžŸαž˜αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„ A αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž˜αžΆαž“αž‚αžΊ 0,5 GB αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž“αžΆαŸ†αž„ B αž˜αžΆαž“αž’αž“αž’αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› kube-scheduler αžŸαž˜αŸ’αžšαŸαž…αžαžΆαž‘αž·αžŸαžŠαŸ…αž“αŸƒ Pod αž–αžŽαŸŒαžŸαŸ’αžœαžΆαž™αž‚αžΊ node B αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒ node αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Pod αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αž•αž›β€‹αž”αŸ‰αŸ‡β€‹αž–αžΆαž›αŸ‹β€‹αž“αŸƒβ€‹αž’αž“αž’αžΆαž“β€‹αžšαžΉαž˜?

αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αž‚αžΊαž‡αžΆαž–αŸ’αžšαŸ†αžŠαŸ‚αž“αžŠαŸ‚αž› CPU/MEM αž˜αž·αž“αž’αžΆαž…αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αžΆαž“αž‘αŸαŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž’αž“αž’αžΆαž“ CPU αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ‚αž›αžˆαžΆαž“αžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ CPU αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αžΉαž„αž˜αž·αž“αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™ Pod αž…αžΆαž€αž…αŸαž‰αž‘αŸαŸ” αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž€αžΆαžšαž”αž·αž‘ CPU αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ MEM αžαŸ’αžšαžΌαžœαž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹ αž€αž»αž„αžαžΊαž“αŸαžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αžˆαž”αŸ‹αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ OOM-Killer αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ RestartPolicyαŸ”

αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αž·αž„αž’αž“αž’αžΆαž“αž’αžαž·αž”αžšαž·αž˜αžΆαž“αŸƒαž›αž˜αŸ’αž’αž·αž

αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes Podαž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž’αž“αž’αžΆαž“αžšαžœαžΆαž„ Docker αž“αž·αž„ Kubernetes

αžœαž·αž’αžΈαž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαžΎαž˜αŸ’αž”αžΈαž–αž“αŸ’αž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαŸ†αžŽαžΎαž’αž“αž’αžΆαž“ αž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαžŽαŸ‚αž“αžΆαŸ†αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„ Kubernetes αž“αž·αž„ Docker αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž›αžΎ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž› Kubernetes αž“αž·αž„αž‘αž„αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ Docker αž˜αžΆαž“αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‚αŸ’αž“αžΆαŸ”

αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ– αžŸαŸ†αžŽαžΎαž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹

containers:
...
 resources:
   requests:
     memory: "0.5Gi"
   limits:
     memory: "1Gi"

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαžΆαžŸαŸ‹αž‡αžΆαž”αŸƒαŸ” αž’αžΆαžŸαŸ’αžšαŸαž™β€‹αž›αžΎ αž―αž€αžŸαžΆαžš Kubernetesαž™αžΎαž„αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‡αžΆαž›αŸαžαŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαž‚αžΊαž‡αžΆαž…αŸ†αž“αž½αž“αž‚αžαŸ‹ αž§αž‘αžΆαž αžšαžŽαŸ 2678 - αž“αŸ„αŸ‡αž‚αžΊ 2678 αž”αŸƒαŸ” αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž”αŸ’αžšαžΎαž”αž…αŸ’αž…αŸαž™αž”αžΆαž“αžŠαŸ‚αžšαŸ” G ΠΈ GiαžšαžΏαž„αž…αŸ†αž”αž„αž‚αžΊαžαŸ’αžšαžΌαžœαž…αžΆαŸ†αžαžΆαž–αž½αž€αž‚αŸαž˜αž·αž“αžŸαŸ’αž˜αžΎαŸ” αž‘αžΈαž˜αž½αž™αž‚αžΊαž‘αžŸαž—αžΆαž‚ αž αžΎαž™αž‘αžΈαž–αžΈαžšαž‚αžΊαž‚αŸ„αž›αž–αžΈαžšαŸ” αžŠαžΌαž…αž§αž‘αžΆαž αžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš k8sαŸ– 128974848, 129e6, 129M, 123Mi - αž–αž½αž€αž‚αŸαž‚αžΊαžŸαž˜αž˜αžΌαž›αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸ Kubernetes limits.memory αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž‘αž„αŸ‹αž‡αžΆαžαž· --memory αž–αžΈ Docker αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ request.memory αž˜αž·αž“αž˜αžΆαž“αž–αŸ’αžšαž½αž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Docker αž–αŸ’αžšαŸ„αŸ‡ Docker αž˜αž·αž“αž”αŸ’αžšαžΎαžœαžΆαž›αž“αŸαŸ‡αž‘αŸαŸ” αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžŸαž½αžšβ€‹αžαžΆ αžαžΎβ€‹αž“αŸαŸ‡β€‹αž…αžΆαŸ†αž”αžΆαž…αŸ‹β€‹αž¬β€‹αž‘αŸ? αž”αžΆαž‘αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž–αžΈαž˜αž»αž“ αžœαžΆαž›αžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes αŸ” αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž–αŸαžαŸŒαž˜αžΆαž“αž–αžΈαžœαžΆ kube-scheduler αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŽαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž–αŸαž› Pod αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†?

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαžˆαžΆαž“αžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αŸ„αŸ‡ Pod αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž“αŸƒ Pods αžŠαŸ‚αž›αžˆαž”αŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαŸ†αž„αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž€αž˜αŸ’αžšαž·αžαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‘αžΆαž”αž–αŸαž€?

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαž›αžΎαžŸαž–αžΈαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ OOM-Killed αŸ” αž αžΎαž™αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ RestartPolicy αžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‚αžΊ Always.

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†?

Kubernetes αž“αžΉαž„αž™αž€αžαž˜αŸ’αž›αŸƒαž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αž€αŸ†αžŽαžαŸ‹αžœαžΆαž‡αžΆαžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ†?

αž€αž»αž„αžαžΊαž“αŸαžšαž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžšαžΉαžαž”αž“αŸ’αžαžΉαž„αž‘αŸ αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αžœαžΆαž…αž„αŸ‹αž”αžΆαž“αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αžΆαžαŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒ node αž“αŸ„αŸ‡ OOM αž“αžΉαž„αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž‚αžΆαžαŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αž»αž„αžαžΊαž“αŸαžšαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ RestartPolicyαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž€αžΆαžšαž…αž„αž…αžΆαŸ†?

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž€αžšαžŽαžΈαžŠαŸαž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αžαŸ– αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž˜αž·αž“αžŠαžΉαž„αžαžΆαž’αž“αž’αžΆαž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ„αŸ‡αž‘αŸ αž αžΎαž™αžœαžΆαž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αŸ” αž€αŸ’αž“αž»αž„β€‹αž€αžšαžŽαžΈβ€‹αž“αŸαŸ‡ αžœαžΆβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž›αŸ’αž’β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜β€‹αž›αžΎβ€‹αž…αž“αŸ’αž›αŸ„αŸ‡β€‹αžˆαŸ’αž˜αŸ„αŸ‡ (αž€αŸ†αžŽαžαŸ‹β€‹αžŠαŸ„αž™ LimitRange)αŸ” αž˜αž·αž“αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž‘αŸ - Pod αž˜αž·αž“αž˜αžΆαž“αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αžœαžΆαž…αž„αŸ‹αž”αžΆαž“αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αžαŸ’αž“αžΆαŸ†αž„αž’αžΆαž…αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“ Pod αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸαŸ” αžœαžΆαž‡αžΆαžšαžΏαž„αžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αžšαžΏαž„αž“αŸ„αŸ‡αŸ” Requests.memory - αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžαž˜αŸ’αž›αŸƒαž’αž”αŸ’αž”αž”αžšαž˜αžΆαž‘αŸαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž”αžšαž·αž˜αžΆαžŽαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ αžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αŸ’αžŸαžΆαž€αž»αž„αžαžΊαž“αŸαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž€αŸ†αžŽαžαŸ‹αžαž˜αŸ’αž›αŸƒαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ request.memory ΠΈ limit.memory. αž“αŸαŸ‡αž’αžΆαž“αžΆαžαžΆ Kubernetes αž“αžΉαž„αž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž› Pod αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž˜αžΆαž“αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Pod αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαŸ” αžŸαžΌαž˜αž…αž„αž…αžΆαŸ†αŸ– αž€αžΆαžšαž’αŸ’αžœαžΎαž•αŸ‚αž“αž€αžΆαžš Kubernetes Pod αž‚αž·αžαžαŸ‚αž–αžΈαž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” requests.memoryαž“αž·αž„ limits.memory αž˜αž·αž“αž™αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαŸ”

αžŸαŸŠαžΈαž—αžΈαž™αžΌαŸ– αžŸαŸ†αžŽαžΎ αž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹

containers:
...
 resources:
   requests:
     cpu: 1
   limits:
     cpu: "1200m"

αž‡αžΆαž˜αž½αž™αž“αžΉαž„ CPU αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαž·αž…αŸ” αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αžšαžΌαž”αž—αžΆαž–αž“αŸƒαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžšαžœαžΆαž„ Kubernetes αž“αž·αž„ Docker αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž“αŸ„αŸ‡αŸ” request.cpu αžαŸ’αžšαžΌαžœαž“αžΉαž„ --cpu-sharesαž…αŸ†αžŽαŸ‚αž€αž― limit.cpu αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž‘αž„αŸ‹αž‡αžΆαžαž· cpus αž“αŸ…αž€αŸ’αž“αž»αž„ Docker αŸ”

αžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž› Kubernetes αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αž»αžŽαž“αžΉαž„ 1024 αžŠαŸ‚αž›αž‡αžΆαžŸαž˜αžΆαž˜αžΆαžαŸ’αžšαž“αŸƒαžœαžŠαŸ’αžαžŸαŸŠαžΈαž—αžΈαž™αžΌαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αžŸαŸ’αž“αžΎαžŸαž»αŸ† 1 αžŸαŸ’αž“αžΌαž›αž–αŸαž‰αž›αŸαž‰ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž“αŸ’αžαŸ‚αž˜ cpu: 1αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆαž„αž›αžΎαŸ”

αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αžαžΊαžŽαŸ‚αž›αž–αŸαž‰αž›αŸαž‰ (αžŸαž˜αžΆαž˜αžΆαžαŸ’αžš = 1024) αž˜αž·αž“αž˜αžΆαž“αž“αŸαž™αžαžΆαž€αž»αž„αžαžΊαž“αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αžœαžΆαž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸ’αž“αžΌαž›αžαŸ‚αž˜αž½αž™ αž αžΎαž™αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αž½αž™αž€αž»αž„αžαžΊαž“αŸαžš αž“αŸ„αŸ‡αž€αž»αž„αžαžΊαž“αŸαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαžαŸ‚αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž›αž˜αžΆαž“αžšαžœαžΆαž„αž–αž½αž€αžœαžΆαŸ” αžαžΎαžšαžΏαž„αž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? αžαŸ„αŸ‡αž˜αžΎαž›αžšαžΌαž”αž—αžΆαž–αŸ”

αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes Pod
αžŸαŸ†αžŽαžΎαžŸαŸŠαžΈαž—αžΈαž™αžΌ - αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαŸ’αž“αžΌαž›αžαŸ‚αž˜αž½αž™

αž…αžΌαžšαžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαŸ‚αž˜αž½αž™αžŸαŸ’αž“αžΌαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžαžΊαž“αŸαžšαŸ” αž˜αŸ‰αžΆαž€αŸ‹ (Kubernetes) αžŠαž»αžαž“αŸ†αž“αŸ†αž˜αž½αž™ (αžŸαŸŠαžΈαž—αžΈαž™αžΌ) αž αžΎαž™αž…αž„αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αžœαžΆαžšαžœαžΆαž„αž€αž»αž˜αžΆαžš (αž’αž»αž„) αŸ” αž€αžΌαž“αž”αžΈαž“αžΆαž€αŸ‹αž…αž„αŸ‹αž”αžΆαž“αž…αŸ†αžŽαž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž› (αžŸαž˜αžΆαž˜αžΆαžαŸ’αžš = 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% αž“αŸƒαžαžΊαžŽαŸ‚αž›αž–αŸαž‰ αž˜αž·αž“αž˜αŸ‚αž“αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αžœαžΈαŸ—αž“αžΉαž„αžαž»αžŸαž‚αŸ’αž“αžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŸαŸ’αž“αžΌαž›αŸ”

αžšαž”αŸ€αž”αž…αžΌαž›αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“ Kubernetes Pod
αžŸαŸ†αžŽαžΎ CPU - αž”αŸ’αžšαž–αŸαž“αŸ’αž’ Multi-Core (4)

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αžαžΆαž„αž›αžΎ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžαžΆαž€αž»αž˜αžΆαžšαž”αžΈαž“αžΆαž€αŸ‹αž…αž„αŸ‹αž”αžΆαž“αž“αŸ†αž‘αžΆαŸ†αž„αž˜αžΌαž› αž αžΎαž™αž˜αŸ’αž“αžΆαž€αŸ‹αž…αž„αŸ‹αž”αžΆαž“αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αŸ” αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž˜αŸ‰αžΆαž€αŸ‹αžŠαž»αžαž“αŸ†αž”αž½αž“αž”αž“αŸ’αž‘αŸ‡ αž€αžΌαž“αŸ—αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž…αž„αŸ‹αž”αžΆαž“αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αž αž»αžŸαŸ’αž“αžΌαž› αž’αž“αž’αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αžŸαŸ’αž“αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΉαž˜αžŸαŸ’αž“αžΌαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαž–αŸαž‰αž›αŸαž‰αžαž·αž…αž‡αžΆαž„αž˜αž½αž™ αžœαžΆαž“αŸ…αžαŸ‚αž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαž”αžΆαž“ 100% αŸ”

αž€αžΆαžšαž‚αžŽαž“αžΆαžαžΆαž„αž›αžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž€αž»αž„αžαžΊαž“αŸαžšαŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž€αŸ’αžšαŸ…αž–αžΈαž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αž›αž½αž“αž―αž„ αž˜αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“ CPU αž•αž„αžŠαŸ‚αžšαŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžαžΊαž“αŸαžšαž˜αž½αž™αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž’αŸ’αž“αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž’αžΆαž…αž”αŸ’αžšαžΎαž’αž“αž’αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” CPU: "200m" αžαŸ’αžšαžΌαžœαž“αžΉαž„ CPU: 0,2αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž”αŸ’αžšαž αŸ‚αž› 20% αž“αŸƒαžŸαŸ’αž“αžΌαž›αž˜αž½αž™αŸ”

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ limit.cpu. αžŸαŸŠαžΈαž—αžΈαž™αžΌαžŠαŸ‚αž› Kubernetes αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αž»αžŽαž“αžΉαž„ 100αŸ” αž›αž‘αŸ’αž’αž•αž›αž‚αžΊαž…αŸ†αž“αž½αž“αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαž’αžΆαž…αž”αŸ’αžšαžΎαžšαžΆαž›αŸ‹ 100 Β΅s (cpu-period).

limit.cpu αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž‘αž„αŸ‹ Docker --cpus. αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžαŸ’αž˜αžΈαž“αŸƒαž…αžΆαžŸαŸ‹ --cpu-period ΠΈ --cpu-quota. αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžœαžΆ αž™αžΎαž„αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž…αŸ†αž“αž½αž“αž’αž“αž’αžΆαž“ CPU αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžŠαŸ‚αž›αž€αž»αž„αžαžΊαž“αŸαžšαž’αžΆαž…αž”αŸ’αžšαžΎαž‡αžΆαž’αžαž·αž”αžšαž˜αžΆ αž˜αž»αž“αž–αŸαž›αž”αž·αž‘αž”αžΎαž€αŸ–

  • αžŸαŸŠαžΈαž—αžΈ - αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ cpu-period ΠΈ cpu-quota. cpus = 1.5 αžŸαŸ’αž˜αžΎαž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ cpu-period = 100000 ΠΈ cpu-quota = 150000;
  • αžšαž™αŸˆαž–αŸαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ - αžšαž™αŸˆαž–αŸαž› αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŸαŸŠαžΈαž—αžΈαž™αžΌ CFSαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ 100 αž˜αžΈαž€αŸ’αžšαžΌαžœαž·αž“αžΆαž‘αžΈ;
  • cpu-αž€αžΌαžαžΆ - αž…αŸ†αž“αž½αž“αž˜αžΈαž€αŸ’αžšαžΌαžœαž·αž“αžΆαž‘αžΈαž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ cpu-periodαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αžŠαŸ„αž™αž’αž»αž„αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŠαŸ†αž‘αžΎαž„ CPU αžŠαŸ‚αž›αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹?

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž»αž„αžαžΊαž“αŸαžšαžαŸ’αžšαžΌαžœαž€αžΆαžšαž…αŸ’αžšαžΎαž“αž‡αžΆαž„αžŠαŸ‚αž›αžœαžΆαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ αžœαžΆαž“αžΉαž„αž›αž½αž…αžŸαŸŠαžΈαž—αžΈαž™αžΌαž–αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌαž‘αžΆαž”αž–αŸαž€?

αžŠαŸ„αž™αžŸαžΆαžšαž’αž“αž’αžΆαž“ CPU αž’αžΆαž…αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαž”αžΆαž“ αž€αžΆαžšαž”αž·αž‘αž”αžΎαž€αž“αžΉαž„αž”αžΎαž€αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαŸ†αžŽαžΎ CPU?

αžŠαžΌαž…αž“αžΉαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžαž˜αŸ’αž›αŸƒαžŸαŸ†αžŽαžΎαž‚αžΊαžŸαŸ’αž˜αžΎαž“αžΉαž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌ?

αž€αž»αž„αžαžΊαž“αŸαžšαž“αžΉαž„αž”αŸ’αžšαžΎαžŸαŸŠαžΈαž—αžΈαž™αžΌαž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ„αž›αž€αžΆαžšαžŽαŸ CPU αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ (LimitRange) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ namespace αž“αŸ„αŸ‡αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αž„αžαžΊαž“αŸαžšαž•αž„αžŠαŸ‚αžšαŸ”

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‘αžΆαŸ†αž„αžŸαŸ†αžŽαžΎαžš αž¬αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹ CPU?

αžŠαžΌαž…αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž…αž„αž…αžΆαŸ† αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžŠαŸ‚αž›αž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αŸ†αž•αž»αžαŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž˜αž·αž“αžŠαžΉαž„αžαžΆαžαžΎαž€αž»αž„αžαžΊαž“αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž“αž’αžΆαž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž‘αŸ αž αžΎαž™αžœαžΆαž’αžΆαž…αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ’αž„αž“αŸ‹αž’αŸ’αž„αžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ namespaces (LimitRange)αŸ”

αž…αž„αž…αžΆαŸ†αŸ– αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαŸ’αž“αžΎαžŸαž»αŸ† CPU αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αžαŸ’αž“αžΆαŸ†αž„αž’αžΆαž…αž•αŸ’αžαž›αŸ‹ Pod αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸαŸ” Requests.cpu - αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžαž˜αŸ’αž›αŸƒαž’αž”αŸ’αž”αž”αžšαž˜αžΆαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Pod αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‚αžŽαž“αžΆαžŸαŸ’αž˜αž»αž‚αŸ’αžšαžŸαŸ’αž˜αžΆαž‰αž‘αŸ αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‚αžΊαžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„ request.cpu <= 1 αž“αž·αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αž…αŸ†αž“αž½αž“αžŸαž˜αžŸαŸ’αžšαž”αž“αŸƒαž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž¬αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“

αž™αžΎαž„αž”αžΆαž“αžšαŸ€αž“αž’αŸ†αž–αžΈαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž’αž“αž’αžΆαž“αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαŸ– "តើ Pod αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αž“αž’αžΆαž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž’αŸ’αžœαžΈ? αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž‡αžΆβ€‹αž…αŸ†αž“αž½αž“β€‹αžŸαž˜β€‹αžŸαŸ’αžšαž”?

αž‡αžΆαž’αž€αž»αžŸαž› αž˜αž·αž“αž˜αžΆαž“αž…αž˜αŸ’αž›αžΎαž™αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ†αžŽαž½αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αžŠαžΉαž„αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžŠαžΌαž…αž˜αŸ’αžαŸαž… ឬថអតើ CPU ឬ Memory αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ„αŸ‡ αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž‚αžΊαž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΌαžœ Memory αž“αž·αž„ CPU αž…αŸ’αžšαžΎαž“αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸαžŸαŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αžαžΆαž˜αžŠαžΆαž“αž₯αžšαž·αž™αžΆαž”αžαžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ’αž“αž»αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αžŸαž”αŸ’αžαžΆαž αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž”αž„αŸ’αž αžΆαž‰αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αžαž·αž…αž‡αžΆαž„αž’αŸ’αž“αž€αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž’αŸ’αž“αž€αž’αžΆαž…αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž”αžšαž·αž˜αžΆαžŽαžŸαŸŠαžΈαž—αžΈαž™αžΌ αž¬αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αŸ”

αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαžŸαžΌαž˜αž˜αžΎαž›αž“αŸαŸ‡αŸ” αž•αŸ’αž‘αžΆαŸ†αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ Grafana. αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžšαžœαžΆαž„αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž¬αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ”

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αž‡αž½αž™αž±αŸ’αž™αž€αŸ’αžšαž»αž˜ Kubernetes αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαž»αžαž—αžΆαž–αž›αŸ’αž’αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž…αŸ†αžŽαžΆαž™ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž–αŸαž›αŸ”

αžŸαžšαž»αž”αž˜αž€ αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž…αž„αž…αžΆαŸ†αŸ–

  1. αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž™αž€αž˜αž€αž–αž·αž…αžΆαžšαžŽαžΆαž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ (αž“αŸ…αž–αŸαž› Kubernetes αž‚αŸ’αžšαŸ„αž„αžšαŸ€αž”αž…αŸ†αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ)αŸ” αž•αŸ’αž‘αž»αž™αž‘αŸ…αžœαž·αž‰ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš - αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžšαž½αž…αž αžΎαž™αŸ”
  2. αž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αžŸαŸŠαžΈαž—αžΈαž™αžΌαž‚αžΊαž‡αžΆαž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αž·αž“αž˜αžΆαž“αžŸαŸŠαžΈαž—αžΈαž™αžΌαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ Pod αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž”αž·αž‘αž‘αŸ αž αžΎαž™αž™αž“αŸ’αžαž€αžΆαžšαž”αž·αž‘αž”αžΎαž€αž“αžΉαž„αž”αžΎαž€αŸ”
  3. αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αž“αž·αž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžαž˜αŸ’αž›αŸƒαž’αž”αŸ’αž”αž”αžšαž˜αžΆ αž“αž·αž„αž’αžαž·αž”αžšαž˜αžΆαž‘αŸ! αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎ αž’αŸ’αž“αž€αž’αžΆαž“αžΆαžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”
  4. αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž›αŸ’αž’αž‚αžΊαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ†αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŸαŸ’αž˜αžΎαž“αžΉαž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”
  5. αž™αž›αŸ‹αž–αŸ’αžšαž˜αžŠαŸ†αž‘αžΎαž„αž”αžΆαž“αžŸαŸ’αž“αžΎ CPU <=1αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‚αžŽαž“αžΆαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ”
  6. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž’αž“αž’αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž˜αžΆαž“αž“αŸ…αž›αžΎ node αž“αŸ„αŸ‡ Pod αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž‘αŸ… node αž“αŸ„αŸ‡αž‘αŸαŸ”
  7. αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž”αžšαž·αž˜αžΆαžŽαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž’αž“αž’αžΆαž“/αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ† αžŸαžΌαž˜αž”αŸ’αžšαžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€ αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ”

αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‡αž½αž™αž’αŸ’αž“αž€αž±αŸ’αž™αž™αž›αŸ‹αž–αžΈαž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αž“αž’αžΆαž“αŸ” αž αžΎαž™αž’αŸ’αž“αž€αž“αžΉαž„αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αžŸαžΌαž˜αžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’!

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αžΆαž“αŸ–

  1. SRE Observability: Namespaces αž“αž·αž„ Metric Structure.
  2. αž§αž”αž€αžšαžŽαŸαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸ 90+ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ KubernetesαŸ– αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž“αž·αž„αž…αŸ’αžšαžΎαž“αž‘αŸ€αž.
  3. αž”αŸ‰αž»αžŸαŸ’αžαž·αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž‡αž»αŸ†αžœαž·αž‰ Kubernetes αž“αŸ…αž€αŸ’αž“αž»αž„ Telegram.

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹