AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

ဆောင်သပါသ၏ဘာသာပဌန်ကို သင်တန်သစသည့်နေ့တလင် ပဌင်ဆင်ခဲ့ပါသည်။ " Kubernetes ကိုအခဌေခံ၍ အခဌေခံအဆောက်အညပလက်ဖောင်သ".

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

Kubernetes နဟင့်အလုပ်လုပ်သောအခါ cloud ကုန်ကျစရိတ်မျာသကို မည်သို့ချလေတာနိုင်မည်နည်သ။ မဟန်ကန်သောဖဌေရဟင်သချက်တစ်ခုမျဟမရဟိသော်လည်သ၊ သင်၏အရင်သအမဌစ်မျာသကို ပိုမိုထိရောက်စလာစီမံခန့်ခလဲရန်နဟင့် သင်၏ cloud computing ကုန်ကျစရိတ်မျာသကို လျဟော့ချပေသနိုင်သည့် ကိရိယာမျာသစလာကို ကဆောင်သပါသတလင် ဖော်ပဌထာသပါသည်။

ကျလန်ုပ်သည် ကဆောင်သပါသကို AWS အတလက် Kubernetes ဖဌင့် ရေသသာသခဲ့သည်၊ သို့သော် ၎င်သသည် အခဌာသ cloud ဝန်ဆောင်မဟုပေသသူမျာသနဟင့် အတိအကျ (နီသပါသ) တူညီသောနည်သလမ်သကို အသုံသပဌုပါမည်။ သင့်အစုအဝေသ(မျာသ) တလင် အော်တိုစကေသချခဌင်သကို စီစဉ်သတ်မဟတ်ထာသပဌီသဖဌစ်သည် (cluster-autoscaler) အရင်သအမဌစ်မျာသကို ဖယ်ရဟာသခဌင်သနဟင့် သင်၏ ဖဌန့်ကျက်မဟုအာသ ချဲ့ထလင်ခဌင်သသည် သင်၏ အလုပ်သမာသ ဆုံမဟတ်မျာသ (EC2 instances) မျာသကို လျဟော့ချပေသမဟသာ သင့်ငလေကို သက်သာစေမည်ဖဌစ်သည်။

ကဆောင်သပါသတလင် အကျုံသဝင်သည်-

  • အသုံသမပဌုသော အရင်သအမဌစ်မျာသကို ရဟင်သလင်သခဌင်သ (kube-janitor)
  • အလုပ်ချိန်မဟုတ်ချိန်တလင် အတိုင်သအတာကို လျဟော့ချပါ (kube-downscaler)
  • horizontal autoscaling (HPA) ကို အသုံသပဌုပဌီသ၊
  • အရင်သအမဌစ်မျာသ အလလန်အကျလံ ကဌိုတင်မဟာယူမဟု လျဟော့ချခဌင်သ (kube-resource-report၊ VPA)
  • Spot ဖဌစ်ရပ်မျာသကို အသုံသပဌု

အသုံသမပဌုသော အရင်သအမဌစ်မျာသကို ရဟင်သလင်သခဌင်သ။

လျင်မဌန်တဲ့ ပတ်ဝန်သကျင်မဟာ အလုပ်လုပ်ရတာ အရမ်သကောင်သပါတယ်။ နည်သပညာအဖလဲ့အစည်သတလေကို လိုချင်တယ်။ အရဟိန်မဌဟင့်. ပိုမိုမဌန်ဆန်သော ဆော့ဖ်ဝဲလ်ပေသပို့ခဌင်သသည် PR အသုံသချမဟုမျာသ၊ အကဌိုကဌည့်ရဟုသည့် ပတ်ဝန်သကျင်မျာသ၊ ရဟေ့ပဌေသပုံစံမျာသနဟင့် ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ ဖဌေရဟင်သချက်မျာသကို ပိုမျာသသောအဓိပ္ပာယ်လည်သဖဌစ်သည်။ အရာအာသလုံသကို Kubernetes တလင် အသုံသပဌုထာသသည်။ စမ်သသပ်အသုံသပဌုမဟုမျာသကို ကိုယ်တိုင်ရဟင်သလင်သရန် မည်သူအချိန်ရဟိသနည်သ။ တစ်ပတ်ကဌာ စမ်သသပ်မဟုကို ဖျက်ပစ်ဖို့ လလယ်ပါတယ်။ ပိတ်ရန် မေ့သလာသသော အရာတစ်ခုကဌောင့် cloud ဘေလ် တက်လာလိမ့်မည်-

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

(Henning Jacobs:
Zhiza-
(ကိုသကာသ) Corey Quinn
ဒဏ္ဍာရီ - သင်၏ AWS အကောင့်သည် သင့်တလင်ရဟိသော သုံသစလဲသူအရေအတလက်၏ လုပ်ဆောင်မဟုတစ်ခုဖဌစ်သည်။
အချက်အလက်- သင်၏ AWS ရမဟတ်သည် သင့်တလင်ရဟိသော အင်ဂျင်နီယာအရေအတလက်၏ လုပ်ဆောင်မဟုတစ်ခုဖဌစ်သည်။

Ivan Kurnosov (တုံ့ပဌန်မဟု) ။
အစစ်အမဟန်အချက်- သင်၏ AWS ရမဟတ်သည် သင်ပိတ်ရန်/ဖျက်ရန် မေ့သလာသသည့် အရာမျာသစလာ၏ လုပ်ဆောင်ချက်တစ်ခုဖဌစ်သည်။)

Kubernetes Janitor (kube-janitor) သင်၏အစုအဝေသကို ရဟင်သလင်သရန် ကူညီပေသသည်။ အိမ်စောင့်ဖလဲ့စည်သပုံသည် ကမ္ဘာလုံသဆိုင်ရာနဟင့် ဒေသသုံသနဟစ်မျိုသလုံသအတလက် ပဌောင်သလလယ်ပဌင်လလယ်ဖဌစ်သည်-

  • အစုလိုက်ကျယ်ပဌန့်သောစည်သမျဉ်သမျာသသည် PR/test ဖဌန့်ကျက်မဟုအတလက် အမျာသဆုံသအချိန်- တိုက်ရိုက်ထုတ်လလဟင့်မဟု (TTL) ကို သတ်မဟတ်နိုင်သည်။
  • တစ်ညသချင်သအရင်သအမဌစ်မျာသကို 7 ရက်အကဌာတလင်အလိုအလျောက်ဖယ်ရဟာသရန်ဥပမာအာသဖဌင့် janitor/ttl ဖဌင့်မဟတ်စုနိုင်သည်။

အထလေထလေစည်သမျဉ်သမျာသကို YAML ဖိုင်တလင် သတ်မဟတ်ထာသပါသည်။ ၎င်သ၏လမ်သကဌောင်သသည် parameter ကိုဖဌတ်သန်သသည်။ --rules-file kube-janitor တလင်။ ကသည်မဟာ namespaces အာသလုံသကို ဖယ်ရဟာသရန် နမူနာစည်သမျဉ်သတစ်ခုဖဌစ်သည်။ -pr- နဟစ်ရက်အကဌာတလင်၊

- id: cleanup-resources-from-pull-requests
  resources:
    - namespaces
  jmespath: "contains(metadata.name, '-pr-')"
  ttl: 2d

အောက်ဖော်ပဌပါဥပမာသည် 2020 ခုနဟစ်တလင် Deployment/StatefulSets အသစ်မျာသအာသလုံသအတလက် Deployment and StatefulSet pods တလင် အပလီကေသရဟင်သအညလဟန်သ၏အသုံသပဌုမဟုကို ထိန်သညဟိပေသသော်လည်သ တစ်ချိန်တည်သမဟာပင် ကအညလဟန်သမပါဘဲ စမ်သသပ်မဟုမျာသကို တစ်ပတ်ကဌာလုပ်ဆောင်နိုင်သည်-

- id: require-application-label
  # уЎалОть deployments О statefulsets без ЌеткО "application"
  resources:
    - deployments
    - statefulsets
  # сЌ. http://jmespath.org/specification.html
  jmespath: "!(spec.template.metadata.labels.application) && metadata.creationTimestamp > '2020-01-01'"
  ttl: 7d

kube-janitor လည်ပတ်နေသော အစုအဝေသတလင် မိနစ် 30 ကဌာ အချိန်ကန့်သတ်ထာသသော ဒီမိုကို ဖလင့်ပါ-

kubectl run nginx-demo --image=nginx
kubectl annotate deploy nginx-demo janitor/ttl=30m

ကုန်ကျစရိတ်တိုသမဌဟင့်ခဌင်သ၏နောက်ထပ်အရင်သအမဌစ်မဟာ persistent volumes (AWS EBS) ဖဌစ်သည်။ Kubernetes StatefulSet ကို ဖျက်ခဌင်သသည် ၎င်သ၏ ဆက်တိုက် volumes (PVC - PersistentVolumeClaim) ကို မဖျက်ပါ။ အသုံသမပဌုသော EBS ပမာဏမျာသသည် တစ်လလျဟင် ဒေါ်လာရာနဟင့်ချီ ကုန်ကျစရိတ်မျာသ အလလယ်တကူ ဖဌစ်ပေါ်နိုင်သည်။ Kubernetes Janitor တလင် အသုံသမပဌုသော PVC မျာသကို သန့်ရဟင်သရေသလုပ်ရန် အင်္ဂါရပ်ရဟိသည်။ ဥပမာအာသဖဌင့်၊ ကစည်သမျဉ်သသည် module တစ်ခုမဟမတပ်ဆင်ထာသသောနဟင့် StatefulSet သို့မဟုတ် CronJob မဟရည်ညလဟန်သခဌင်သမရဟိသော PVC အာသလုံသကိုဖယ်ရဟာသလိမ့်မည်-

# уЎалОть все PVC, кПтПрые Ме сЌПМтОрПваМы О Ма кПтПрые Ме ссылаются StatefulSets
- id: remove-unused-pvcs
  resources:
  - persistentvolumeclaims
  jmespath: "_context.pvc_is_not_mounted && _context.pvc_is_not_referenced"
  ttl: 24h

Kubernetes Janitor သည် သင့်အစုအဝေသကို သန့်ရဟင်သနေစေရန် ကူညီပေသနိုင်ပဌီသ cloud computing ကုန်ကျစရိတ်မျာသကို ဖဌည်သညဟင်သစလာစုပုံခဌင်သမဟ ကာကလယ်နိုင်ပါသည်။ ဖဌန့်ကျက်ခဌင်သနဟင့် ဖလဲ့စည်သမဟုဆိုင်ရာ ညလဟန်ကဌာသချက်မျာသအတလက်၊ လိုက်နာပါ။ README kube-janitor.

အလုပ်ချိန်မဟုတ်ချိန်တလင် အတိုင်သအတာကို လျဟော့ချပါ။

စမ်သသပ်ခဌင်သနဟင့် အဆင့်သတ်မဟတ်ခဌင်သစနစ်မျာသသည် ပုံမဟန်အာသဖဌင့် အလုပ်ချိန်အတလင်သသာ လုပ်ဆောင်ရန် လိုအပ်ပါသည်။ back office/admin tools ကဲ့သို့သော အချို့သော ထုတ်လုပ်မဟုအပလီကေသရဟင်သမျာသသည်လည်သ အကန့်အသတ်ဖဌင့်သာ ရရဟိနိုင်ပဌီသ နေ့ချင်သညချင်သ ပိတ်ထာသနိုင်ပါသည်။

Kubernetes Downscaler (kube-downscaler) သည် သုံသစလဲသူမျာသနဟင့် အော်ပရေတာမျာသအာသ အလုပ်ချိန်မဟုတ်သည့်အချိန်အတလင်သ စနစ်ကို အတိုင်သအတာလျဟော့ချရန် ခလင့်ပဌုသည်။ Deployments နဟင့် StatefulSets မျာသသည် ပုံစံတူမျာသကို သုညအထိ အတိုင်သအတာအထိ လုပ်ဆောင်နိုင်သည်။ CronJobs ကို ဆိုင်သငံ့ထာသနိုင်သည်။ Kubernetes Downscaler ကို အစုအဝေသတစ်ခုလုံသ၊ တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော namespaces သို့မဟုတ် တစ်ညသချင်သအရင်သအမဌစ်မျာသအတလက် စီစဉ်သတ်မဟတ်ထာသသည်။ သင်သည် "ပျင်သရိချိန်" သို့မဟုတ် အပဌန်အလဟန်အာသဖဌင့် "အလုပ်ချိန်" ကို သတ်မဟတ်နိုင်သည်။ ဥပမာ၊ ညပိုင်သနဟင့် စနေ၊ တနင်္ဂနလေမျာသတလင် ဖဌစ်နိုင်သမျဟ အတိုင်သအတာကို လျဟော့ချရန်

image: hjacobs/kube-downscaler:20.4.3
args:
  - --interval=30
  # Ме Птключать кПЌпПМеМты ОМфраструктуры
  - --exclude-namespaces=kube-system,infra
  # Ме Птключать kube-downscaler, а также ПставОть Postgres Operator, чтПбы ОсключеММыЌО БД ЌПжМП былП управлять
  - --exclude-deployments=kube-downscaler,postgres-operator
  - --default-uptime=Mon-Fri 08:00-20:00 Europe/Berlin
  - --include-resources=deployments,statefulsets,stacks,cronjobs
  - --deployment-time-annotation=deployment-time

ကသည်မဟာ စနေ၊

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

~13 မဟ 4 worker node မျာသကို လျဟော့ချခဌင်သဖဌင့် သင်၏ AWS ဘေလ်တလင် သိသာထင်ရဟာသသော ခဌာသနာသချက်ကို သေချာပေါက် သိသာစေပါသည်။

ဒါပေမယ့် အစုအဖလဲ့ "အလုပ်ရပ်ချိန်" အတလင်သမဟာ အလုပ်လုပ်ဖို့ လိုအပ်ရင် ဘယ်လိုလုပ်မလဲ။ အချို့သော ဖဌန့်ကျက်မဟုမျာသကို အတိုင်သအတာလျဟော့ချခဌင်သ/ဖယ်ထုတ်ခဌင်သ- စစ်မဟန်သော မဟတ်စာမျာသကို ထည့်သလင်သခဌင်သဖဌင့် အတိုင်သအတာကို အပဌီသအပိုင် ဖယ်ထုတ်နိုင်သည်။ YYYY-MM-DD HH:MM (UTC) ဖော်မတ်ရဟိ ပကတိအချိန်တံဆိပ်ဖဌင့် မဟတ်ချက်မချမချင်သ ချုံ့ချဲ့ခဌင်သ/ဖယ်ထုတ်ခဌင်သအာသ အသုံသပဌု၍ ဖဌန့်ကျက်မဟုမျာသကို ယာယီဖယ်ထုတ်နိုင်သည်။ လိုအပ်ပါက၊ မဟတ်ချက်နဟင့်အတူ pod တစ်ခုကို ဖဌန့်ကျက်ခဌင်သဖဌင့် အစုတစ်ခုလုံသကို ပဌန်ချိန်ညဟိနိုင်သည်။ downscaler/force-uptimeဥပမာအာသဖဌင့်၊ nginx blank ကိုဖလင့်ခဌင်သဖဌင့်-

kubectl run scale-up --image=nginx
kubectl annotate deploy scale-up janitor/ttl=1h # уЎалОть развертываМОе через час
kubectl annotate pod $(kubectl get pod -l run=scale-up -o jsonpath="{.items[0].metadata.name}") downscaler/force-uptime=true

မဌင် README kube-downscalerဖဌန့်ကျက်မဟု ညလဟန်ကဌာသချက်မျာသနဟင့် နောက်ထပ်ရလေသချယ်စရာမျာသကို စိတ်ဝင်စာသပါက၊

အလျာသလိုက် အလိုအလျောက် အတိုင်သအတာကို အသုံသပဌုပါ။

အပလီကေသရဟင်သ/ဝန်ဆောင်မဟုမျာသစလာသည် တက်ကဌလသော loading ပုံစံဖဌင့် လုပ်ဆောင်သည်- တစ်ခါတစ်ရံတလင် ၎င်သတို့၏ module မျာသသည် အလုပ်မလုပ်ဘဲ၊ တစ်ခါတစ်ရံတလင် ၎င်သတို့သည် စလမ်သဆောင်ရည်အပဌည့်ဖဌင့် အလုပ်လုပ်ပါသည်။ အမဌင့်ဆုံသဝန်ထုပ်ဝန်ပိုသကို ကိုင်တလယ်ရန် အမဌဲတမ်သ pods မျာသကို လည်ပတ်ခဌင်သသည် ချလေတာခဌင်သမဟုတ်ပါ။ Kubernetes သည် အရင်သအမဌစ်တစ်ခုရဟိ အလျာသလိုက် အလိုအလျောက် အတိုင်သအတာကို ပံ့ပိုသပေသသည်။ HorizontalPodAutoscaler (HPA)။ CPU အသုံသပဌုမဟုသည် အရလယ်အစာသချဲ့ထလင်ရန်အတလက် ကောင်သမလန်သောညလဟန်ပဌချက်တစ်ခုဖဌစ်သည်-

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 3
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        averageUtilization: 100
        type: Utilization

Zalando သည် စကေသချဲ့ရန်အတလက် စိတ်ကဌိုက်မက်ထရစ်မျာသကို အလလယ်တကူချိတ်ဆက်ရန် အစိတ်အပိုင်သတစ်ခုကို ဖန်တီသထာသသည်။ Kube Metrics Adapter (kube-metrics-adapter) သည် Pods မျာသ၏ အလျာသလိုက် အလိုအလျောက် အရလယ်အစာသကို ချဲ့ထလင်ရန်အတလက် စိတ်ကဌိုက်နဟင့် ပဌင်ပ မက်ထရစ်မျာသကို စုဆောင်သကာ ဆောင်ရလက်ပေသနိုင်သော Kubernetes အတလက် ယေဘုယျ မက်ထရစ်မျာသ အဒက်တာတစ်ခု ဖဌစ်သည်။ ၎င်သသည် Prometheus မက်ထရစ်မျာသ၊ SQS တန်သစီခဌင်သမျာသနဟင့် အခဌာသဆက်တင်မျာသအပေါ် အခဌေခံ၍ အတိုင်သအတာချဲ့ခဌင်သကို ပံ့ပိုသပေသသည်။ ဥပမာအာသဖဌင့်၊ သင်၏ ဖဌန့်ကျက်မဟုကို /မက်ထရစ်မျာသတလင် JSON အဖဌစ် အပလီကေသရဟင်သမဟ ကိုယ်စာသပဌုသည့် စိတ်ကဌိုက်မက်ထရစ်သို့ အတိုင်သအတာကို အသုံသပဌုရန်-

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
  annotations:
    # metric-config.<metricType>.<metricName>.<collectorName>/<configKey>
    metric-config.pods.requests-per-second.json-path/json-key: "$.http_server.rps"
    metric-config.pods.requests-per-second.json-path/path: /metrics
    metric-config.pods.requests-per-second.json-path/port: "9090"
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metric:
        name: requests-per-second
      target:
        averageValue: 1k
        type: AverageValue

HPA ဖဌင့် အလျာသလိုက် အော်တိုစကေသချဲ့ခဌင်သကို ပဌင်ဆင်သတ်မဟတ်ခဌင်သသည် နိုင်ငံမဲ့ဝန်ဆောင်မဟုမျာသအတလက် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန် မူရင်သလုပ်ဆောင်ချက်မျာသထဲမဟ တစ်ခုဖဌစ်သင့်သည်။ Spotify တလင် ၎င်သတို့၏ အတလေ့အကဌုံနဟင့် HPA အတလက် အကဌံပဌုချက်မျာသနဟင့်အတူ တင်ဆက်မဟုတစ်ခု ရဟိသည်- သင်၏ပိုက်ဆံအိတ်ကိုမဟုတ်ဘဲ သင်၏ ဖဌန့်ကျက်မဟုမျာသကို အတိုင်သအတာ တိုင်သတာပါ။.

အရင်သအမဌစ်မျာသ ကဌိုတင်မဟာယူခဌင်သကို လျဟော့ချပါ။

Kubernetes workloads မျာသသည် ၎င်သတို့၏ CPU/memory လိုအပ်ချက်မျာသကို "အရင်သအမဌစ်တောင်သဆိုမဟုမျာသ" မဟတဆင့် ဆုံသဖဌတ်သည်။ CPU အရင်သအမဌစ်မျာသကို virtual cores ဖဌင့် တိုင်သတာသည် သို့မဟုတ် "millicores" တလင် အမျာသအာသဖဌင့် တိုင်သတာသည်၊ ဥပမာ 500m သည် 50% vCPU ကို ဆိုလိုသည်။ မမ်မိုရီရင်သမဌစ်မျာသကို ဘိုက်မျာသဖဌင့် တိုင်သတာပဌီသ 500 မီဂါဘိုက်ဟု ဆိုလိုသော 500Mi ကဲ့သို့သော ဘုံနောက်ဆက်မျာသကို အသုံသပဌုနိုင်သည်။ vCPU 1000 ခုပါသော node တစ်ခုရဟိ 4m CPU တောင်သဆိုမဟုရဟိသော pod တစ်ခုသည် worker node မျာသတလင် "လော့ခ်" စလမ်သရည်တောင်သဆိုမဟုမျာသသည် အခဌာသ pods မျာသအတလက် vCPU 3 ခုသာကျန်တော့မည်ဖဌစ်သည်။ [1]

Slack (အရန်ပိုလျဟံ) တောင်သဆိုထာသသောအရင်သအမဌစ်မျာသနဟင့် အမဟန်တကယ်အသုံသပဌုမဟုကဌာသ ကလာခဌာသချက်ဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ မမ်မိုရီ 2 GiB တောင်သခံသော်လည်သ 200 MiB ကိုသာအသုံသပဌုသည့် pod တစ်ခုတလင် "ပိုလျဟံ" မမ်မိုရီ၏ ~ 1,8 GiB ရဟိသည်။ ပိုလျဟံတာက ပိုက်ဆံကုန်တယ်။ မလိုအပ်သော memory ၏ 1 GiB သည် တစ်လလျဟင် ~ $10 ကုန်ကျသည်ဟု အကဌမ်သဖျင်သ ခန့်မဟန်သနိုင်သည်။ [2]

Kubernetes အရင်သအမဌစ်အစီရင်ခံစာ (kube-resource-report) သည် ပိုလျဟံနေသော အရန်ငလေမျာသကို ပဌသပဌီသ ငလေစုနိုင်ချေကို ဆုံသဖဌတ်ရာတလင် ကူညီပေသနိုင်သည်-

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

Kubernetes အရင်သအမဌစ်အစီရင်ခံစာ အပလီကေသရဟင်သနဟင့် အမိန့်ပေသခဌင်သဖဌင့် စုစည်သထာသသော ပိုလျဟံမျာသကို ပဌသည်။ ၎င်သသည် အရင်သအမဌစ်လိုအပ်ချက်မျာသကို လျဟော့ချနိုင်သည့်နေရာမျာသကို ရဟာဖလေနိုင်စေမည်ဖဌစ်သည်။ ထုတ်လုပ်လိုက်သော HTML အစီရင်ခံစာသည် အရင်သအမဌစ်အသုံသပဌုမဟု၏ လျဟပ်တစ်ပဌက်ပုံတစ်ပုံကိုသာ ပေသဆောင်သည်။ လုံလောက်သောအရင်သအမဌစ်တောင်သဆိုမဟုမျာသကိုဆုံသဖဌတ်ရန် အချိန်ကဌာလာသည်နဟင့်အမျဟ CPU/memory အသုံသပဌုမဟုကို သင်ကဌည့်ရဟုသင့်သည်။ ကသည်မဟာ "ပုံမဟန်" CPU-လေသလံသောဝန်ဆောင်မဟုအတလက် Grafana ဇယာသဖဌစ်သည်- pods အာသလုံသသည် တောင်သဆိုထာသသော CPU core 3 ခုထက် သိသိသာသာနည်သနေပါသည်။

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

CPU တောင်သဆိုမဟုကို 3000m မဟ ~400m မဟ လျဟော့ချခဌင်သဖဌင့် အခဌာသသော workloads မျာသအတလက် အရင်သအမဌစ်မျာသကို လလတ်ကင်သစေပဌီသ cluster ကို သေသငယ်စေရန် ခလင့်ပဌုသည်။

"EC2 instances မျာသ၏ ပျမ်သမျဟ CPU အသုံသပဌုမဟုသည် ဂဏန်သတစ်ခုတည်သ ရာခိုင်နဟုန်သအကလာအဝေသတလင် ပေါက်တတ်သည်" Corey Quinn ကရေသသာသသည်။. EC2 အတလက်နေစဉ် မဟန်ကန်သောအရလယ်အစာသကို ခန့်မဟန်သခဌင်သသည် ဆိုသရလာသသော ဆုံသဖဌတ်ချက်ဖဌစ်နိုင်သည်။YAML ဖိုင်ရဟိ Kubernetes အရင်သအမဌစ်မေသခလန်သအချို့ကို ပဌောင်သလဲခဌင်သသည် လလယ်ကူပဌီသ ကဌီသမာသသော စုဆောင်သငလေကို ယူဆောင်လာနိုင်သည်။

သို့သော် YAML ဖိုင်မျာသတလင် တန်ဖိုသမျာသကို ပဌောင်သလဲနေသောလူမျာသကို ကျလန်ုပ်တို့ အမဟန်တကယ် အလိုရဟိပါသလာသ။ မဟုတ်ဘူသ၊ စက်တလေက ပိုကောင်သအောင်လုပ်နိုင်တယ်။ Kubernetes ဒေါင်လိုက် Pod Autoscaler (VPA) သည် ထိုအတိုင်သလုပ်ဆောင်သည်- အလုပ်တာဝန်အရ အရင်သအမဌစ်တောင်သဆိုမဟုမျာသနဟင့် ကန့်သတ်ချက်မျာသကို လိုက်လျောညီထလေဖဌစ်စေသည်။ ကသည်မဟာ အချိန်ကဌာလာသည်နဟင့်အမျဟ VPA မဟ ပဌင်ဆင်ထာသသော Prometheus CPU တောင်သဆိုချက်မျာသ (ပါသလလဟာသော အပဌာလိုင်သ) ၏ နမူနာဂရပ်တစ်ခုဖဌစ်သည်။

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

Zalando သည် ၎င်သ၏အစုအဝေသမျာသအာသလုံသတလင် VPA ကိုအသုံသပဌုသည်။ အခဌေခံအဆောက်အအုံ အစိတ်အပိုင်သမျာသအတလက်။ အရေသမပါသော အပလီကေသရဟင်သမျာသသည် VPA ကို အသုံသပဌုနိုင်သည်။

ရလဟေတံဆိပ် Fairwind သည် namespace တစ်ခုစီတလင် ဖဌန့်ကျက်မဟုတစ်ခုစီအတလက် VPA တစ်ခုကို ဖန်တီသပဌီသ ၎င်သ၏ dashboard တလင် VPA အကဌံပဌုချက်ကို ပဌသသည့်ကိရိယာတစ်ခုဖဌစ်သည်။ ၎င်သသည် developer မျာသအာသ ၎င်သတို့၏ အပလီကေသရဟင်သမျာသအတလက် မဟန်ကန်သော CPU/memory တောင်သဆိုမဟုမျာသကို သတ်မဟတ်ရာတလင် ကူညီပေသနိုင်သည်-

AWS ရဟိ Kubernetes cloud ကုန်ကျစရိတ်ကို သက်သာစေသည်။

အသေသစိပ်ရေသတယ်။ VPA အကဌောင်သ ဘလော့ဂ်ပို့စ် 2019 နဟင့် မကဌာသေသမီက CNCF End User Community မဟ VPA ကိစ္စကို ဆလေသနလေသခဲ့သည်။.

EC2 Spot Instances ကို အသုံသပဌုခဌင်သ။

နောက်ဆုံသအနေနဲ့၊ နောက်ဆုံသအနေနဲ့၊ Kubernetes worker node မျာသအဖဌစ် Spot instances ကိုအသုံသပဌုခဌင်သဖဌင့် AWS EC2 ကုန်ကျစရိတ်ကို လျဟော့ချနိုင်သည် [3]. Spot instances မျာသကို On-Demand စျေသနဟုန်သမျာသနဟင့် နဟိုင်သယဟဉ်ပါက 90% အထိ လျဟော့စျေသဖဌင့် ရရဟိနိုင်ပါသည်။ EC2 Spot တလင် Kubernetes ကိုအသုံသပဌုခဌင်သသည် ကောင်သမလန်သောပေါင်သစပ်မဟုတစ်ခုဖဌစ်သည်- ပိုမိုမဌင့်မာသသောရရဟိနိုင်မဟုအတလက် မတူညီသော instance အမျိုသအစာသမျာသစလာကို သင်သတ်မဟတ်ရန်လိုအပ်သည်၊ ဆိုလိုသည်မဟာ တူညီသောစျေသနဟုန်သနိမ့်အတလက် ပိုကဌီသသော node တစ်ခုကိုရနိုင်ပဌီသ၊ သိုလဟောင်ထာသသော Kubernetes အလုပ်မျာသအာသဖဌင့် တိုသမဌဟင့်နိုင်သောစလမ်သရည်ကို အသုံသပဌုနိုင်ပါသည်။

EC2 Spot တလင် Kubernetes ကို မည်သို့လုပ်ဆောင်ရမည်နည်သ။ ရလေသချယ်စရာမျာသစလာရဟိသည်- SpotInst (ယခု "Spot" ဟုခေါ်သော ပဌင်ပဝန်ဆောင်မဟုကို အသုံသပဌုပါ (ယခု "Spot" ဟုခေါ်သော ကျလန်ုပ်အာသ အဘယ်ကဌောင့်မမေသပါနဟင့်) သို့မဟုတ် သင်၏အစုအဝေသသို့ Spot AutoScalingGroup (ASG) ကို ရိုသရိုသရဟင်သရဟင်သထည့်ပါ။ ဥပမာအာသဖဌင့်၊ ကသည်မဟာ ဥပမာအမျိုသအစာသမျာသစလာပါရဟိသော "စလမ်သဆောင်ရည်-ကောင်သမလန်အောင်ပဌုလုပ်ထာသသော" Spot ASG အတလက် CloudFormation အတိုအထလာတစ်ခုဖဌစ်သည်။

MySpotAutoScalingGroup:
 Properties:
   HealthCheckGracePeriod: 300
   HealthCheckType: EC2
   MixedInstancesPolicy:
     InstancesDistribution:
       OnDemandPercentageAboveBaseCapacity: 0
       SpotAllocationStrategy: capacity-optimized
     LaunchTemplate:
       LaunchTemplateSpecification:
         LaunchTemplateId: !Ref LaunchTemplate
         Version: !GetAtt LaunchTemplate.LatestVersionNumber
       Overrides:
         - InstanceType: "m4.2xlarge"
         - InstanceType: "m4.4xlarge"
         - InstanceType: "m5.2xlarge"
         - InstanceType: "m5.4xlarge"
         - InstanceType: "r4.2xlarge"
         - InstanceType: "r4.4xlarge"
   LaunchTemplate:
     LaunchTemplateId: !Ref LaunchTemplate
     Version: !GetAtt LaunchTemplate.LatestVersionNumber
   MinSize: 0
   MaxSize: 100
   Tags:
   - Key: k8s.io/cluster-autoscaler/node-template/label/aws.amazon.com/spot
     PropagateAtLaunch: true
     Value: "true"

Kubernetes ဖဌင့် Spot အသုံသပဌုခဌင်သဆိုင်ရာ မဟတ်စုအချို့

  • ဥပမာအာသဖဌင့် ရပ်တန့်သလာသသောအခါတလင် node ကို ပေါင်သစည်သခဌင်သဖဌင့် Spot terminations မျာသကို သင်ကိုင်တလယ်ရန်လိုအပ်သည်။
  • Zalando အသုံသပဌုသည်။ အမဲချိတ် node pool ညသစာသပေသမျာသဖဌင့် တရာသဝင် အစုအဝေသကို အလိုအလျောက် ချဲ့ခဌင်သ။
  • အစက်အပဌောက်ဆုံမဟတ်မျာသ ခိုင်သစေနိုင်သည်။ Spot တလင်လည်ပတ်ရန်အလုပ်ဝန်မျာသ၏ "မဟတ်ပုံတင်ခဌင်သ" ကိုလက်ခံပါ။

အကျဉ်သချုပ်

သင်၏ cloud ငလေတောင်သခံလလဟာကို လျဟော့ချရာတလင် အသုံသဝင်သော တင်ပဌထာသသော ကိရိယာအချို့ကို သင်တလေ့ရဟိမည်ဟု မျဟော်လင့်ပါသည်။ ဆောင်သပါသ၏ အကဌောင်သအရာအမျာသစုကိုလည်သ ထိုနေရာတလင် ရဟာဖလေနိုင်သည်။ YouTube နဟင့် slides မျာသတလင် DevOps Gathering 2019 တလင် ကျလန်ုပ်၏ဟောပဌောချက်.

Kubernetes တလင် cloud ကုန်ကျစရိတ်ကို ချလေတာရန်အတလက် သင်၏အကောင်သဆုံသအလေ့အကျင့်မျာသကာသ အဘယ်နည်သ။ ကျေသဇူသပဌု၍ ကျလန်ုပ်ကို အသိပေသပါ။ Twitter (@try_except_).

[1] အမဟန်မဟာ၊ သိမ်သဆည်သထာသသော စနစ်ရင်သမဌစ်မျာသကဌောင့် node ၏ဖဌတ်သန်သစီသဆင်သမဟုကို လျဟော့ချလိုက်သောကဌောင့် vCPU 3 ခုထက်နည်သသော ဆက်လက်အသုံသပဌုနိုင်မည်ဖဌစ်သည်။ Kubernetes သည် ရုပ်ပိုင်သဆိုင်ရာ node စလမ်သရည်နဟင့် "စီမံပေသထာသသော" အရင်သအမဌစ်မျာသအကဌာသ ပိုင်သခဌာသခဌင်သ (Node Allocatable).

[2] တလက်ချက်မဟုဥပမာ- မမ်မိုရီ 5 GiB ပါသော m8.large instance တစ်ခုသည် တစ်လလျဟင် ~$84 ​​(eu-central-1၊ On-Demand) ၊ ဥပမာ။ 1/8 node ကိုပိတ်ဆို့ခဌင်သသည် ခန့်မဟန်သခဌေ ~ $10/လ ဖဌစ်သည်။

[3] Reserved Instances၊ Savings Plan စသည်တို့ကဲ့သို့သော သင်၏ EC2 ဘေလ်ကို လျဟော့ချရန် နောက်ထပ်နည်သလမ်သမျာသစလာရဟိပါသည်။ - ကအကဌောင်သအရာမျာသကို ကနေရာတလင် ကျလန်ုပ်မဖော်ပဌပါ၊ သို့သော် ၎င်သတို့ကို သေချာကဌည့်သင့်ပါသည်။

သင်တန်သအကဌောင်သပိုမိုလေ့လာပါ။

source: www.habr.com

မဟတ်ချက် Add