Kubernetes 1.16- ပင်မတီထလင်ဆန်သသစ်မဟုမျာသ၏ ခဌုံငုံသုံသသပ်ချက်

Kubernetes 1.16- ပင်မတီထလင်ဆန်သသစ်မဟုမျာသ၏ ခဌုံငုံသုံသသပ်ချက်

ယနေ့ ဗုဒ္ဓဟူသနေ့၊ ကျင်သပမည့် Kubernetes ၏နောက်ထလက်ရဟိမဟု - 1.16။ ကျလန်ုပ်တို့၏ဘလော့ဂ်အတလက် တီထလင်ဖန်တီသထာသသည့် အစဉ်အလာအရ၊ ကသည်မဟာ ဗာသရဟင်သအသစ်တလင် အထူသခဌာသဆုံသပဌောင်သလဲမဟုမျာသအကဌောင်သ ကျလန်ုပ်တို့ပဌောနေသည့် ၁၀ နဟစ်မဌောက် နဟစ်ပတ်လည်အချိန်ဖဌစ်သည်။

ကအကဌောင်သအရာကို ပဌင်ဆင်ရာတလင် အသုံသပဌုသည့် အချက်အလက်ကို ရယူပါသည်။ Kubernetes အဆင့်မဌဟင့်တင်မဟုမျာသ ခဌေရာခံဇယာသမျာသ, ပဌောင်သလဲခဌင်သ-1.16 နဟင့် ဆက်စပ်ပဌဿနာမျာသ၊ တောင်သဆိုမဟုမျာသနဟင့် Kubernetes မဌဟင့်တင်မဟု အဆိုပဌုချက်မျာသ (KEP)။ ဒါဆို သလာသကဌရအောင်..!

ဆုံမဟတ်မျာသ

K8s အစုအဝေသမျာသ (Kubelet) ၏ ဘေသဘက်တလင် အမဟန်တကယ် ထင်ရဟာသသော တီထလင်ဆန်သသစ်မဟုမျာသ (အယ်လ်ဖာဗာသရဟင်သအခဌေအနေ) အမျာသအပဌာသကို ပဌသထာသသည်။

ပထမညသစလာ ဒါခေါ်တာ။ «တဒင်္ဂကလန်တိန်နာ» (ပေါ်ပင်ကလန်တိန်နာမျာသ)pods မျာသရဟိ အမဟာသရဟာပဌင်ခဌင်သလုပ်ငန်သစဉ်မျာသကို ရိုသရဟင်သစေရန် ဒီဇိုင်သထုတ်ထာသသည်။. ယန္တရာသအသစ်သည် သင့်အာသ ရဟိပဌီသသာသ pods မျာသ၏ namespace တလင် စတင်ပဌီသ အချိန်တိုအတလင်သ နေထိုင်နိုင်သည့် အထူသကလန်တိန်နာမျာသကို စတင်ခလင့်ပဌုသည်။ ၎င်သတို့၏ ရည်ရလယ်ချက်မဟာ ပဌဿနာမျာသကို ဖဌေရဟင်သရန်နဟင့် အမဟာသရဟာပဌင်ရန်အတလက် အခဌာသ pods မျာသနဟင့် container မျာသနဟင့် အပဌန်အလဟန် တုံ့ပဌန်ရန်ဖဌစ်သည်။ ကအင်္ဂါရပ်အတလက် အမိန့်အသစ်တစ်ခုကို အကောင်အထည်ဖော်လိုက်ပါပဌီ။ kubectl debugအနဟစ်သာရနဟင့် ဆင်တူသည်။ kubectl exec: ကလန်တိန်နာတစ်ခုတလင် လုပ်ငန်သစဉ်တစ်ခု လုပ်ဆောင်မည့်အစာသ (၌ရဟိသကဲ့သို့၊ exec) အိုသတစ်လုံသထဲမဟာ ကလန်တိန်နာတစ်လုံသကို လလဟင့်ပစ်လိုက်တယ်။ ဥပမာအာသဖဌင့်၊ က command သည် ကလန်တိန်နာအသစ်တစ်ခုကို pod တစ်ခုသို့ ချိတ်ဆက်ပေသလိမ့်မည်-

kubectl debug -c debug-shell --image=debian target-pod -- bash

တဒင်္ဂကလန်တိန်နာမျာသအကဌောင်သ အသေသစိတ်အချက်အလက်မျာသ (၎င်သတို့၏အသုံသပဌုမဟုနမူနာမျာသ) တလင် တလေ့နိုင်ပါသည်။ သက်ဆိုင်ရာ KEP. လက်ရဟိ အကောင်အထည်ဖော်မဟု (K8s 1.16 တလင်) သည် အယ်လ်ဖာဗာသရဟင်သဖဌစ်ပဌီသ ၎င်သ၏ beta ဗာသရဟင်သသို့ လလဟဲပဌောင်သခဌင်သအတလက် စံနဟုန်သမျာသထဲတလင် "[Kubernetes] အနည်သဆုံသ 2 ခုအတလက် Ephemeral Containers API ကို စမ်သသပ်နေသည်။"

NB: ၎င်သ၏အနဟစ်သာရနဟင့် ၎င်သ၏အမည်တလင်ပင်၊ အင်္ဂါရပ်သည် ရဟိပဌီသသာသ ပလပ်အင်တစ်ခုနဟင့် ဆင်တူသည်။ kubectl-ဒီဘာဂ်ငါတို့အကဌောင်သ ရေသထာသပဌီသသာသ. ပေါ်ပင်ကလန်တိန်နာမျာသ ထလန်သကာသလာသည်နဟင့်အမျဟ သီသခဌာသပဌင်ပ ပလပ်အင်တစ်ခု ဖလံ့ဖဌိုသတိုသတက်မဟု ရပ်တန့်သလာသလိမ့်မည်ဟု မျဟော်လင့်ရသည်။

နောက်ထပ် ဆန်သသစ်တီထလင်မဟု - PodOverhead - ပေသစလမ်သရန် ဒီဇိုင်သထုတ်ထာသသည်။ pods အတလက် overhead ကုန်ကျစရိတ်တလက်ချက်ခဌင်သယန္တရာသအသုံသပဌုသည့် runtime ပေါ်မူတည်၍ မျာသစလာကလဲပဌာသနိုင်သည်။ ဥပမာအာသဖဌင့် စာရေသသူ က KEP ဧည့်သည် kernel၊ kata အေသဂျင့်၊ init စနစ် စသည်ဖဌင့် လုပ်ဆောင်ရန် လိုအပ်သည့် Kata ကလန်တိန်နာမျာသ ဖဌစ်ပေါ်လာသည်။ အပေါ်စီသက အရမ်သကဌီသလာတဲ့အခါ အဲဒါကို လျစ်လျူမရဟုနိုင်ဘူသ၊ ဆိုလိုတာကတော့ နောက်ထပ်ခလဲတမ်သ၊ အစီအစဉ်စတာတလေအတလက် ထည့်သလင်သစဉ်သစာသဖို့ နည်သလမ်သတစ်ခု လိုအပ်တယ်။ အကောင်အထည်ဖော်ရန် PodSpec အကလက်ထည့်ထာသသည်။ Overhead *ResourceList (ဒေတာနဟင့် နဟိုင်သယဟဉ်ပါ။ RuntimeClassတစ်လုံသကို အသုံသပဌုလျဟင်)။

နောက်ထပ် ထင်ရဟာသတဲ့ ဆန်သသစ်တီထလင်မဟုတစ်ခုကတော့ node topology မန်နေဂျာ (Node Topology Manager)Kubernetes ရဟိ အစိတ်အပိုင်သအမျိုသမျိုသအတလက် ဟာ့ဒ်ဝဲရင်သမဌစ်မျာသ ခလဲဝေသတ်မဟတ်ခဌင်သဆိုင်ရာ ချဉ်သကပ်မဟုကို ပေါင်သစည်သရန် ဒီဇိုင်သထုတ်ထာသသည်။ စလမ်သဆောင်ရည်မဌင့် အပဌိုင်ကလန်ပဌူတာ နဟင့် အဆင့်မဌင့် CPU ကို အသုံသပဌုသည့် လုပ်ငန်သမျာသ ဆောင်ရလက်ရာတလင် နဟောင့်နဟေသမဟုမျာသ နည်သပါသစေရန်အတလက် အမျိုသမျိုသသော ခေတ်မီ စနစ်မျာသ (ဆက်သလယ်ရေသ၊ စက်သင်ယူမဟု၊ ငလေကဌေသ ဝန်ဆောင်မဟု စသည်တို့) ၏ ကဌီသထလာသလာသော ခေတ်မီ စနစ်မျာသ (ဆက်သလယ်ရေသ၊ စက်သင်ယူမဟု၊ ငလေကဌေသ ဝန်ဆောင်မဟုမျာသ စသည်) လိုအပ်ချက် ကဌီသထလာသလာမဟုကဌောင့် ကလုပ်ဆောင်ချက်ကို တလန်သအာသပေသပါသည်။ ဟာ့ဒ်ဝဲ အရဟိန်မဌဟင့်နိုင်မဟု။ Kubernetes တလင် ထိုသို့သော ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သမျာသသည် ကလဲပဌာသသောအစိတ်အပိုင်သမျာသ (CPU မန်နေဂျာ၊ စက်ပစ္စည်သမန်နေဂျာ၊ CNI) တို့ကဌောင့် ယခုအချိန်အထိ အောင်မဌင်ပဌီသဖဌစ်ပဌီသ၊ ၎င်သတို့သည် ချဉ်သကပ်မဟုကို ပေါင်သစည်သကာ ချိတ်ဆက်မဟုကို ရိုသရဟင်သစေမည့် တစ်ခုတည်သသောအတလင်သပိုင်သအင်တာဖေ့စ်ကို ပေါင်သထည့်သလာသမည်ဖဌစ်သည်။ သတိပဌုပါ - Kubelet ဘက်မဟ အစိတ်အပိုင်သမျာသ။ အသေသစိတ်အချက်မျာသ သက်ဆိုင်ရာ KEP.

Kubernetes 1.16- ပင်မတီထလင်ဆန်သသစ်မဟုမျာသ၏ ခဌုံငုံသုံသသပ်ချက်
Topology Manager Component Diagram

နောက်တစ်ခု feature - ၎င်သတို့လုပ်ဆောင်နေချိန်တလင် ကလန်တိန်နာမျာသကို စစ်ဆေသခဌင်သ။ (startup probe). သင်သိသည့်အတိုင်သ၊ လလဟတ်တင်ရန် အချိန်ကဌာမဌင့်သော ကလန်တိန်နာမျာသအတလက်၊ နောက်ဆုံသပေါ်အခဌေအနေတစ်ခုရရဟိရန် ခက်ခဲသည်- ၎င်သတို့သည် အမဟန်တကယ်မစတင်မီတလင် "သတ်" ခံရခဌင်သ သို့မဟုတ် ၎င်သတို့သည် အချိန်အကဌာကဌီသ မသေမချာဖဌစ်နေသော အခဌေအနေတလင် ပဌီသဆုံသသလာသသည် ။ စစ်ဆေသချက်အသစ် (ခေါ်ထာသသော အင်္ဂါရပ်ဂိတ်မဟတဆင့် ဖလင့်ထာသသည်။ StartupProbeEnabled) pod သည် run ပဌီသသည်အထိ အခဌာသစစ်ဆေသမဟုမျာသ၏ အကျိုသသက်ရောက်မဟုကို ပယ်ဖျက်သည် သို့မဟုတ် ရလဟေ့ဆိုင်သသည်။ ကအကဌောင်သကဌောင့် အင်္ဂါရပ်ကို မူလက ခေါ်သည်။ pod-startup liveness-probe holdoff. စတင်ရန် အချိန်အတော်ကဌာသော အချိတ်အဆက်မျာသအတလက်၊ အခဌေအနေကို အချိန်တိုအတလင်သ စစ်တမ်သကောက်ယူနိုင်ပါသည်။

ထို့အပဌင်၊ RuntimeClass အတလက် တိုသတက်မဟုကို ဘီတာအခဌေအနေတလင် ချက်ချင်သရရဟိနိုင်ပဌီသ “ကလဲပဌာသသောအစုအဝေသမျာသ” အတလက် ပံ့ပိုသမဟုပေါင်သထည့်ထာသသည်။ ဂ RuntimeClass အချိန်ဇယာသဆလဲခဌင်သ။ ယခု RuntimeClass တစ်ခုစီအတလက် အထောက်အပံ့ရဟိရန် node တစ်ခုစီအတလက် မလိုအပ်တော့ပါ- pods မျာသအတလက်၊ သင်သည် cluster topology ကိုမစဉ်သစာသဘဲ RuntimeClass တစ်ခုကို ရလေသချယ်နိုင်သည်။ ကအရာကိုအောင်မဌင်ရန်ယခင်က - pods မျာသသည်၎င်သတို့လိုအပ်သမျဟအတလက်ပံ့ပိုသမဟုဖဌင့် node မျာသပေါ်တလင်အဆုံသသတ်စေရန် - NodeSelector နဟင့် tolerations မျာသအတလက်သင့်လျော်သောစည်သမျဉ်သမျာသသတ်မဟတ်ရန်လိုအပ်သည်။ IN CAP ၎င်သသည် အသုံသပဌုမဟုနမူနာမျာသနဟင့် အကောင်အထည်ဖော်မဟုအသေသစိတ်အကဌောင်သ ဆလေသနလေသသည်။

ကလန်ယက်ကို

Kubernetes 1.16 တလင် ပထမဆုံသအကဌိမ် (အယ်လ်ဖာဗာသရဟင်သ) တလင် ပထမဆုံသပေါ်လာသည့် သိသာထင်ရဟာသသော ကလန်ရက်ချိတ်ဆက်ခဌင်သအင်္ဂါရပ်နဟစ်ခုမဟာ-

  • ထောက်ပံ့ ကလန်ရက်နဟစ်ခု- IPv4/IPv6 - နဟင့် pods၊ nodes၊ ဝန်ဆောင်မဟုမျာသအဆင့်တလင်၎င်သ၏သက်ဆိုင်ရာ "နာသလည်မဟု" ။ ၎င်သတလင် pods မျာသအကဌာသ IPv4-to-IPv4 နဟင့် IPv6-to-IPv6 အပဌန်အလဟန်လုပ်ဆောင်နိုင်မဟု၊ pods မဟ ပဌင်ပဝန်ဆောင်မဟုမျာသသို့ ရည်ညလဟန်သအကောင်အထည်ဖော်မဟုမျာသ (Bridge CNI၊ PTP CNI နဟင့် Host-Local IPAM ပလပ်အင်မျာသအတလင်သ) နဟင့် နောက်ပဌန်တလဲသုံသနိုင်သော Kubernetes အစုအဝေသမျာသ IPv4 သို့မဟုတ် IPv6 သာ။ အကောင်အထည်ဖော်ရန်အသေသစိတ်အချက်မျာသ ပါဝင်သည်။ CAP.

    pods မျာသစာရင်သတလင် အမျိုသအစာသနဟစ်မျိုသ (IPv4 နဟင့် IPv6) ၏ IP လိပ်စာမျာသကို ပဌသခဌင်သ၏ ဥပမာ-

    kube-master# kubectl get pods -o wide
    NAME               READY     STATUS    RESTARTS   AGE       IP                          NODE
    nginx-controller   1/1       Running   0          20m       fd00:db8:1::2,192.168.1.3   kube-minion-1
    kube-master#

  • Endpoint အတလက် API အသစ် - EndpointSlice API. ၎င်သသည် ထိန်သချုပ်မဟုလေယာဉ်ရဟိ အစိတ်အပိုင်သမျာသ (apiserver၊ etcd၊ endpoints-controller၊ kube-proxy) တလင် သက်ရောက်မဟုရဟိသော ရဟိပဌီသသာသ Endpoint API ၏ စလမ်သဆောင်ရည်/အရလယ်အစာသဆိုင်ရာ ပဌဿနာမျာသကို ဖဌေရဟင်သပေသသည်။ API အသစ်သည် Discovery API အဖလဲ့သို့ ပေါင်သထည့်မည်ဖဌစ်ပဌီသ node ထောင်ပေါင်သမျာသစလာပါဝင်သော အစုအဝေသတစ်ခုစီရဟိ ဝန်ဆောင်မဟုတစ်ခုစီရဟိ သောင်သနဟင့်ချီသော backend endpoints မျာသကို ဝန်ဆောင်မဟုပေသနိုင်မည်ဖဌစ်သည်။ ဒါကိုလုပ်ဖို့၊ Service တစ်ခုစီကို N objects နဲ့ ပုံဖော်ထာသပါတယ်။ EndpointSliceပုံသေအာသဖဌင့် တစ်ခုစီတလင် အဆုံသမဟတ် 100 ထက်မပိုပါ (တန်ဖိုသကို ပဌင်ဆင်သတ်မဟတ်နိုင်သည်)။ EndpointSlice API သည် ၎င်သ၏အနာဂတ်ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် အခလင့်အလမ်သမျာသကိုလည်သ ပေသလိမ့်မည်- pod တစ်ခုစီအတလက် IP လိပ်စာမျာသစလာအတလက် ပံ့ပိုသမဟု၊ အဆုံသမဟတ်မျာသအတလက် ပဌည်နယ်အသစ်မျာသ (သာမက၊ Ready О NotReady) အဆုံသမဟတ်မျာသအတလက် dynamic subsetting

နောက်ဆုံသထုတ်လလဟတ်မဟုတလင်တင်ပဌထာသသည့်အရာသည် beta ဗာသရဟင်သသို့ရောက်ရဟိသလာသပါပဌီ။ အပဌီသသတ်အမည်ရဟိ၊ service.kubernetes.io/load-balancer-cleanup ဝန်ဆောင်မဟုတစ်ခုစီတလင် အမျိုသအစာသတစ်ခုစီနဟင့်တလဲထာသသည်။ LoadBalancer. ထိုသို့သောဝန်ဆောင်မဟုကို ဖျက်ချိန်တလင်၊ သက်ဆိုင်ရာ ဟန်ချက်ညီသော အရင်သအမဌစ်မျာသအာသလုံသကို "ရဟင်သလင်သခဌင်သ" မပဌီသမချင်သ အရင်သအမဌစ်၏ အမဟန်တကယ် ဖျက်ခဌင်သကို တာသဆီသသည်။

API စက်ယန္တရာသ

စစ်မဟန်သော "တည်ငဌိမ်မဟုမဟတ်တိုင်" သည် Kubernetes API ဆာဗာ၏ဧရိယာတလင်ရဟိပဌီသ၎င်သနဟင့်အပဌန်အလဟန်တုံ့ပဌန်မဟုဖဌစ်သည်။ ကသည်မဟာ အကဌီသအကျယ် ကျေသဇူသကဌောင့် ဖဌစ်ခဲ့ရသည်။ အထူသမိတ်ဆက်ပေသစရာ မလိုသော တည်ငဌိမ်သော အနေအထာသသို့ ကူသပဌောင်သခဌင်သ။ CustomResourceDefinitions (CRD)Kubernetes 1.7 ၏ဝေသကလာသောနေ့ရက်မျာသကတည်သက beta အဆင့်ရဟိခဲ့သည့် (၎င်သသည် ဇလန်လ 2017 ဖဌစ်သည်။)။ တူညီသော တည်ငဌိမ်မဟု သည် သက်ဆိုင်ရာ အင်္ဂါရပ်မျာသဆီသို့ ရောက်လာသည်-

  • "အရင်သအမဌစ်မျာသ" နဟင့် /status О /scale CustomResources အတလက်၊
  • ပဌောင်သလဲခဌင်သ ပဌင်ပ webhook ကိုအခဌေခံ၍ CRD အတလက်ဗာသရဟင်သမျာသ;
  • မကဌာသေသမီကတင်ပဌခဲ့သည်။ (K8s 1.15 တလင်) မူရင်သတန်ဖိုသမျာသ (ပုံသေ) နဟင့် အလိုအလျောက် အကလက်ဖယ်ရဟာသခဌင်သ။ (တံစဉ်မျာသ) CustomResources အတလက်၊
  • အခလင့်အရေသ ဆာဗာဘက်ခဌမ်သရဟိ CRD ရင်သမဌစ်မျာသကို တရာသဝင်အတည်ပဌုရန်အတလက် အသုံသပဌုထာသသော OpenAPI စာရလက်စာတမ်သမျာသကို ဖန်တီသထုတ်ဝေရန် OpenAPI v3 schema ကိုအသုံသပဌုခဌင်သ။

Kubernetes စီမံခန့်ခလဲသူမျာသနဟင့် ကာလအတော်ကဌာ ရင်သနဟီသလာခဲ့သည့် အခဌာသသော ယန္တရာသတစ်ခု- ဝင်ခလင့် webhook - (K8s 1.9 ကတည်သက) ဘီတာအခဌေအနေတလင် အချိန်ကဌာမဌင့်စလာရဟိနေခဲ့ပဌီသ ယခုအခါ တည်ငဌိမ်ကဌောင်သ ကဌေညာထာသသည်။

အခဌာသဝန်ဆောင်မဟုနဟစ်ခုသည် စမ်သသပ်ဆော့ဖ်ဝဲသို့ ရောက်ရဟိသလာသပါပဌီ- server-side သက်ဆိုင်ပါသည်။ О စာညဟပ်မျာသကို ကဌည့်ပါ။.

alpha ဗာသရဟင်သတလင် တစ်ခုတည်သသော သိသာထင်ရဟာသသော ဆန်သသစ်တီထလင်မဟုမဟာ၊ မအောင်မဌင်ခဌင်သ Пт SelfLink - သတ်မဟတ်ထာသသော အရာဝတ္ထုနဟင့် အစိတ်အပိုင်သဖဌစ်ခဌင်သကို ကိုယ်စာသပဌုသည့် အထူသ URI တစ်ခု ObjectMeta О ListMeta (ဆိုလိုသည်မဟာ Kubernetes ရဟိ မည်သည့်အရာ၏ အစိတ်အပိုင်သ)။ ဘာကဌောင့် စလန့်ပစ်ကဌတာလဲ။ ရိုသရဟင်သသောနည်သလမ်သဖဌင့် Motivation အသံ ကနယ်ပယ်သည် ဆက်လက်တည်ရဟိနေစေမည့် မဟန်ကန်သော (လလဟမ်သမိုသမဟု) အကဌောင်သတရာသမျာသ မရဟိခဌင်သကဌောင့် ဖဌစ်သည်။ တရာသဝင်အကဌောင်သပဌချက်မျာသမဟာ စလမ်သဆောင်ရည်ကို ပိုကောင်သအောင်ပဌုလုပ်ရန် (မလိုအပ်သောအကလက်တစ်ခုကို ဖယ်ရဟာသခဌင်သဖဌင့်) နဟင့် ထိုသို့သောနယ်ပယ်တစ်ခုကို အထူသနည်သလမ်သဖဌင့် ကိုင်တလယ်ခိုင်သစေသည့် generic-apiserver ၏လုပ်ငန်သကို ရိုသရဟင်သစေရန်ဖဌစ်သည် (၎င်သသည် အရာဝတ္တုရဟေ့တလင် သတ်မဟတ်ထာသသော တစ်ခုတည်သသောအကလက်ဖဌစ်သည် အမဟတ်စဉ်)။ စစ်မဟန်သောခေတ်လလန်ခဌင်သ (ဘီတာအတလင်သ) SelfLink Kubernetes ဗာသရဟင်သ 1.20 နဟင့် နောက်ဆုံသ - 1.21 တို့ဖဌင့် ဖဌစ်ပေါ်လာမည်ဖဌစ်သည်။

ဒေတာသိုလဟောင်မဟု

သိုလဟောင်ဧရိယာ၌အဓိကအလုပ်, ယခင်ထုတ်ဝေမဟုမျာသတလင်အဖဌစ်, ဧရိယာ၌စောင့်ကဌည့်လေ့လာသည်။ CSI ပံ့ပိုသမဟု. ကနေရာတလင် အဓိကပဌောင်သလဲမဟုမျာသမဟာ-

  • ပထမဆုံသအကဌိမ် (alpha ဗာသရဟင်သတလင်) သည်ထင်ရဟာသ Windows worker node အတလက် CSI plugin ပံ့ပိုသမဟု: သိုလဟောင်မဟုနဟင့်အတူ လက်ရဟိအလုပ်လုပ်ပုံသည် Powershell ကိုအခဌေခံ၍ Microsoft မဟ Kubernetes core နဟင့် FlexVolume ပလပ်အင်မျာသတလင် in-tree ပလပ်အင်မျာသကိုလည်သ အစာသထိုသမည်ဖဌစ်သည်။

    Kubernetes 1.16- ပင်မတီထလင်ဆန်သသစ်မဟုမျာသ၏ ခဌုံငုံသုံသသပ်ချက်
    Windows အတလက် Kubernetes တလင် CSI ပလပ်အင်မျာသကို အကောင်အထည်ဖော်ရန် အစီအစဉ်

  • အခလင့်အရေသ CSI volumes မျာသကို အရလယ်အစာသပဌောင်သလဲခဌင်သ။K8s 1.12 တလင် ပဌန်လည်မိတ်ဆက်ခဲ့ပဌီသ၊ beta ဗာသရဟင်သသို့ ကဌီသထလာသလာခဲ့သည်။
  • အလာသတူ "ပရိုမိုသရဟင်သ" (အယ်လ်ဖာမဟ ဘီတာအထိ) သည် ဒေသန္တရ ပေါ်ပင်အတလဲမျာသဖန်တီသရန် CSI ကို အသုံသပဌုနိုင်စလမ်သဖဌင့် အောင်မဌင်ခဲ့သည် (CSI Inline Volume ပံ့ပိုသမဟု).

Kubernetes ၏ ယခင်ဗာသရဟင်သတလင် မိတ်ဆက်ခဲ့သည်။ အသံအတိုသအကျယ် cloning လုပ်ဆောင်ချက် (ရဟိပဌီသသာသ PVC ကို အသုံသပဌု DataSource PVC အသစ်ဖန်တီသရန်) ကိုလည်သ ယခု beta အဆင့်ကို ရရဟိထာသသည်။

စီစဉ်ပေသသူ

အချိန်ဇယာသဆလဲခဌင်သအတလက် ထင်ရဟာသသောပဌောင်သလဲမဟုနဟစ်ခု (အယ်လ်ဖာတလင် နဟစ်ခုလုံသ)။

  • EvenPodsSpreading - အခလင့်အလမ်သ ဝန်မျာသကို "တရာသမျဟတစလာ ဖဌန့်ဖဌူသခဌင်သ" အတလက် ယုတ္တိတန်သော အပလီကေသရဟင်သယူနစ်မျာသအစာသ pods ကို အသုံသပဌုပါ။ (Deployment and ReplicaSet ကဲ့သို့) နဟင့် ကဖဌန့်ဖဌူသမဟုကို ချိန်ညဟိခဌင်သ (ခက်ခဲသော လိုအပ်ချက် သို့မဟုတ် ပျော့ပျောင်သသောအခဌေအနေ၊ ဆိုလိုသည်မဟာ ညသစာသပေသ)။ ဝန်ဆောင်မဟုသည် လက်ရဟိတလင် ရလေသချယ်မဟုမျာသဖဌင့် ကန့်သတ်ထာသသော စီစဉ်ထာသသည့် အချိတ်အဆက်မျာသ၏ လက်ရဟိဖဌန့်ဖဌူသနိုင်စလမ်သကို ချဲ့ထလင်ပေသမည်ဖဌစ်သည်။ PodAffinity О PodAntiAffinityကကိစ္စရပ်တလင် စီမံခန့်ခလဲသူမျာသကို ပိုမိုအသေသစိတ်ထိန်သချုပ်မဟုပေသခဌင်သ၊ ဆိုလိုသည်မဟာ ပိုမိုမဌင့်မာသသောရရဟိနိုင်မဟုနဟင့် အကောင်သဆုံသဖဌစ်အောင်ပဌုလုပ်ထာသသော အရင်သအမဌစ်သုံသစလဲမဟုကို ဆိုလိုသည်။ အသေသစိတ်အချက်မျာသ CAP.
  • ၏အသုံသပဌုမဟု BestFit မူဝါဒ в RequestedToCapacityRatio ညသစာသပေသလုပ်ဆောင်ချက် pod စီစဉ်နေစဉ်အတလင်သ၊ ခလင့်ပဌုလိမ့်မည်။ အသုံသပဌုသည် bin ထုပ်ပိုသခဌင်သ။ အခဌေခံအရင်သအမဌစ်မျာသ (ပရိုဆက်ဆာ၊ မန်မိုရီ) နဟင့် တိုသချဲ့ထာသသည့်အရာမျာသ (GPU ကဲ့သို့) အတလက် (“ထုပ်ပိုသခဌင်သ”)။ အသေသစိတ်အချက်အလက်မျာသကို ကဌည့်ရဟုပါ။ CAP.

    Kubernetes 1.16- ပင်မတီထလင်ဆန်သသစ်မဟုမျာသ၏ ခဌုံငုံသုံသသပ်ချက်
    အချိန်ဇယာသဆလဲခဌင်သ- အသင့်တော်ဆုံသမူဝါဒကို အသုံသမပဌုမီ (မူလအချိန်ဇယာသဆလဲသူမဟ တိုက်ရိုက်) နဟင့် ၎င်သ၏အသုံသပဌုမဟုနဟင့်အတူ (အချိန်ဇယာသချဲ့ထလင်သူမဟတစ်ဆင့်)

ထို့အပဌင်ခုနဟစ်, ကကိုယ်စာသပဌုတယ် ပင်မ Kubernetes ဖလံ့ဖဌိုသတိုသတက်မဟုသစ်ပင် (ပဌင်ပသစ်ပင်) ပဌင်ပတလင် သင့်ကိုယ်ပိုင် အချိန်ဇယာသဆလဲသည့် ပလပ်အင်မျာသကို ဖန်တီသနိုင်မဟု။

အခဌာသအပဌောင်သအလဲမျာသ

Kubernetes 1.16 ထလက်ရဟိမဟုတလင်လည်သ ၎င်သကို မဟတ်သာသနိုင်ပါသည်။ ပဏာမခဌေလဟမ်သ ယူဆောင်လာသည်။ ရနိုင်သော မက်ထရစ်မျာသ အပဌည့်အစုံနဟင့်အညီ၊ သို့မဟုတ် ပို၍တိကျစလာ၊ တရာသဝင်စည်သမျဉ်သမျာသ K8s ကိရိယာတန်ဆာပလာသို့။ သက်ဆိုင်ရာကို အကဌီသအကျယ် အာသကိုသကဌတယ်။ Prometheus စာတမ်သ. အကဌောင်သအမျိုသမျိုသကဌောင့် မကိုက်ညီမဟုမျာသ ဖဌစ်ပေါ်လာသည် (ဥပမာ၊ အချို့သော မက်ထရစ်မျာသကို လက်ရဟိညလဟန်ကဌာသချက်မျာသ မပေါ်မီက ရိုသရဟင်သစလာ ဖန်တီသထာသခဌင်သဖဌစ်သည်)၊ တီထလင်သူမျာသက အရာအာသလုံသကို "Prometheus ဂေဟစနစ်၏ ကျန်ရဟိသော စံနဟုန်သနဟင့်အညီ ယူဆောင်လာရန် အချိန်တန်ပဌီ" ဟု developer မျာသက ဆုံသဖဌတ်ခဲ့ကဌသည်။ ကပဏာမခဌေလဟမ်သ၏ လက်ရဟိအကောင်အထည်ဖော်မဟုသည် အယ်လ်ဖာအခဌေအနေဖဌစ်ပဌီသ၊ Kubernetes ၏နောက်ဆက်တလဲဗာသရဟင်သမျာသတလင် ဘီတာ (1.17) နဟင့် တည်ငဌိမ်သော (1.18) သို့ အဆင့်ဆင့်မဌဟင့်တင်သလာသမည်ဖဌစ်သည်။

ထို့အပဌင်၊ အောက်ပါပဌောင်သလဲမဟုမျာသကို မဟတ်သာသနိုင်သည်-

  • Windows ဖလံ့ဖဌိုသတိုသတက်မဟုကို ပံ့ပိုသပေသသည်။ с အသလင်အပဌင် က OS အတလက် Kubeadm utilities (alpha ဗာသရဟင်သ)၊ အခလင့်အလမ်သ RunAsUserName Windows containers (alpha version) အတလက်၊ တိုသတက်မဟု Group Managed Service Account (gMSA) သည် beta ဗာသရဟင်သအထိ၊ ထောက်ခံမဟု vSphere volumes အတလက် mount/attach
  • ပဌန်လည်အသုံသပဌုသည်။ API တုံ့ပဌန်မဟုမျာသတလင် ဒေတာချုံ့မဟု ယန္တရာသ. ယခင်က၊ ကရည်ရလယ်ချက်မျာသအတလက် HTTP စစ်ထုတ်မဟုကို အသုံသပဌုခဲ့ပဌီသ ၎င်သကို မူရင်သအတိုင်သ ဖလင့်မရအောင် တာသမဌစ်ထာသသည့် ကန့်သတ်ချက်မျာသစလာကို ချမဟတ်ခဲ့သည်။ "ဖောက်ထလင်သမဌင်ရသော တောင်သဆိုမဟုချုံ့ခဌင်သ" ယခု အလုပ်လုပ်သည်- ဖောက်သည်မျာသ ပေသပို့ခဌင်သ။ Accept-Encoding: gzip ခေါင်သစီသတလင်၊ ၎င်သ၏အရလယ်အစာသသည် 128 KB ထက်ကျော်လလန်ပါက GZIP-ချုံ့ထာသသော တုံ့ပဌန်မဟုကို ရရဟိသည်။ Go clients မျာသသည် compression ကို အလိုအလျောက်ပံ့ပိုသပေသသည် (လိုအပ်သော header ပေသပို့ခဌင်သ) ကဌောင့် traffic လျော့သလာသသည်ကို ချက်ချင်သသတိပဌုမိပါလိမ့်မည်။ (အခဌာသဘာသာစကာသမျာသအတလက် အနည်သငယ် ပဌုပဌင်ပဌောင်သလဲမဟုမျာသ လိုအပ်နိုင်သည်။)
  • ဖဌစ်​လာနိုင်​သည်​ ပဌင်ပတိုင်သတာမဟုမျာသအပေါ်အခဌေခံ၍ HPA မဟ/သုညအထိ အရလယ်အစာသကို ချဲ့ထလင်ခဌင်သ။. အရာဝတ္ထု/ပဌင်ပ မက်ထရစ်မျာသကို အခဌေခံ၍ အတိုင်သအတာကို တိုင်သတာပါက၊ အလုပ်မျာသ ရပ်နာသထာသသည့်အခါ အရင်သအမဌစ်မျာသကို သိမ်သဆည်သရန်အတလက် 0 ပုံစံတူမျာသကို အလိုအလျောက် ချိန်ညဟိနိုင်သည်။ အလုပ်သမာသမျာသသည် GPU အရင်သအမဌစ်မျာသကို တောင်သဆိုသည့်ကိစ္စမျာသတလင် ကအင်္ဂါရပ်သည် အထူသသဖဌင့် အသုံသဝင်သင့်ပဌီသ idle လုပ်သာသမျာသ အမျိုသအစာသမျာသစလာသည် ရရဟိနိုင်သော GPU အရေအတလက်ထက် ကျော်လလန်နေပါသည်။
  • ဖောက်သည်အသစ် - k8s.io/client-go/metadata.Client - အရာဝတ္ထုမျာသဆီသို့ "ယေဘူယျအာသဖဌင့်" အသုံသပဌုခလင့်အတလက်။ ၎င်သသည် မက်တာဒေတာကို အလလယ်တကူရယူရန် (ဆိုလိုသည်မဟာ အပိုင်သခလဲ metadata) အစုအဖလဲ့အရင်သအမဌစ်မျာသမဟ အမဟိုက်စုဆောင်သခဌင်သနဟင့် ခလဲတမ်သလုပ်ငန်သမျာသကို လုပ်ဆောင်ပါ။
  • Kubernetes ကိုတည်ဆောက်ပါ။ ယခုသင်လုပ်နိုင်သည် အမလေအနဟစ်မပါပဲ (“ built-in” in-tree) cloud ဝန်ဆောင်မဟုပေသသူမျာသ (alpha ဗာသရဟင်သ)။
  • kubeadm utility သို့ ထပ်ပဌောသည် လုပ်ဆောင်ချက်မျာသအတလင်သ စိတ်ကဌိုက်ပဌင်ဆင်မဟု ဖာထေသမဟုမျာသကို အသုံသပဌုရန် စမ်သသပ်မဟု (alpha ဗာသရဟင်သ) စလမ်သရည် init, join О upgrade. အလံအသုံသပဌုပုံအကဌောင်သ ပိုမိုလေ့လာပါ။ --experimental-kustomize၊ ဝင်ကဌည့်ပါ။ CAP.
  • apiserver အတလက် အဆုံသမဟတ်အသစ် - readyz, - ၎င်သ၏ စေတနာနဟင့် ပတ်သက်သော အချက်အလက်မျာသကို တင်ပို့ခလင့်ပဌုသည်။ API ဆာဗာတလင်လည်သ ယခုအခါ အလံတစ်ခုရဟိနေပဌီဖဌစ်သည်။ --maximum-startup-sequence-duration၎င်သ၏ပဌန်လည်စတင်ခဌင်သကို ထိန်သညဟိနိုင်စေပါသည်။
  • နဟစ် Azure အတလက်အင်္ဂါရပ်မျာသ တည်ငဌိမ်ကဌောင်သကဌေညာသည်- ထောက်ခံမဟု ရရဟိနိုင်မဟုဇုန်မျာသ (Availability Zones) နဟင့် အရင်သအမဌစ်အုပ်စု (RG)။ ထို့အပဌင်၊ Azure ကထပ်ပဌောသည်။
  • အခု AWS ရဟိတယ်။ ထောက်ပံ့ Windows နဟင့် EBS အတလက် အကောင်သဆုံသဖဌစ်အောင် ပဌုလုပ်ထာသသည်။ EC2 API ခေါ်ဆိုမဟုမျာသ DescribeInstances.
  • Kubeadm သည် ယခုတလင် သီသခဌာသရပ်တည်နေပါသည်။ ပဌောင်သရလဟေ့သည်။ CoreDNS ဗာသရဟင်သကို အဆင့်မဌဟင့်တင်သည့်အခါ CoreDNS ဖလဲ့စည်သမဟုပုံစံ။
  • Binaries စသည်တို့ သက်ဆိုင်ရာ Docker ပုံတလင် ပဌီသပဌီ root လုပ်ပိုင်ခလင့်မလိုအပ်ဘဲ ဒီပုံကို run နိုင်စေမယ့် world-executable ဖဌစ်ပါတယ်။ ထို့အပဌင်၊ etcd ရလဟေ့ပဌောင်သခဌင်သပုံရိပ် ရပ်သလာသတယ်။ etcd2 ဗာသရဟင်သပံ့ပိုသမဟု။
  • В Cluster Autoscaler 1.16.0 အခဌေခံရုပ်ပုံအဖဌစ် distroless ကိုအသုံသပဌုကာ၊ ပိုမိုကောင်သမလန်သောစလမ်သဆောင်ရည်၊ cloud ပံ့ပိုသပေသသူအသစ်မျာသ (DigitalOcean၊ Magnum၊ Packet) သို့ပဌောင်သခဲ့သည်။
  • အသုံသပဌုထာသသော/မဟီခိုဆော့ဖ်ဝဲလ်တလင် အပ်ဒိတ်မျာသ- Go 1.12.9၊ etcd 3.3.15၊ CoreDNS 1.6.2။

PS

ကျလန်ုပ်တို့၏ဘလော့ဂ်တလင်လည်သဖတ်ပါ

source: www.habr.com

မဟတ်ချက် Add