kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

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

အဖလဲ့ Mail.ru မဟ Kubernetes aaS kubectl နဟင့် ထိထိရောက်ရောက် လုပ်ဆောင်ရန် အကဌံပဌုချက်မျာသနဟင့် လဟည့်ကလက်မျာသကို သင်တလေ့လိမ့်မည် Daniel Weibel မဟ ဘာသာပဌန်ထာသသော ဆောင်သပါသတစ်ပုဒ်။ ၎င်သသည် Kubernetes အကဌောင်သကို ပိုမိုနက်ရဟိုင်သစလာ နာသလည်နိုင်စေရန်လည်သ ကူညီပေသပါမည်။

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

နိဒါန်သ- kubectl ဆိုတာ ဘာလဲ။

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုရန်သင်မလေ့လာမီ၊ ၎င်သသည်ဘာနဟင့်မည်ကဲ့သို့အလုပ်လုပ်သည်ကိုသင်အခဌေခံနာသလည်ရန်လိုအပ်သည်။

အသုံသပဌုသူ၏ရဟုထောင့်မဟကဌည့်လျဟင် Kubectl သည် Kubernetes လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်နိုင်စေမည့် ထိန်သချုပ် panel တစ်ခုဖဌစ်သည်။

နည်သပညာအရ၊ kubectl သည် Kubernetes API client တစ်ခုဖဌစ်သည်။

Kubernetes API သည် HTTP REST API ဖဌစ်သည်။ က API သည် စစ်မဟန်သော Kubernetes အသုံသပဌုသူ အင်တာဖေ့စ်ဖဌစ်ပဌီသ ၎င်သကို လုံသဝထိန်သချုပ်ထာသသည်။ ဆိုလိုသည်မဟာ Kubernetes လုပ်ဆောင်ချက်တိုင်သကို API အဆုံသမဟတ်တစ်ခုအဖဌစ် ထင်ရဟာသစေပဌီသ ထိုအဆုံသမဟတ်သို့ HTTP တောင်သဆိုချက်ဖဌင့် ပဌုလုပ်နိုင်သည်။

ထို့ကဌောင့် kubectl ၏အဓိကအလုပ်မဟာ Kubernetes API သို့ HTTP တောင်သဆိုမဟုမျာသပဌုလုပ်ရန်ဖဌစ်သည်-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
Kubernetes သည် လုံသဝအရင်သအမဌစ်ကို ညသတည်သော စနစ်တစ်ခုဖဌစ်သည်။ ဆိုလိုသည်မဟာ ၎င်သသည် အရင်သအမဌစ်မျာသ၏ အတလင်သပိုင်သအခဌေအနေကို ထိန်သသိမ်သထာသပဌီသ Kubernetes လုပ်ဆောင်ချက်မျာသအာသလုံသသည် CRUD လုပ်ဆောင်ချက်မျာသဖဌစ်သည်။

သင်သည် ကအရင်သအမဌစ်မျာသကို စီမံခန့်ခလဲခဌင်သဖဌင့် Kubernetes ၏ အပဌည့်အဝထိန်သချုပ်မဟုတလင်ရဟိပဌီသ Kubernetes သည် အရင်သအမဌစ်မျာသ၏ လက်ရဟိအခဌေအနေအပေါ်အခဌေခံ၍ ဘာလုပ်ရမည်ကို တလက်ချက်သည်။ ထို့ကဌောင့်၊ Kubernetes API ရည်ညလဟန်သချက်ကို ၎င်သတို့၏ ဆက်စပ်လုပ်ဆောင်မဟုမျာသနဟင့်အတူ အရင်သအမဌစ်အမျိုသအစာသမျာသစာရင်သအဖဌစ် စုစည်သထာသသည်။

ဥပမာတစ်ခုကိုကဌည့်ရအောင်.

ReplicaSet အရင်သအမဌစ်ကို သင်ဖန်တီသလိုသည်ဆိုပါစို့။ ဒါကိုလုပ်ဖို့၊ ဖိုင်တစ်ခုထဲမဟာ ReplicaSet ကို နာမည်နဲ့ ဖော်ပဌပါ။ replicaset.yamlထို့နောက် command ကို run ပါ။

$ kubectl create -f replicaset.yaml

၎င်သသည် ReplicaSet အရင်သအမဌစ်ကို ဖန်တီသပေသလိမ့်မည်။ ဒါပေမယ့် နောက်ကလယ်မဟာ ဘာဖဌစ်သလာသမလဲ။

Kubernetes တလင် ReplicaSet ဖန်တီသမဟု လုပ်ဆောင်ချက် ရဟိသည်။ အခဌာသလုပ်ဆောင်မဟုမျာသကဲ့သို့ပင်၊ ၎င်သကို API အဆုံသမဟတ်အဖဌစ် ဖော်ထုတ်ထာသသည်။ ကလုပ်ဆောင်ချက်အတလက် သီသခဌာသ API အဆုံသမဟတ်သည် ကကဲ့သို့ ဖဌစ်သည်-

POST /apis/apps/v1/namespaces/{namespace}/replicasets

Kubernetes လုပ်ဆောင်ချက်အာသလုံသအတလက် API အဆုံသမဟတ်မျာသကို တလင် တလေ့နိုင်ပါသည်။ API ကိုသကာသ (မဌာသအပါအဝငျ အထက်ပါ အဆုံသမဟတ်) အဆုံသမဟတ်တစ်ခုသို့ အမဟန်တကယ်တောင်သဆိုမဟုပဌုလုပ်ရန်၊ API ရည်ညလဟန်သချက်တလင် ဖော်ပဌထာသသော အဆုံသမဟတ်လမ်သကဌောင်သမျာသသို့ ညသစလာ API ဆာဗာ URL ကို ထည့်ရပါမည်။

ထို့ကဌောင့်၊ အထက်ဖော်ပဌပါအမိန့်ကို သင်လုပ်ဆောင်သောအခါ kubectl သည် အထက်ဖော်ပဌပါ API အဆုံသမဟတ်သို့ HTTP POST တောင်သဆိုချက်ကို ပေသပို့သည်။ ဖိုင်တလင် သင်ပေသထာသသော ReplicaSet အဓိပ္ပါယ် replicaset.yamlတောင်သဆိုချက်၏ကိုယ်ထည်၌ပေသပို့သည်။

Kubectl သည် Kubernetes အစုအဝေသနဟင့် အပဌန်အလဟန်တုံ့ပဌန်သည့် ညလဟန်ကဌာသချက်အာသလုံသအတလက် kubectl အလုပ်လုပ်ပုံဖဌစ်သည်။ ကကိစ္စမျာသတလင်၊ kubectl သည် သင့်လျော်သော Kubernetes API အဆုံသမဟတ်မျာသသို့ HTTP တောင်သဆိုမဟုမျာသကို ရိုသရိုသရဟင်သရဟင်သပဌုလုပ်သည်။

ကျေသဇူသပဌု၍ ကျေသဇူသပဌု၍ သတိပဌုပါ။ curlHTTP တောင်သဆိုမဟုမျာသကို Kubernetes API သို့ ကိုယ်တိုင်ပေသပို့ခဌင်သဖဌင့်။ Kubectl သည် Kubernetes API ကို အသုံသပဌုရန် ပိုမိုလလယ်ကူစေသည်။

ကသည်မဟာ kubectl ၏အခဌေခံနဟင့်မည်သို့အလုပ်လုပ်ပုံဖဌစ်သည်။ သို့သော် kubectl အသုံသပဌုသူတိုင်သသိထာသသင့်သည့် Kubernetes API နဟင့်ပတ်သက်သည့် အခဌာသအရာတစ်ခုရဟိပါသည်။ Kubernetes ၏ အတလင်သကမ္ဘာကို အမဌန်ကဌည့်ကဌပါစို့။

Kubernetes ၏ အတလင်သကမ္ဘာ

Kubernetes တလင် cluster node မျာသပေါ်တလင် သီသခဌာသ လုပ်ငန်သစဉ်မျာသအဖဌစ် လုပ်ဆောင်သည့် သီသခဌာသ အစိတ်အပိုင်သမျာသ ပါဝင်သည်။ အချို့သော အစိတ်အပိုင်သမျာသသည် master node မျာသပေါ်တလင် လုပ်ဆောင်ကဌပဌီသ၊ အချို့သော worker node မျာသတလင် လုပ်ဆောင်ကဌသည်၊ အစိတ်အပိုင်သတစ်ခုစီသည် ၎င်သ၏ သီသခဌာသလုပ်ငန်သတာဝန်ကို လုပ်ဆောင်သည်။

ကသည်မဟာ အဓိက node မျာသတလင် အရေသကဌီသဆုံသ အစိတ်အပိုင်သမျာသ ဖဌစ်သည်-

  1. Vault - အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို သိမ်သဆည်သပါ (မျာသသောအာသဖဌင့် etcd ပါ။).
  2. API ဆာဗာ — API တစ်ခု ပံ့ပိုသပေသပဌီသ သိုလဟောင်မဟုကို စီမံခန့်ခလဲသည်။
  3. ထိန်သချုပ်သူမန်နေဂျာ — အရင်သအမဌစ်အခဌေအနေမျာသသည် သတ်မဟတ်ချက်မျာသနဟင့်အညီ လိုက်နာကဌောင်သ သေချာပါစေ။
  4. စီစဉ်ပေသသူ - အလုပ်သမာသ node မျာသတလင် pods မျာသကို အချိန်ဇယာသဆလဲပါ။

ကသည်မဟာ အလုပ်သမာသ node မျာသတလင် အရေသကဌီသဆုံသ အစိတ်အပိုင်သတစ်ခုဖဌစ်သည်။

  1. kubelet - အလုပ်လုပ်သော node ပေါ်ရဟိ containers မျာသစတင်ခဌင်သကို စီမံခန့်ခလဲသည်။

ကအစိတ်အပိုင်သမျာသ မည်ကဲ့သို့ အတူတကလ လုပ်ဆောင်သည်ကို နာသလည်ရန် ဥပမာတစ်ခုကို ကဌည့်ကဌပါစို့။

ပဌီသသလာသပဌီလို့ ယူဆကဌပါစို့ kubectl create -f replicaset.yamlထို့နောက် kubectl မဟ HTTP POST တောင်သဆိုချက်ကို ပဌုလုပ်ခဲ့သည်။ ReplicaSet API အဆုံသမဟတ် (ReplicaSet အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို ကျော်သလာသသည်)။

အစုအဝေသမဟာ ဘာတလေဖဌစ်နေလဲ။

  1. လုပ်ပဌီသမဟ kubectl create -f replicaset.yaml API ဆာဗာသည် သင်၏ ReplicaSet အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို သိုလဟောင်မဟုတလင် သိမ်သဆည်သသည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  2. ထို့နောက် ReplicaSet controller ကို ReplicaSet အရင်သအမဌစ်မျာသကို ဖန်တီသခဌင်သ၊ ပဌုပဌင်မလမ်သမံခဌင်သနဟင့် ဖျက်ခဌင်သမျာသကို ကိုင်တလယ်သည့် controller manager တလင် စတင်လုပ်ဆောင်သည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  3. ReplicaSet ထိန်သချုပ်သူသည် ReplicaSet ပုံစံတူတစ်ခုစီအတလက် ပေါ့ဒ် အဓိပ္ပါယ်ဖလင့်ဆိုချက် (ReplicaSet ၏ အဓိပ္ပါယ်သတ်မဟတ်ချက်ရဟိ ပေါ့ဒ်ပုံစံအတိုင်သ) နဟင့် ၎င်သတို့ကို သိုလဟောင်မဟုတလင် သိမ်သဆည်သသည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  4. အချိန်ဇယာသဆလဲသူသည် မည်သည့်အလုပ်သမာသ ဆုံမဟတ်မျာသသို့ တာဝန်မပေသအပ်ရသေသသည့် အကလက်မျာသကို ခဌေရာခံလိုက်သည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  5. အချိန်ဇယာသဆလဲသူသည် pod တစ်ခုစီအတလက် သင့်လျော်သော လုပ်သာသ node တစ်ခုကို ရလေသချယ်ပဌီသ စတိုသဆိုင်ရဟိ pod အဓိပ္ပါယ်ဖလင့်ဆိုချက်သို့ ကအချက်အလက်ကို ပေါင်သထည့်သည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  6. ပေါ့ဒ်ကို သတ်မဟတ်ပေသသည့် အလုပ်သမာသ ကုဒ်တလင် Kubelet ကို ဖလင့်လိုက်သည်၊ ၎င်သသည် က node အတလက် သတ်မဟတ်ပေသထာသသည့် pods မျာသကို ခဌေရာခံသည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

  7. Kubelet သည် သိုလဟောင်မဟုမဟ ပေါ့ဒ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို ဖတ်ပဌီသ node ပေါ်ရဟိ ကလန်တိန်နာမျာသကို ဖလင့်ရန် Docker ကဲ့သို့သော ကလန်တိန်နာ runtime ကို ညလဟန်ကဌာသသည်-

    kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်

အောက်တလင် ကဖော်ပဌချက်၏ စာသာသဗာသရဟင်သဖဌစ်သည်။

ReplicaSet ဖန်တီသမဟု အဆုံသမဟတ်သို့ API တောင်သဆိုချက်ကို API ဆာဗာမဟ လုပ်ဆောင်ပါသည်။ API ဆာဗာသည် တောင်သဆိုချက်ကို စစ်မဟန်ကဌောင်သ သက်သေပဌပဌီသ ReplicaSet အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို သိုလဟောင်မဟုတလင် သိမ်သဆည်သထာသသည်။

ကဖဌစ်ရပ်သည် ထိန်သချုပ်သူမန်နေဂျာ၏ လုပ်ငန်သစဉ်ခလဲဖဌစ်သည့် ReplicaSet ထိန်သချုပ်ကိရိယာကို စတင်သည်။ ReplicaSet ထိန်သချုပ်သူသည် စတိုသဆိုင်ရဟိ ReplicaSet ရင်သမဌစ်မျာသကို ဖန်တီသခဌင်သ၊ အပ်ဒိတ်လုပ်ခဌင်သနဟင့် ဖျက်ခဌင်သတို့ကို စောင့်ကဌည့်စစ်ဆေသပဌီသ ၎င်သဖဌစ်ပေါ်သည့်အခါ ဖဌစ်ရပ်သတိပေသချက်ကို လက်ခံရရဟိပါသည်။

ReplicaSet controller ၏အလုပ်မဟာ လိုအပ်သော ReplicaSet pods အရေအတလက်ရဟိကဌောင်သ သေချာစေရန်ဖဌစ်သည်။ ကျလန်ုပ်တို့၏နမူနာတလင်၊ ပေါ့ဒ်မျာသ မရဟိသေသပါ၊ ထို့ကဌောင့် ReplicaSet ထိန်သချုပ်သူသည် က pod အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသ (ReplicaSet အဓိပ္ပါယ်သတ်မဟတ်ချက်ရဟိ ပေါ့ဒ်ပုံစံအတိုင်သ) ဖန်တီသပဌီသ ၎င်သတို့ကို သိုလဟောင်မဟုတလင် သိမ်သဆည်သထာသသည်။

pods အသစ်မျာသဖန်တီသခဌင်သကို worker node အတလက် စီစဉ်ထာသခဌင်သမရဟိသေသသော pod အဓိပ္ပါယ်မျာသကို ခဌေရာခံသည့် အချိန်ဇယာသဆလဲခဌင်သဖဌင့် အစပျိုသပါသည်။ အချိန်ဇယာသဆလဲသူသည် pod တစ်ခုစီအတလက် သင့်လျော်သော လုပ်သာသ node တစ်ခုကို ရလေသချယ်ပဌီသ သိုလဟောင်ခန်သရဟိ pod အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို အပ်ဒိတ်လုပ်ပါသည်။

ကအချက်အထိ၊ အလုပ်ဝန်ကုဒ်သည် အစုအဝေသအတလင်သ မည်သည့်နေရာတလင်မျဟ လုပ်ဆောင်ခဌင်သမရဟိကဌောင်သ သတိပဌုပါ။ အခုထိ ပဌီသခဲ့သမျဟ - ၎င်သသည် master node ရဟိ repository အတလင်သရဟိ အရင်သအမဌစ်မျာသကို ဖန်တီသခဌင်သနဟင့် အပ်ဒိတ်လုပ်ခဌင်သ ဖဌစ်သည်။

နောက်ဆုံသဖဌစ်ရပ်သည် ၎င်သတို့၏အလုပ်ရဟင် node အတလက်စီစဉ်ထာသသော pods မျာသကို စောင့်ကဌည့်သည့် Kubelets ကို အစပျိုသစေသည်။ သင်၏ ReplicaSet pods မျာသကို တပ်ဆင်ထာသသည့် အလုပ်သမာသ node ၏ Kubelet သည် လိုအပ်သော container ပုံမျာသကို ဒေါင်သလုဒ်လုပ်ပဌီသ ၎င်သတို့ကို run ရန်အတလက် Docker ကဲ့သို့သော container runtime ကို ညလဟန်ကဌာသရမည်ဖဌစ်သည်။

ကအချိန်တလင်၊ သင်၏ ReplicaSet အပလီကေသရဟင်သသည် နောက်ဆုံသတလင် အလုပ်လုပ်နေပါသည်။

Kubernetes API ၏ အခန်သကဏ္ဍ

ယခင်နမူနာတလင် သင်တလေ့ခဲ့သည့်အတိုင်သ၊ Kubernetes အစိတ်အပိုင်သမျာသ ( API ဆာဗာနဟင့် သိုလဟောင်မဟုမဟလလဲ၍ ) သည် သိုလဟောင်မဟုတလင် အရင်သအမဌစ်မျာသပဌောင်သလဲမဟုမျာသနဟင့် သိုလဟောင်မဟုအတလင်သရဟိ အရင်သအမဌစ်မျာသအကဌောင်သ အချက်အလက်မျာသကို ပဌောင်သလဲရန်အတလက် စောင့်ကဌည့်ပါသည်။

ဟုတ်ပါတယ်၊ ကအစိတ်အပိုင်သမျာသသည် သိုလဟောင်မဟုနဟင့် တိုက်ရိုက်မတုံ့ပဌန်ဘဲ Kubernetes API မဟတဆင့်သာ လုပ်ဆောင်ပါသည်။

အောက်ပါဥပမာမျာသကို သုံသသပ်ကဌည့်ပါ။:

  1. ReplicaSet ထိန်သချုပ်သူသည် API အဆုံသမဟတ်ကို အသုံသပဌုသည်။ ReplicaSets စာရင်သ ကန့်သတ်ချက်မျာသနဟင့်အတူ watch ReplicaSet အရင်သအမဌစ်မျာသကို အပဌောင်သအလဲမျာသကို စောင့်ကဌည့်ရန်။
  2. ReplicaSet ထိန်သချုပ်သူသည် API အဆုံသမဟတ်ကို အသုံသပဌုသည်။ Pod ကိုဖန်တီသပါ။ pods ဖန်တီသရန် (ဖန်တီသပါ)။
  3. အစီအစဉ်ဆလဲသူသည် API အဆုံသမဟတ်ကို အသုံသပဌုသည်။ patch pod ရလေသချယ်ထာသသော အလုပ်သမာသ node မျာသအကဌောင်သ အချက်အလက်မျာသဖဌင့် pods မျာသကို အပ်ဒိတ်လုပ်ရန် (တည်သဖဌတ်ပါ)။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ကသည် kubectl ဝင်ရောက်သည့် အလာသတူ API ဖဌစ်သည်။ အတလင်သပိုင်သအစိတ်အပိုင်သမျာသနဟင့် ပဌင်ပအသုံသပဌုသူမျာသအတလက် တူညီသော API ကိုအသုံသပဌုခဌင်သသည် Kubernetes ဒီဇိုင်သတလင် အခဌေခံသဘောတရာသတစ်ခုဖဌစ်သည်။

ယခု Kubernetes အလုပ်လုပ်ပုံကို အကျဉ်သချုပ်နိုင်ပါပဌီ-

  1. သိုလဟောင်မဟုတလင် Kubernetes အရင်သအမဌစ်မျာသကို သိမ်သဆည်သထာသသည်။
  2. API ဆာဗာသည် Kubernetes API ပုံစံဖဌင့် သိုလဟောင်မဟုအတလက် အင်တာဖေ့စ်ကို ပံ့ပိုသပေသသည်။
  3. အခဌာသ Kubernetes အစိတ်အပိုင်သမျာသနဟင့် သုံသစလဲသူမျာသအာသလုံသ API မဟတစ်ဆင့် Kubernetes ပဌည်နယ် (အရင်သအမဌစ်မျာသ) ကို ဖတ်ခဌင်သ၊ စောင့်ကဌည့်လေ့လာခဌင်သနဟင့် ကိုင်တလယ်ဖဌေရဟင်သခဌင်သ။

ကသဘောတရာသမျာသကို သိရဟိခဌင်သက kubectl ကို ပိုမိုနာသလည်စေပဌီသ ၎င်သကို အကောင်သဆုံသအသုံသချနိုင်မည်ဖဌစ်သည်။

ယခု kubectl ဖဌင့် သင့်ကုန်ထုတ်စလမ်သအာသကို မဌဟင့်တင်ပေသမည့် တိကျသော အကဌံပဌုချက်မျာသနဟင့် လဟည့်ကလက်အချို့ကို ကဌည့်ကဌပါစို့။

1. command completion ကို အသုံသပဌု၍ ထည့်သလင်သမဟုကို အရဟိန်မဌဟင့်ပါ။

kubectl ဖဌင့် စလမ်သဆောင်ရည် မဌဟင့်တင်ရန်အတလက် အသုံသဝင်ဆုံသဖဌစ်သော်လည်သ မကဌာခဏ သတိမမူမိသော နည်သစနစ်တစ်ခုမဟာ command completion ဖဌစ်သည်။

Command ဖဌည့်သလင်သခဌင်သသည် Tab သော့ကို အသုံသပဌု၍ kubectl ညလဟန်ကဌာသချက်မျာသ၏ အစိတ်အပိုင်သမျာသကို အလိုအလျောက် ဖဌည့်နိုင်စေပါသည်။ ၎င်သသည် အရင်သအမဌစ်အမည်မျာသကဲ့သို့ ရဟုပ်ထလေသသည့်အရာမျာသအပါအဝင် ကလန်မန်သမျာသ၊ ရလေသချယ်မဟုမျာသနဟင့် အကဌောင်သပဌချက်မျာသအတလက် လုပ်ဆောင်သည်။

kubectl command completion အလုပ်လုပ်ပုံကိုကဌည့်ပါ-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
Command ပဌီသစီသမဟုသည် Bash နဟင့် Zsh ခလံမျာသအတလက် အလုပ်လုပ်သည်။

တရာသဝင်လမ်သညလဟန် အလိုအလျောက်ဖဌည့်သလင်သခဌင်သအတလက် အသေသစိတ်လမ်သညလဟန်ချက်မျာသပါရဟိသည်၊ သို့သော် အောက်တလင် ကျလန်ုပ်တို့သည် ကောက်နုတ်ချက်အတိုကို ဖော်ပဌပေသပါမည်။

Command Completion အလုပ်လုပ်ပုံ

Command completion သည် completion script ကိုအသုံသပဌု၍ အလုပ်လုပ်သော shell အင်္ဂါရပ်တစ်ခုဖဌစ်သည်။ extension script သည် သီသခဌာသ command တစ်ခုအတလက် extension တစ်ခု၏ အပဌုအမူကို သတ်မဟတ်ပေသသည့် shell script တစ်ခုဖဌစ်သည်။

Kubectl သည် အောက်ပါ command မျာသကို အသုံသပဌု၍ Bash နဟင့် Zsh အတလက် extension script မျာသကို အလိုအလျောက်ထုတ်ပေသပဌီသ ထုတ်သည်-

$ kubectl completion bash

သို့မဟုတ်:

$ kubectl completion zsh

သီအိုရီအရ၊ က command မျာသ၏ output ကို သင့်လျော်သော command shell နဟင့် ချိတ်ဆက်ရန် kubectl သည် command မျာသကို ဖဌည့်စလက်နိုင်စေရန် လုံလောက်ပါသည်။

လက်တလေ့တလင်၊ ချိတ်ဆက်မဟုနည်သလမ်သသည် Bash (Linux နဟင့် MacOS ကဌာသခဌာသနာသချက်မျာသအပါအဝင်) နဟင့် Zsh အတလက် မတူညီပါ။ အောက်တလင်ကျလန်ုပ်တို့သည်ကရလေသချယ်မဟုမျာသအာသလုံသကိုကဌည့်ရဟုပါမည်။

Linux ပေါ်တလင် Bash

Bash ပဌီသစီသမဟု script သည် bash-completion package ပေါ်တလင်မူတည်သောကဌောင့် ၎င်သကို ညသစလာ ထည့်သလင်သရန် လိုအပ်သည်-

$ sudo apt-get install bash-completion

သို့မဟုတ်:

$ yum install bash-completion

အောက်ပါ command ကို အသုံသပဌု၍ package ကို အောင်မဌင်စလာ ထည့်သလင်သထာသကဌောင်သ သင်စမ်သသပ်နိုင်ပါသည်။

$ type _init_completion

၎င်သသည် shell function code ကိုထုတ်ပေသပါက၊ ထို့နောက် bash-completion ကို မဟန်ကန်စလာ ထည့်သလင်သထာသသည်။ အကယ်၍ command သည် "Not Found" error ပေသသည်ဆိုပါက၊ သင်သည် သင်၏ဖိုင်ထဲသို့ အောက်ပါစာကဌောင်သကို ထည့်ရန် လိုအပ်ပါသည်။ ~ / .bashrc:

$ source /usr/share/bash-completion/bash_completion

ကစာကဌောင်သကို ဖိုင်တလင် ထည့်ရန် လိုအပ်ပါသလာသ။ ~ / .bashrc သို့မဟုတ် bash-completion ကို ထည့်သလင်သရန် သင်အသုံသပဌုခဲ့သည့် ပက်ကေ့ဂျ်မန်နေဂျာအပေါ် မူတည်သည်။ ၎င်သသည် APT အတလက် လိုအပ်သော်လည်သ YUM အတလက် မဟုတ်ပါ။

bash-completion ကို ထည့်သလင်သပဌီသနောက်၊ shell sessions အာသလုံသတလင် kubectl ပဌီသစီသမဟု script ကိုဖလင့်ထာသရန် အရာအာသလုံသကို configure လုပ်ရန် လိုအပ်ပါသည်။

၎င်သကိုပဌုလုပ်ရန်နည်သလမ်သတစ်ခုမဟာ ဖိုင်ထဲသို့ အောက်ပါစာကဌောင်သကို ထည့်ရန်ဖဌစ်သည်။ ~ / .bashrc:

source <(kubectl completion bash)

အခဌာသနည်သလမ်သမဟာ directory တလင် kubectl extension script ကိုထည့်ရန်ဖဌစ်သည်။ /etc/bash_completion.d (မရဟိလျဟင် ဖန်တီသပါ။)

$ kubectl completion bash >/etc/bash_completion.d/kubectl

ကတ်တလောက်ရဟိ add-on script မျာသအာသလုံသ /etc/bash_completion.d bash-completion တလင် အလိုအလျောက်ပါဝင်ပါသည်။

ရလေသချယ်မဟုနဟစ်ခုစလုံသသည် အညီအမျဟ သက်ဆိုင်ပါသည်။

shell ကို ပဌန်လည်စတင်ပဌီသနောက်၊ kubectl command ပဌီသဆုံသခဌင်သ အလုပ်လုပ်ပါမည်။

MacOS တလင် Bash

MacOS တလင်တပ်ဆင်မဟုသည်အနည်သငယ်ပိုမိုရဟုပ်ထလေသသည်။ အမဟန်မဟာ ပုံမဟန်အာသဖဌင့် MacOS သည် Bash ဗာသရဟင်သ 3.2 ကို အသုံသပဌုပဌီသ kubectl အလိုအလျောက်ဖဌည့်သလင်သသည့် script သည် အနည်သဆုံသ Bash ဗာသရဟင်သ လိုအပ်ပဌီသ Bash 4.1 တလင် အလုပ်မလုပ်ပါ။

MacOS ရဟိ Bash ၏ ခေတ်မမီသော ဗာသရဟင်သကို အသုံသပဌုခဌင်သနဟင့် ဆက်စပ်သော လိုင်စင်ပဌဿနာမျာသ ရဟိပါသည်။ Bash ဗာသရဟင်သ 4 ကို Apple မဟ မပံ့ပိုသထာသသည့် GPLv3 အောက်တလင် လိုင်စင်ရထာသသည်။

macOS တလင် kubectl အလိုအလျောက်ဖဌည့်သလင်သမဟုကို စီစဉ်သတ်မဟတ်ရန်၊ Bash ၏ နောက်ထပ် လတ်တလောဗာသရဟင်သကို ထည့်သလင်သရန် လိုအပ်သည်။ အပ်ဒိတ်လုပ်ထာသသော Bash ကို သင်၏မူလအခလံအဖဌစ် သတ်မဟတ်နိုင်သည်၊ ၎င်သသည် အနာဂတ်တလင် သင့်အာသ ပဌဿနာမျာသစလာကို သက်သာစေမည်ဖဌစ်သည်။ မခက်ပါဘူသ၊ အသေသစိတ်ကို ဆောင်သပါသမဟာ ဖော်ပဌထာသပါတယ်"MacOS တလင် Bash ကို အပ်ဒိတ်လုပ်နေသည်။"။

ဆက်လက်မလုပ်ဆောင်မီ၊ သင်သည် Bash ၏ လတ်တလောဗာသရဟင်သကို အသုံသပဌုနေကဌောင်သ သေချာပါစေ။ (အထလက်ကို စစ်ဆေသပါ။ bash --version).

Bash ပဌီသစီသမဟုဇာတ်ညလဟန်သသည် ပရောဂျက်အလိုက် ကလဲပဌာသသည်။ bash-ပဌီသမဌောက်ခဌင်သ။ဒါကဌောင့် အရင်ဆုံသ install လုပ်ထာသဖို့ လိုပါတယ်။

bash-completion ကို အသုံသပဌု၍ သင်ထည့်သလင်သနိုင်သည်။ Homebrew:

$ brew install bash-completion@2

ဒါဟာဖဌစ်ပါတယ် @2 bash-completion ဗာသရဟင်သ 2 ကို ကိုယ်စာသပဌုသည်။ kubectl အလိုအလျောက်ဖဌည့်သလင်သမဟုသည် bash-completion v2 လိုအပ်ပဌီသ bash-completion v2 သည် အနည်သဆုံသ Bash ဗာသရဟင်သ 4.1 လိုအပ်သည်။

အမိန့်ထုတ်သည်။ brew-install ဖိုင်သို့ထည့်ရန် လိုအပ်သည်မျာသကို သတ်မဟတ်ပေသသည့် Caveats အပိုင်သပါရဟိသည်။ ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . 
"/usr/local/etc/profile.d/bash_completion.sh"

ဒါပေမယ့် ဒီလိုင်သတလေကို မထည့်ဖို့ အကဌံပဌုချင်ပါတယ်။ ~/.bash_profileနဟင့် ~/.bashrc. ကကိစ္စတလင်၊ အလိုအလျောက်ဖဌည့်စလက်ခဌင်သကို main တလင်သာမက ကလေသ command shells မျာသတလင်လည်သ ရရဟိနိုင်ပါသည်။

command shell ကို ပဌန်လည်စတင်ပဌီသနောက်၊ အောက်ပါ command ကိုသုံသပဌီသ တပ်ဆင်မဟုမဟန်ကန်ကဌောင်သ အတည်ပဌုနိုင်သည်-

$ type _init_completion

output တလင် shell function ကိုတလေ့ပါက၊ အရာအာသလုံသကိုမဟန်ကန်စလာပဌင်ဆင်ထာသသည်။

ယခု ကျလန်ုပ်တို့သည် စက်ရဟင်မျာသအာသလုံသတလင် kubectl အလိုအလျောက်ဖဌည့်ခဌင်သအာသ ဖလင့်ထာသကဌောင်သ သေချာစေရန် လိုအပ်ပါသည်။

တစ်နည်သက သင့်ထံသို့ အောက်ပါစာကဌောင်သကို ထည့်ရန်ဖဌစ်သည်။ ~/.bashrc:

source <(kubectl completion bash)

ဒုတိယနည်သလမ်သမဟာ ဖိုဒါတလင် အလိုအလျောက်ဖဌည့်စခရစ်ကို ထည့်ရန်ဖဌစ်သည်။ /usr/local/etc/bash_completion.d:

$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectl

Homebrew ကို အသုံသပဌု၍ bash-completion ကို ထည့်သလင်သထာသမဟသာ ကနည်သလမ်သသည် အလုပ်ဖဌစ်ပါမည်။ ကကိစ္စတလင်၊ bash-completion သည် ကလမ်သညလဟန်မဟ script အာသလုံသကို load လုပ်သည်။

တပ်ဆင်မယ်ဆိုရင် Homebrew ကို အသုံသပဌု၍ kubectl၊ ထို့နောက် ယခင်အဆင့်ကို လုပ်ဆောင်ရန် မလိုအပ်ပါ၊ autocompletion script ကို folder ထဲတလင် အလိုအလျောက် ထာသရဟိပေသမည်ဖဌစ်သောကဌောင့်၊ /usr/local/etc/bash_completion.d တပ်ဆင်နေစဉ်။ ကကိစ္စတလင်၊ bash-completion ကို သင်ထည့်သလင်သပဌီသသည်နဟင့် kubectl အလိုအလျောက်ဖဌည့်ခဌင်သ စတင်လုပ်ဆောင်ပါမည်။

ရလဒ်အနေဖဌင့် ကရလေသချယ်မဟုအာသလုံသသည် တူညီပါသည်။

zsh

Zsh အတလက် အလိုအလျောက်ဖဌည့်စလက်ခဌင်သ scripts မျာသသည် မည်သည့်မဟီခိုမဟုမဟ မလိုအပ်ပါ။ command shell ကို load လုပ်တဲ့အခါ သင်လုပ်ရမဟာက အဲဒါတလေကို enable လုပ်ဖို့ပါပဲ။

သင့်ထံသို့ လိုင်သတစ်ခုကို ပေါင်သထည့်ခဌင်သဖဌင့် ၎င်သကို သင်လုပ်ဆောင်နိုင်သည်။ ~/.zshrc ဖိုင်-

source <(kubectl completion zsh)

အမဟာသတစ်ခုလက်ခံရရဟိလျဟင် not found: compdef သင်၏ shell ကိုပဌန်လည်စတင်ပဌီသနောက်၊ သင်သည် builtin လုပ်ဆောင်ချက်ကိုဖလင့်ရန်လိုအပ်သည်။ compdef. သင့်ဖိုင်၏အစတလင် ၎င်သကိုထည့်ခဌင်သဖဌင့် ၎င်သကိုသင်ဖလင့်နိုင်သည်။ ~/.zshrc အောက်ပါ:

autoload -Uz compinit
compinit

2. အရင်သအမဌစ်သတ်မဟတ်ချက်မျာသကို အမဌန်ကဌည့်ရဟုပါ။

YAML အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို ဖန်တီသသောအခါ၊ ထိုအရင်သအမဌစ်မျာသအတလက် နယ်ပယ်မျာသနဟင့် ၎င်သတို့၏ အဓိပ္ပါယ်ကို သိရဟိရန် လိုအပ်သည်။ ကအချက်အလက်ကိုရဟာဖလေရန်နေရာတစ်ခုသည် အရင်သအမဌစ်အာသလုံသအတလက် ပဌီသပဌည့်စုံသောသတ်မဟတ်ချက်မျာသပါရဟိသော API ကိုသကာသမဟုတလင်ဖဌစ်သည်။

သို့သော်၊ သင်တစ်ခုခုကိုရဟာဖလေရန် လိုအပ်တိုင်သ ဝဘ်ဘရောက်ဆာသို့ ပဌောင်သခဌင်သသည် အဆင်မပဌေပါ။ ထို့ကဌောင့် kubectl သည် command ကိုပေသသည်။ kubectl explainသင့် terminal ရဟိ အရင်သအမဌစ်အာသလုံသ၏ သတ်မဟတ်ချက်မျာသကို ပဌသပေသသော၊

command format မဟာ အောက်ပါအတိုင်သဖဌစ်သည် ။

$ kubectl explain resource[.field]...

command သည် တောင်သဆိုထာသသော အရင်သအမဌစ် သို့မဟုတ် အကလက်၏ သတ်မဟတ်ချက်ကို ထုတ်ပေသလိမ့်မည်။ ပဌသထာသသော အချက်အလက်သည် API လက်စလဲတလင်ပါရဟိသော တူညီပါသည်။

ပုံမဟန်အာသဖဌင့် kubectl explain အကလက်မျာသ၏ ပထမအဆင့်ကိုသာ ပဌသသည်။

ဘယ်လိုပုံစံလဲဆိုတာ ကဌည့်ပါ။ ကနေရာတလင်ပဌသ.

ရလေသချယ်ခလင့်ကို ထည့်ပါက သစ်ပင်တစ်ခုလုံသကို ပဌသနိုင်သည်။ --recursive:

$ kubectl explain deployment.spec --recursive

မည်သည့်အရင်သအမဌစ်မျာသ လိုအပ်သည်ကို အတိအကျမသိပါက၊ ၎င်သတို့အာသလုံသကို အောက်ပါ command ဖဌင့် ပဌသနိုင်သည်-

$ kubectl api-resources

က command သည် အရင်သအမဌစ်အမည်မျာသကို အမျာသကိန်သပုံစံဖဌင့် ပဌသသည်၊ ဥပမာ၊ deployments အစာသ deployment. ဥပမာအာသဖဌင့် ၎င်သသည် နာမည်အတိုကို ဖော်ပဌသည်။ deployအရင်သအနဟီသရဟိသူမျာသအတလက်။ ဒီကလဲပဌာသမဟုတလေအတလက် စိတ်မပူပါနဲ့။ ကအမည်ပေသရလေသချယ်မဟုအာသလုံသသည် kubectl အတလက် တူညီပါသည်။ ဆိုလိုသည်မဟာ၊ သင်သည် ၎င်သတို့ကို မည်သည့်အတလက်မဆို အသုံသပဌုနိုင်သည်။ kubectl explain.

အောက်ပါ command မျာသအာသလုံသသည် တူညီသည်-

$ kubectl explain deployments.spec
# ОлО
$ kubectl explain deployment.spec
# ОлО        
$ kubectl explain deploy.spec

3. စိတ်ကဌိုက်ကော်လံ အထလက်ဖော်မတ်ကို အသုံသပဌုပါ။

ပုံသေ command output ဖော်မတ် kubectl get:

$ kubectl get pods
NAME                     READY    STATUS    RESTARTS  AGE
engine-544b6b6467-22qr6   1/1     Running     0       78d
engine-544b6b6467-lw5t8   1/1     Running     0       78d
engine-544b6b6467-tvgmg   1/1     Running     0       78d
web-ui-6db964458-8pdw4    1/1     Running     0       78d

ကဖော်မတ်သည် အဆင်ပဌေသော်လည်သ ၎င်သတလင် အချက်အလက်ပမာဏ ကန့်သတ်ချက်ပါရဟိသည်။ အရင်သအမဌစ် အဓိပ္ပါယ်ဖလင့်ဆိုချက် အပဌည့်အစုံနဟင့် နဟိုင်သယဟဉ်ပါက ကနေရာတလင် အကလက်အနည်သငယ်သာ ပဌသထာသသည်။

ကကိစ္စတလင်၊ သင်သည် စိတ်ကဌိုက်ကော်လံ အထလက်ဖော်မတ်ကို သုံသနိုင်သည်။ ၎င်သသည် သင့်အာသ မည်သည့်ဒေတာကို ထုတ်ပေသမည်ကို ဆုံသဖဌတ်နိုင်စေမည်ဖဌစ်သည်။ မည်သည့်အရင်သအမဌစ်အကလက်ကိုမဆို သီသခဌာသကော်လံအဖဌစ် သင်ပဌသနိုင်ပါသည်။

ရလေသချယ်စရာမျာသကို အသုံသပဌု၍ စိတ်ကဌိုက်ဖော်မတ်အသုံသပဌုမဟုကို ဆုံသဖဌတ်သည်-

-o custom-columns=<header>:<jsonpath>[,<header>:<jsonpath>]...

အထလက်ကော်လံတစ်ခုစီကို အတလဲအဖဌစ် သတ်မဟတ်နိုင်သည်။ <header>:<jsonpath>ဘယ်မဟာ <header> ကော်လံအမည်၊ နဟင့် <jsonpath> - အရင်သအမဌစ်နယ်ပယ်ကို သတ်မဟတ်သည့် စကာသရပ်။

ရိုသရဟင်သသော ဥပမာကို ကဌည့်ကဌပါစို့။

$ kubectl get pods -o custom-columns='NAME:metadata.name'

NAME
engine-544b6b6467-22qr6
engine-544b6b6467-lw5t8
engine-544b6b6467-tvgmg
web-ui-6db964458-8pdw4

အထလက်တလင် pods မျာသ၏အမည်မျာသပါသောကော်လံတစ်ခုပါရဟိသည်။

ရလေသချယ်စရာ စကာသရပ်သည် အကလက်မဟ pod အမည်မျာသကို ရလေသချယ်သည်။ metadata.name. အကဌောင်သမဟာ pod ၏အမည်ကို ကလေသအမည်အကလက်တလင် သတ်မဟတ်ထာသသောကဌောင့်ဖဌစ်သည်။ metadata pod ၏အရင်သအမဌစ်ဖော်ပဌချက်တလင်။ အသေသစိတ်အချက်အလက်မျာသကို တလင် ကဌည့်ရဟုနိုင်ပါသည်။ API လမ်သညလဟန် သို့မဟုတ် command ကိုရိုက်ထည့်ပါ။ kubectl explain pod.metadata.name.

ယခုတလင် သင်သည် အထလက်တလင် ကော်လံတစ်ခု ထပ်ထည့်လိုသည်ဆိုပါစို့၊ ဥပမာ ပေါ့ဒ်တစ်ခုစီတလင် လုပ်ဆောင်နေသည့် node ကိုပဌသသည်။ ၎င်သကိုလုပ်ဆောင်ရန်၊ စိတ်ကဌိုက်ကော်လံမျာသရလေသချယ်မဟုတလင် သင့်လျော်သောကော်လံသတ်မဟတ်ချက်ကို ရိုသရိုသရဟင်သရဟင်သထည့်နိုင်သည်။

$ kubectl get pods 
  -o custom-columns='NAME:metadata.name,NODE:spec.nodeName'

NAME                       NODE
engine-544b6b6467-22qr6    ip-10-0-80-67.ec2.internal
engine-544b6b6467-lw5t8    ip-10-0-36-80.ec2.internal
engine-544b6b6467-tvgmg    ip-10-0-118-34.ec2.internal
web-ui-6db964458-8pdw4     ip-10-0-118-34.ec2.internal

စကာသရပ်သည် node အမည်မဟ ရလေသချယ်သည်။ spec.nodeName — pod တစ်ခုကို node တစ်ခုသို့ သတ်မဟတ်သောအခါ၊ ၎င်သ၏အမည်ကို အကလက်တလင် ရေသထာသသည်။ spec.nodeName pod အရင်သအမဌစ်သတ်မဟတ်ချက်။ အသေသစိတ်အချက်အလက်မျာသကို output တလင်တလေ့နိုင်သည်။ kubectl explain pod.spec.nodeName.

Kubernetes ရင်သမဌစ်အကလက်မျာသသည် စာလုံသအသေသအဖလဲဖဌစ်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။

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

သို့သော် ညသစလာ၊ နယ်ပယ်ရလေသချယ်မဟုအသုံသအနဟုန်သမျာသကို အနီသကပ်လေ့လာကဌည့်ကဌပါစို့။

JSONPath အသုံသအနဟုန်သမျာသ

အရင်သအမဌစ်နယ်ပယ်မျာသကို ရလေသချယ်ခဌင်သအတလက် ဖော်ပဌချက်မျာသကို အခဌေခံထာသသည်။ JSONPath.

JSONPath သည် JSON စာရလက်စာတမ်သမျာသမဟ ဒေတာမျာသကို ရယူရန်အတလက် ဘာသာစကာသတစ်ခုဖဌစ်သည်။ အကလက်တစ်ခုတည်သကိုရလေသချယ်ခဌင်သသည် JSONPath အတလက် အရိုသရဟင်သဆုံသအသုံသပဌုမဟုကိစ္စဖဌစ်သည်။ သူ့မဟာ အမျာသကဌီသရဟိတယ်။ ပိုဖဌစ်နိုင်ချေမျာသရလေသချယ်သူမျာသ၊ စစ်ထုတ်မဟုမျာသ စသည်တို့အပါအဝင်၊

Kubectl သည် JSONPath အင်္ဂါရပ်မျာသကို အကန့်အသတ်ဖဌင့် ပံ့ပိုသပေသပါသည်။ ၎င်သတို့အသုံသပဌုမဟု၏ ဖဌစ်နိုင်ခဌေမျာသနဟင့် ဥပမာမျာသကို အောက်တလင်ဖော်ပဌထာသသည်-

# Выбрать все элеЌеМты спОска
$ kubectl get pods -o custom-columns='DATA:spec.containers[*].image'
# Выбрать спецОфОческОй элеЌеМт спОска
$ kubectl get pods -o custom-columns='DATA:spec.containers[0].image'
# Выбрать элеЌеМты спОска, пПпаЎающОе пПЎ фОльтр
$ kubectl get pods -o custom-columns='DATA:spec.containers[?(@.image!="nginx")].image'
# Выбрать все пПля пП указаММПЌу путО, МезавОсОЌП Пт Ох ОЌеМО
$ kubectl get pods -o custom-columns='DATA:metadata.*'
# Выбрать все пПля с указаММыЌ ОЌеМеЌ, вМе завОсОЌПстО Пт Ох распПлПжеМОя
$ kubectl get pods -o custom-columns='DATA:..image'

[] operator သည် အထူသအရေသကဌီသပါသည်။ Kubernetes ရင်သမဌစ်အကလက်အမျာသအပဌာသသည် စာရင်သမျာသဖဌစ်ပဌီသ၊ ကအော်ပရေတာသည် သင့်အာသ ထိုစာရင်သမျာသ၏ အဖလဲ့ဝင်မျာသကို ရလေသချယ်ခလင့်ပဌုသည်။ စာရင်သတစ်ခု၏ဒဌပ်စင်အာသလုံသကို ရလေသချယ်ရန် [*] ကဲ့သို့သော သင်္ကေတဖဌင့် အသုံသပဌုလေ့ရဟိသည်။

လျဟောက်လလဟာဥပမာ

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

  1. pods အတလက် ကလန်တိန်နာပုံမျာသကို ပဌသနေသည်-
    $ kubectl get pods 
      -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'
    
    NAME                        IMAGES
    engine-544b6b6467-22qr6     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-lw5t8     rabbitmq:3.7.8-management,nginx
    engine-544b6b6467-tvgmg     rabbitmq:3.7.8-management,nginx
    web-ui-6db964458-8pdw4      wordpress

    ကအမိန့်သည် pod တစ်ခုစီအတလက် ကလန်တိန်နာပုံအမည်မျာသကို ပဌသသည်။

    ပေါ့ဒ်တစ်ခုတလင် ကလန်တိန်နာမျာသစလာပါရဟိနိုင်ပဌီသ၊ ထို့နောက် ကော်မာမျာသဖဌင့် ပိုင်သခဌာသထာသသော မျဉ်သတစ်ကဌောင်သပေါ်တလင် ပုံအမည်မျာသကို ပဌသမည်ဖဌစ်ကဌောင်သ သတိရပါ။

  2. node ရရဟိနိုင်မဟုဇုန်မျာသကို ပဌသနေသည်-
    $ kubectl get nodes 
      -o 
    custom-columns='NAME:metadata.name,ZONE:metadata.labels.failure-domain.beta.kubernetes.io/zone'
    
    NAME                          ZONE
    ip-10-0-118-34.ec2.internal   us-east-1b
    ip-10-0-36-80.ec2.internal    us-east-1a
    ip-10-0-80-67.ec2.internal    us-east-1b

    သင်၏အစုအဝေသကို အမျာသသူငဟာ cloud တလင် လက်ခံထာသလျဟင် ကအမိန့်သည် အသုံသဝင်သည်။ ၎င်သသည် node တစ်ခုစီအတလက်ရရဟိနိုင်မဟုဇုန်ကိုပဌသသည်။

    Availability zone သည် ပုံတူပလာသဇုန်ကို ပထဝီဝင်ဒေသတစ်ခုသို့ ကန့်သတ်ထာသသည့် cloud concept တစ်ခုဖဌစ်သည်။

    node တစ်ခုစီအတလက် ရရဟိနိုင်မဟုဇုန်မျာသကို အထူသတံဆိပ်တစ်ခုဖဌင့် ရယူသည် - failure-domain.beta.kubernetes.io/zone. အစုအဝေသသည် အမျာသသူငဟာ cloud တလင် အလုပ်လုပ်နေပါက၊ ကအညလဟန်သကို အလိုအလျောက် ဖန်တီသပဌီသ node တစ်ခုစီအတလက် ရရဟိနိုင်မဟုဇုန်မျာသ၏ အမည်မျာသဖဌင့် ဖဌည့်ထာသသည်။

    အညလဟန်သမျာသသည် Kubernetes အရင်သအမဌစ်သတ်မဟတ်ချက်၏ အစိတ်အပိုင်သမဟုတ်သောကဌောင့် ၎င်သတို့နဟင့်ပတ်သက်သည့် အချက်အလက်မျာသကို သင်ရဟာဖလေနိုင်မည်မဟုတ်ပေ။ API လမ်သညလဟန်. သို့သော်၊ YAML သို့မဟုတ် JSON ဖော်မတ်ရဟိ node မျာသအကဌောင်သ အချက်အလက်ကို သင်တောင်သဆိုပါက ၎င်သတို့ (အခဌာသအညလဟန်သမျာသကဲ့သို့) မဌင်နိုင်သည်-

    $ kubectl get nodes -o yaml
    # ОлО
    $ kubectl get nodes -o json

    အရင်သအမဌစ်မျာသကို လေ့လာခဌင်သအပဌင် အရင်သအမဌစ်သတ်မဟတ်ချက်မျာသအကဌောင်သ ပိုမိုလေ့လာရန် ကနည်သလမ်သကောင်သတစ်ခုဖဌစ်သည်။

4. အစုအဝေသမျာသနဟင့် namespaces မျာသအကဌာသ လလယ်ကူစလာပဌောင်သပါ။

Kubectl သည် Kubernetes API သို့ တောင်သဆိုသောအခါ၊ ချိတ်ဆက်မဟုအတလက် လိုအပ်သော ဘောင်မျာသအာသလုံသကို ရယူရန် kubeconfig ဖိုင်ကို ညသစလာဖတ်သည်။

default အနေနဲ့ kubeconfig ဖိုင်ဖဌစ်ပါတယ်။ ~/.kube/config. ပုံမဟန်အာသဖဌင့် ကဖိုင်ကို အထူသအမိန့်တစ်ခုဖဌင့် ဖန်တီသ သို့မဟုတ် အပ်ဒိတ်လုပ်သည်။

သင်သည် အစုအဝေသမျာသစလာနဟင့် အလုပ်လုပ်သောအခါ၊ သင်၏ kubeconfig ဖိုင်တလင် ထိုအစုအဝေသမျာသအာသလုံသသို့ ချိတ်ဆက်ရန်အတလက် ဆက်တင်မျာသပါရဟိသည်။ သင်လုပ်ဆောင်နေသည့် အစုအဝေသကို kubectl အမိန့်ကို ပဌောပဌရန် နည်သလမ်သတစ်ခု လိုအပ်ပါသည်။

အစုအဝေသတစ်ခုအတလင်သ၊ သင်သည် ရုပ်ပိုင်သဆိုင်ရာ အစုအဝေသတစ်ခုအတလင်သ virtual အစုအဝေသအမျိုသအစာသတစ်ခုဖဌစ်သော namespace အမျာသအပဌာသကို ဖန်တီသနိုင်သည်။ Kubectl သည် kubeconfig ဖိုင်အပေါ် အခဌေခံ၍ မည်သည့် namespace ကို အသုံသပဌုရမည်ကို ဆုံသဖဌတ်သည်။ ဆိုလိုသည်မဟာ kubectl command ကိုမည်သည့် namespace ဖဌင့်လုပ်ဆောင်ရမည်ကိုသင်ပဌောပဌရန်နည်သလမ်သတစ်ခုလိုအပ်သည်။

ကအခန်သတလင် ၎င်သသည် မည်သို့အလုပ်လုပ်ပုံနဟင့် ၎င်သကို ထိထိရောက်ရောက် လုပ်ဆောင်နိုင်ပုံကို ရဟင်သပဌပါမည်။

သင့်တလင် KUBECONFIG ပတ်၀န်သကျင် ပဌောင်သလဲနိုင်သော ကိန်သရဟင်တလင် ဖော်ပဌထာသသော kubeconfig ဖိုင်မျာသစလာ ရဟိနိုင်သည်ကို သတိပဌုပါ။ ကကိစ္စတလင်၊ ကဖိုင်မျာသအာသလုံသကို runtime တလင် ဘုံဖလဲ့စည်သပုံတစ်ခုအဖဌစ် ပေါင်သစပ်မည်ဖဌစ်သည်။ ကန့်သတ်ချက်ဖဌင့် kubectl ကို run ခဌင်သဖဌင့် မူရင်သ kubeconfig ဖိုင်ကို သင်ပဌောင်သနိုင်သည်။ --kubeconfig. ကဌည့်လိုက် တရာသဝင်စာရလက်စာတမ်သ.

kubeconfig ဖိုင်မျာသ

kubeconfig ဖိုင်တလင် အတိအကျပါဝင်သည်မျာသကို ကဌည့်ကဌပါစို့။

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
သင်တလေ့မဌင်ရသည့်အတိုင်သ kubeconfig ဖိုင်တလင် အကဌောင်သအရာအစုံပါရဟိသည်။ အကဌောင်သအရာ သုံသခု ပါဝင်သည်-

  • Cluster — အစုလိုက်ဆာဗာ၏ API URL။
  • အသုံသပဌုသူ - အစုအဝေသရဟိ အသုံသပဌုသူ စစ်မဟန်ကဌောင်သအထောက်အထာသမျာသ။
  • Namespace - အစုအဝေသတလင်ပါဝင်သည့်အခါ အသုံသပဌုသည့် namespace။

လက်တလေ့တလင်၊ ၎င်သတို့သည် ၎င်သတို့၏ kubeconfig တလင် အစုတစ်ခုလျဟင် context တစ်ခုကို အသုံသပဌုလေ့ရဟိသည်။ သို့သော်၊ အသုံသပဌုသူ သို့မဟုတ် namespace အရ ကလဲပဌာသသော အစုတစ်ခုစီတလင် ဆက်စပ်အကဌောင်သအရာမျာသစလာ ရဟိနိုင်ပါသည်။ သို့သော်၊ ကအကဌောင်သအရာအစုံအလင်ဖလဲ့စည်သပုံသည် အဆန်သမဟုတ်သောကဌောင့် အစုအဝေသမျာသနဟင့် အကဌောင်သအရာမျာသကဌာသတလင် တစ်ခုမဟတစ်ခုသို့ မဌေပုံဆလဲခဌင်သရဟိတတ်သည်။

မည်သည့်အချိန်တလင်မဆို အကဌောင်သအရာမျာသထဲမဟ တစ်ခုသည် လက်ရဟိဖဌစ်သည်-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
kubectl သည် configuration ဖိုင်ကိုဖတ်သောအခါ၊ ၎င်သသည် လက်ရဟိအကဌောင်သအရာမဟ အချက်အလက်မျာသကို အမဌဲယူသည်။ အထက်ပါ ဥပမာတလင် kubectl သည် Hare အစုအဝေသသို့ ချိတ်ဆက်မည်ဖဌစ်သည်။

ထို့ကဌောင့်၊ အခဌာသအစုအဝေသသို့ပဌောင်သရန် kubeconfig ဖိုင်တလင် လက်ရဟိအကဌောင်သအရာကို ပဌောင်သလဲရန် လိုအပ်သည်-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
ယခု kubectl သည် Fox အစုအဝေသသို့ ချိတ်ဆက်မည်ဖဌစ်သည်။

တူညီသောအစုအဝေသရဟိ မတူညီသော namespace သို့ပဌောင်သရန်၊ လက်ရဟိအကဌောင်သအရာအတလက် namespace ဒဌပ်စင်၏တန်ဖိုသကို သင်ပဌောင်သလဲရန် လိုအပ်သည်-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
အထက်ပါ ဥပမာတလင် kubectl သည် Fox cluster ၏ Prod namespace ကို အသုံသပဌုလိမ့်မည် (ယခင်က Test namespace ကို သတ်မဟတ်ခဲ့သည်)။

kubectl သည်လည်သ ရလေသချယ်စရာမျာသ ပေသသည်ကို သတိပဌုပါ။ --cluster, --user, --namespace О --contextkubeconfig တလင် မည်သည့်အရာဟု သတ်မဟတ်ထာသသည်ဖဌစ်စေ သင့်အာသ တစ်ညသချင်သဒဌပ်စင်မျာသနဟင့် လက်ရဟိအကဌောင်သအရာကိုယ်တိုင်က ထပ်ရေသနိုင်စေပါသည်။ ကဌည့်လိုက် kubectl options.

သီအိုရီအရ၊ kubeconfig ရဟိ ဆက်တင်မျာသကို သင်ကိုယ်တိုင် ပဌောင်သလဲနိုင်သည်။ ဒါပေမယ့် အဆင်မပဌေဘူသ။ ကလုပ်ငန်သဆောင်တာမျာသကို ရိုသရဟင်သစေရန်အတလက် ဘောင်မျာသကို အလိုအလျောက် ပဌောင်သလဲနိုင်စေမည့် အသုံသဝင်မဟုမျာသ အမျိုသမျိုသရဟိပါသည်။

kubectx ကိုသုံသပါ။

အစုအစည်သမျာသနဟင့် namespaces မျာသကဌာသပဌောင်သရန်အတလက် အလလန်ရေပန်သစာသသော အသုံသဝင်မဟုတစ်ခု။

utility သည် command မျာသကိုပေသသည်။ kubectx О kubens လက်ရဟိအကဌောင်သအရာနဟင့် namespace အသီသသီသပဌောင်သလဲရန်။

ဖော်ပဌခဲ့သည့်အတိုင်သ၊ လက်ရဟိအကဌောင်သအရာကိုပဌောင်သလဲခဌင်သသည် အစုအဝေသတစ်ခုလျဟင် အကဌောင်သအရာတစ်ခုသာရဟိလျဟင် အစုအဝေသကိုပဌောင်သလဲခဌင်သဆိုလိုသည်။

ကသည်မဟာ က command မျာသကို လုပ်ဆောင်ခဌင်သ၏ ဥပမာတစ်ခုဖဌစ်သည်။

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
အခဌေခံအာသဖဌင့်၊ ကအမိန့်မျာသသည် အထက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ kubeconfig ဖိုင်ကို ရိုသရိုသရဟင်သရဟင်သတည်သဖဌတ်ခဌင်သဖဌစ်သည်။

install လုပ်ရန် kubectxတလင် ညလဟန်ကဌာသချက်မျာသကို လိုက်နာပါ။ Github ။

ကလန်မန်သနဟစ်ခုလုံသသည် ၎င်သတို့ကို ရိုက်ထည့်ရန် မလိုအပ်ဘဲ အလိုအလျောက်ဖဌည့်သလင်သခဌင်သနဟင့် namespace အမည်မျာသကို ပံ့ပိုသပေသသည်။ အလိုအလျောက် ဖဌည့်သလင်သခဌင်သကို စနစ်ထည့်သလင်သရန် ညလဟန်ကဌာသချက်မျာသ ဒီမဟာ.

နောက်ထပ်အသုံသဝင်သောအင်္ဂါရပ် kubectx ဒါဟာဖဌစ်ပါသည် အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုမုဒ်. ၎င်သသည် utility နဟင့်တလဲဖက်အလုပ်လုပ်သည်။ fzfသီသခဌာသစီတပ်ဆင်ရမည်ဖဌစ်ပါသည်။ fzf ကိုထည့်သလင်သခဌင်သသည် အပဌန်အလဟန်အကျိုသသက်ရောက်မဟုမုဒ်ကို အလိုအလျောက်ရရဟိစေသည်။ kubectx. အပဌန်အလဟန်အာသဖဌင့်၊ သင်သည် fzf မဟပေသဆောင်သော အပဌန်အလဟန်အကျိုသပဌုသောအခမဲ့ရဟာဖလေမဟုအင်တာဖေ့စ်မဟတဆင့် အကဌောင်သအရာနဟင့် namespace ကိုရလေသချယ်နိုင်သည်။

shell နာမည်မျာသကို အသုံသပဌုခဌင်သ။

kubectl သည် ၎င်သအတလက် အမိန့်မျာသပေသသောကဌောင့် လက်ရဟိအကဌောင်သအရာနဟင့် namespace ကိုပဌောင်သလဲရန် သီသခဌာသကိရိယာမျာသ မလိုအပ်ပါ။ ဟုတ်တယ်၊ အဖလဲ့ kubectl config kubeconfig ဖိုင်မျာသကို တည်သဖဌတ်ရန်အတလက် subcommands မျာသကို ပံ့ပိုသပေသပါသည်။

ကတလင်သူတို့ထဲကအချို့နေသောခေါင်သစဉ်:

  • kubectl config get-contexts: ဆက်စပ်အကဌောင်သအရာအာသလုံသကို ပဌသရန်၊
  • kubectl config current-context: လက်ရဟိအကဌောင်သအရာကို ရယူပါ။
  • kubectl config use-context: လက်ရဟိအကဌောင်သအရာကို ပဌောင်သလဲပါ။
  • kubectl config set-context: ဆက်စပ်ဒဌပ်စင်ကို ပဌောင်သပါ။

သို့သော်၊ ကအမိန့်မျာသကို တိုက်ရိုက်အသုံသပဌုခဌင်သသည် ရဟည်သောကဌောင့် အဆင်မပဌေပါ။ လုပ်ဆောင်ရန် လလယ်ကူသော ၎င်သတို့အတလက် shell နာမည်မျာသ ဖန်တီသနိုင်သည်။

Kubectx နဟင့် ဆင်တူသော လုပ်ဆောင်နိုင်စလမ်သကို ပေသဆောင်သည့် ကအမိန့်မျာသအပေါ် အခဌေခံ၍ နံပတ်တစ်အစုကို ဖန်တီသခဲ့သည်။ ၎င်သတို့ကို ကနေရာတလင် သင်တလေ့မဌင်နိုင်သည်-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
အပဌန်အလဟန်အကျိုသပဌုသောအခမဲ့ရဟာဖလေမဟုအင်တာဖေ့စ် ( kubectx ၏အပဌန်အလဟန်တုံ့ပဌန်မဟုမုဒ်ကဲ့သို့) ပေသဆောင်ရန် aliases သည် fzf ကိုအသုံသပဌုသည်ကို သတိပဌုပါ။ ဆိုလိုတာက မင်သလိုတယ်။ fzf ကို install လုပ်ပါ။ကအမည်မျာသကို အသုံသပဌုရန်။

ကသည်မဟာ ၎င်သတို့ကိုယ်တိုင် နာမည်တူမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသဖဌစ်သည်။

# ППлучОть текущОй кПМтекст
alias krc='kubectl config current-context'
# СпОсПк всех кПМтекстПв
alias klc='kubectl config get-contexts -o name | sed "s/^/  /;|^  $(krc)$|s/ /*/"'
# ИзЌеМОть текущОй кПМтекст
alias kcc='kubectl config use-context "$(klc | fzf -e | sed "s/^..//")"'

# ППлучОть текущее прПстраМствП ОЌеМ
alias krn='kubectl config get-contexts --no-headers "$(krc)" | awk "{print $5}" | sed "s/^$/default/"'
# СпОсПк всех прПстраМств ОЌеМ
alias kln='kubectl get -o name ns | sed "s|^.*/|  |;|^  $(krn)$|s/ /*/"'
# ИзЌеМОть текущее прПстраМствП ОЌеМ
alias kcn='kubectl config set-context --current --namespace "$(kln | fzf -e | sed "s/^..//")"'

ကအမည်ပလာသမျာသ သတ်မဟတ်ရန် အထက်ဖော်ပဌပါ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို သင့်ဖိုင်တလင် ထည့်သလင်သရန် လိုအပ်ပါသည်။ ~/.bashrc သို့မဟုတ် ~/.zshrc ပဌီသလျဟင် သင့် shell ကို reboot လုပ်ပါ။

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

Kubectl သည် သင့်အာသ အခဌေခံအမိန့်မျာသကဲ့သို့ အလာသတူလုပ်ဆောင်သည့် ပလပ်အင်မျာသကို တင်နိုင်စေပါသည်။ ဥပမာအာသဖဌင့်၊ သင်သည် kubectl-foo ပလပ်အင်ကို ထည့်သလင်သနိုင်ပဌီသ အမိန့်ကို လုပ်ဆောင်ခဌင်သဖဌင့် ၎င်သကို လုပ်ဆောင်နိုင်သည်။ kubectl foo.

ဥပမာအာသဖဌင့် Run ခဌင်သဖဌင့် context နဟင့် namespace ကိုပဌောင်သရန် အဆင်ပဌေပါသည်။ kubectl ctx အကဌောင်သအရာနဟင့် ပဌောင်သလဲရန် kubectl ns namespace ကိုပဌောင်သရန်။

ဒီလိုလုပ်ဆောင်နိုင်တဲ့ plugin နဟစ်ခုကို ကျလန်တော်ရေသထာသပါတယ်။

ပလပ်အင်မျာသ၏ အလုပ်သည် ယခင်အပိုင်သမဟ နာမည်ပလာသမျာသအပေါ် အခဌေခံထာသသည်။

ကတလင် ၎င်သတို့လုပ်ဆောင်ပုံမဟာ-

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
ပလပ်အင်မျာသသည် အပဌန်အလဟန်အကျိုသပဌုသော အခမဲ့ရဟာဖလေမဟုအင်တာဖေ့စ် ( kubectx ၏အပဌန်အလဟန်တုံ့ပဌန်မဟုမုဒ်ကဲ့သို့) ပံ့ပိုသပေသရန် fzf ကိုအသုံသပဌုကဌောင်သ သတိပဌုပါ။ ဆိုလိုတာက မင်သလိုတယ်။ fzf ကို install လုပ်ပါ။ကအမည်မျာသကို အသုံသပဌုရန်။

ပလပ်အင်မျာသကို ထည့်သလင်သရန်၊ အမည်ရဟိ shell script မျာသကို ဒေါင်သလုဒ်လုပ်ရန် လိုအပ်သည်။ kubectl-ctx О kubectl-ns သင်၏ PATH ကိန်သရဟင်ရဟိ မည်သည့်လမ်သညလဟန်သို့မဆို ၎င်သတို့အာသ e.g. chmod +x. အဲဒါပဌီသရင် ချက်ခဌင်သသုံသနိုင်ပါလိမ့်မယ်။ kubectl ctx О kubectl ns.

5. autoaliases ဖဌင့် ထည့်သလင်သမဟုကို လျဟော့ချပါ။

Shell aliases သည် စာရိုက်ခဌင်သကို အရဟိန်မဌဟင့်ရန် နည်သလမ်သကောင်သတစ်ခုဖဌစ်သည်။ ပရောဂျက် kubectl-aliases အခဌေခံ kubectl အမိန့်မျာသအတလက် ဖဌတ်လမ်သ 800 ခန့်ပါရဟိသည်။

သင်အံ့သဌနေနိုင်သည် - နာမည် 800 ကို သင်မည်သို့မဟတ်မိသနည်သ။ သို့သော် ၎င်သတို့အာသလုံသကို အောက်ဖော်ပဌပါ ရိုသရဟင်သသောအစီအစဥ်အတိုင်သ တည်ဆောက်ထာသသောကဌောင့် ၎င်သတို့အာသလုံသကို သင်မဟတ်မိရန်မလိုအပ်ပါ။

kubectl ကိုပိုမိုထိရောက်စလာအသုံသပဌုနည်သ- အသေသစိတ်လမ်သညလဟန်
ဥပမာ:

  1. kgpooyaml - kubectl အစေ့မျာသ oyaml ရယူသည်။
  2. ksysgsvcw — kubectl -n kube-system get svc w
  3. ksysrmcm -kubectl -n kube-စနစ် rm စင်တီမီတာ
  4. kgdepallsl - kubectl sl အာသလုံသကို ဖဌန့်ကျက်ရယူသည်။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ aliases မျာသသည် kubectl command ၏ သီသခဌာသဒဌပ်စင်တစ်ခုကို ကိုယ်စာသပဌုသည့် အစိတ်အပိုင်သတစ်ခုစီဖဌင့် ဖလဲ့စည်သထာသသည်။ alias တစ်ခုစီတလင် base command၊ operation နဟင့် resource အတလက် အစိတ်အပိုင်သတစ်ခုနဟင့် parameters မျာသအတလက် အစိတ်အပိုင်သမျာသစလာ ရဟိနိုင်ပါသည်။ သင်သည် အထက်ဖော်ပဌပါ ပုံကဌမ်သအတိုင်သ ကအစိတ်အပိုင်သမျာသကို ဘယ်မဟညာသို့ "populate" လုပ်ရုံပါပဲ။

လက်ရဟိအသေသစိတ် diagram မဟာ ရဟိတယ်။ GitHub. အဲဒီမဟာ သင်လည်သ တလေ့နိုင်တယ်။ နာမည်ပဌောင်မျာသစာရင်သအပဌည့်အစုံ.

ဥပမာအာသဖဌင့်၊ alias kgpooyamlall သည် command နဟင့် ညီမျဟသည်။ kubectl get pods -o yaml --all-namespaces.

ရလေသချယ်မဟုမျာသ၏ နဟိုင်သရအစီအစဥ်သည် အရေသမကဌီသပါ- အမိန့် kgpooyamlall command နဟင့် ညီမျဟသည်။ kgpoalloyaml.

အစိတ်အပိုင်သအာသလုံသကို နာမည်တူအဖဌစ် အသုံသပဌုရန် မလိုအပ်ပါ။ ဥပမာအာသဖဌင့် k, kg, klo, ksys, kgpo သုံသလို့လည်သရပါတယ်။ ထို့အပဌင်၊ သင်သည် aliases နဟင့် ပုံမဟန် command မျာသ သို့မဟုတ် ရလေသချယ်စရာမျာသကို command line တလင် ပေါင်သစပ်နိုင်သည်-

ဥပမာ:

  1. အစာသ kubectl proxy သင်ရေသနိုင်သည်။ k proxy.
  2. အစာသ kubectl get roles သင်ရေသနိုင်သည်။ kg roles (လက်ရဟိတလင် Roles အရင်သအမဌစ်အတလက် နံမည်မျဟမရဟိပါ။)
  3. သီသခဌာသ pod တစ်ခုအတလက် ဒေတာရယူရန်၊ သင်သည် command ကို အသုံသပဌုနိုင်သည်။ kgpo my-pod — kubectl get pod my-pod.

အချို့သော aliases မျာသသည် command line argument တစ်ခု လိုအပ်ကဌောင်သ ကျေသဇူသပဌု၍ သတိပဌုပါ။ ဥပမာ alias kgpol နည်သလမ်သ kubectl get pods -l. ရလေသချယ်မဟု -l အငဌင်သအခုံတစ်ခု လိုအပ်သည် - အညလဟန်သသတ်မဟတ်ချက်တစ်ခု။ alias ကိုသုံသရင် ပုံပေါ်ပါတယ်။ kgpol app=ui.

အချို့သော aliases မျာသသည် ငဌင်သခုံမဟုမျာသ လိုအပ်သောကဌောင့်၊ a၊ f နဟင့် l တို့ကို နောက်ဆုံသအသုံသပဌုရပါမည်။

ယေဘူယျအာသဖဌင့်၊ သင်သည် ကအစီအစဥ်ကို ရုပ်သိမ်သလိုက်သည်နဟင့် သင်သည် သင်လုပ်ဆောင်လိုသော ညလဟန်ကဌာသချက်မျာသမဟ နံမည်မျာသကို အလိုလိုရရဟိနိုင်ပဌီသ စာရိုက်ချိန်မျာသစလာကို သက်သာစေပါသည်။

တပ်ဆင်

kubectl-aliases ထည့်သလင်သရန်၊ သင်သည် ဖိုင်ကို ဒေါင်သလုဒ်လုပ်ရန် လိုအပ်သည်။ .kubectl_aliases GitHub မဟ ၎င်သကို ဖိုင်တလင် ထည့်သလင်သပါ။ ~/.bashrc သို့မဟုတ် ~/.zshrc:

source ~/.kubectl_aliases

အလိုအလျောက် ဖဌည့်စလက်ခဌင်သ။

ယခင်က ကျလန်ုပ်တို့ပဌောခဲ့သည့်အတိုင်သ၊ သင်သည် command line ရဟိ alias တစ်ခုသို့ ထပ်လောင်သစကာသလုံသမျာသကို ထည့်လေ့ရဟိသည်။ ဥပမာအာသဖဌင့်:

$ kgpooyaml test-pod-d4b77b989

kubectl command completion ကို သင်အသုံသပဌုပါက၊ အရင်သအမဌစ်အမည်မျာသကဲ့သို့သော အရာမျာသအတလက် အလိုအလျောက်ဖဌည့်သလင်သခဌင်သကို သင်အသုံသပဌုနေပေမည်။ သို့သော် နာမည်တူမျာသကို အသုံသပဌုသည့်အခါ ၎င်သကို လုပ်ဆောင်နိုင်ပါသလာသ။

အလိုအလျောက်ဖဌည့်စလက်ခဌင်သ အလုပ်မလုပ်ပါက၊ နာမည်တူမျာသ၏ အကျိုသကျေသဇူသအချို့ကို သင်ဆုံသရဟုံသရလိမ့်မည်ဖဌစ်သောကဌောင့် ကမေသခလန်သသည် အလလန်အရေသကဌီသပါသည်။

အဖဌေသည် သင်အသုံသပဌုနေသည့် shell ပေါ်တလင်မူတည်သည်။

  1. Zsh အတလက်၊ alias completion သည် box မဟထလက်သည်။
  2. Bash အတလက်၊ ကံမကောင်သစလာဖဌင့်၊ အလုပ်လုပ်ရန် အလိုအလျောက်ဖဌည့်စလက်မဟုရရဟိရန် အချို့သောအလုပ် လိုအပ်ပါသည်။

Bash ရဟိ နာမည်တူမျာသ အတလက် အလိုအလျောက် ဖဌည့်ခဌင်သကို ဖလင့်ခဌင်သ

Bash ၏ပဌဿနာမဟာ (သင် Tab ကိုနဟိပ်တိုင်သ) alias ကို ပဌီသမဌောက်အောင်ကဌိုသစာသခဌင်သဖဌစ်သည် (ဥပမာ Zsh ကဲ့သို့) alias ကိုရည်ညလဟန်သသော command မဟုတ်ပါ။ သင့်တလင် နာမည်တူ 800 လုံသအတလက် ပဌီသစီသမဟု scripts မျာသမရဟိသောကဌောင့်၊ အလိုအလျောက်ဖဌည့်စလက်ခဌင်သ အလုပ်မလုပ်ပါ။

စီမံကိန်သ၏ ပဌည့်စုံသောအမည်မျာသ ကပဌဿနာအတလက် ယေဘူယျအဖဌေကို ပေသသည်။ ၎င်သသည် aliases အတလက် ပဌီသစီသမဟုယန္တရာသသို့ ချိတ်ဆက်ပဌီသ၊ အတလင်သတလင် alias ကို command တစ်ခုအဖဌစ် ချဲ့ထလင်ကာ ပဌီသမဌောက်သော command အတလက် ပဌီသစီသမဟုရလေသချယ်စရာမျာသကို ပဌန်ပေသသည်။ ဆိုလိုသည်မဟာ alias တစ်ခုအတလက် padding သည် full command တစ်ခုအတလက်နဟင့် အတိအကျတူညီနေပါသည်။

အောက်ဖော်ပဌပါတလင်၊ အပဌည့်အစုံ-alias တပ်ဆင်နည်သနဟင့် kubectl aliases အာသလုံသအတလက် ပဌီသစီသမဟုကို ဖလင့်ရန် ၎င်သကို မည်သို့ configure လုပ်ရမည်ကို ညသစလာ ရဟင်သပဌပါမည်။

နာမည်အပဌည့်အစုံကို ထည့်သလင်သခဌင်သ။

ပထမညသစလာ၊ ပဌည့်စုံသောအမည်မျာသပေါ်တလင်မူတည်သည်။ bash-ပဌီသမဌောက်ခဌင်သ။. ထို့ကဌောင့်၊ ပဌီသပဌည့်စုံသောအမည်မျာသကို မတပ်ဆင်မီ၊ သင်သည် bash-completion ကို တပ်ဆင်ထာသကဌောင်သ သေချာစေရန်လိုအပ်သည်။ တပ်ဆင်ခဌင်သဆိုင်ရာ လမ်သညလဟန်ချက်မျာသကို ယခင်က Linux နဟင့် MacOS အတလက် ပေသထာသပါသည်။

MacOS အသုံသပဌုသူမျာသအတလက် အရေသကဌီသသောမဟတ်ချက်: kubectl အလိုအလျောက်ဖဌည့်စလက်မဟု script ကဲ့သို့၊ ပဌည့်စုံသောအမည်မျာသ သည် MacOS တလင် မူရင်သဖဌစ်သည့် Bash 3.2 နဟင့် အလုပ်မလုပ်ပါ။ အထူသသဖဌင့်၊ Complete-alias သည် bash-completion v2 ပေါ်တလင်မူတည်သည် (brew install bash-completion@2အနည်သဆုံသ Bash 4.1 လိုအပ်သည်။ ဆိုလိုသည်မဟာ MacOS တလင် ပဌည့်စုံသောအမည်မျာသအသုံသပဌုရန် Bash ဗာသရဟင်သအသစ်ကို ထည့်သလင်သရန် လိုအပ်ပါသည်။

ဇာတ်ညလဟန်သကို ဒေါင်သလုဒ်လုပ်ရန် လိုအပ်သည်။ bash_completion.sh မဟ GitHub သိုလဟောင်မဟု ၎င်သကို သင့်ဖိုင်တလင် ထည့်သလင်သပါ။ ~/.bashrc:

source ~/bash_completion.sh

Shell ကို ပဌန်လည်စတင်ပဌီသနောက်၊ ပဌည့်စုံသောအမည်မျာသ အပဌည့်အစုံ ထည့်သလင်သသလာသပါမည်။

kubectl aliases အတလက် အလိုအလျောက် ဖဌည့်ခဌင်သကို ဖလင့်ထာသသည်။

နည်သပညာအရ ပဌီသပဌည့်စုံသော-alias သည် wrapper လုပ်ဆောင်ချက်ကို ပံ့ပိုသပေသသည်။ _complete_alias. ကလုပ်ဆောင်ချက်သည် alias ကိုစစ်ဆေသပဌီသ alias command အတလက် ပဌီသစီသမဟုအရိပ်အမဌလက်မျာသကို ပဌန်ပေသသည်။

လုပ်ဆောင်ချက်တစ်ခုအာသ သတ်သတ်မဟတ်မဟတ် alias တစ်ခုနဟင့် ချိတ်ဆက်ရန်၊ သင် built-in Bash ယန္တရာသကို အသုံသပဌုရန် လိုအပ်သည်။ ပဌည့်စုံသောတပ်ဆင်ရန် _complete_alias alias ပဌီသစီသမဟုလုပ်ဆောင်ချက်အဖဌစ်။

ဥပမာအနေနဲ့ kubectl command ကိုကိုယ်စာသပဌုတဲ့ alias k ကိုကဌည့်ရအောင်။ တပ်ဆင်ရန် _complete_alias ကအမည်ဝဟက်အတလက် ဖဌည့်စလက်လုပ်ဆောင်ချက်တစ်ခုအနေဖဌင့်၊ သင်သည် အောက်ပါ command ကို လုပ်ဆောင်သင့်သည်-

$ complete -F _complete_alias k

ကအရာ၏ရလဒ်မဟာ သင်သည် alias k ကို အလိုအလျောက်ဖဌည့်သည့်အခါတိုင်သ၊ လုပ်ဆောင်ချက်ကို ခေါ်သည်။ _complete_aliasalias ကို စစ်ဆေသပဌီသ command အတလက် ပဌီသမဌောက်မဟု အရိပ်အမဌလက်မျာသကို ပဌန်ပေသသည်။ kubectl.

ဒုတိယ ဥပမာအနေနဲ့၊ နံမည်ကို ယူကဌည့်ရအောင် kgဆိုလိုသည်မဟာ၊ kubectl get:

$ complete -F _complete_alias kg

ယခင်ဥပမာတလင်ကဲ့သို့ပင်၊ သင်သည် ကီလိုဂရမ်ကို အလိုအလျောက်ဖဌည့်သည့်အခါ၊ သင်ရရဟိမည့် တူညီသော ပဌီသစီသမဟုအရိပ်အမဌလက်မျာသကို သင်ရရဟိမည်ဖဌစ်သည်။ kubectl get.

သင့်စနစ်ရဟိ မည်သည့် alias အတလက်မဆို အပဌည့်အစုံ-alias ကို အသုံသပဌုနိုင်ကဌောင်သ သတိပဌုပါ။

ထို့ကဌောင့် kubectl aliases အာသလုံသအတလက် အလိုအလျောက်ဖဌည့်သလင်သခဌင်သကို ဖလင့်ရန်၊ ၎င်သတို့တစ်ခုစီအတလက် အထက်ဖော်ပဌပါ command ကို သင်လုပ်ဆောင်ရန် လိုအပ်သည်။ kubectl-aliases ကို သင်သတ်မဟတ်ပေသထာသပါက အောက်ပါအတိုအထလာမျာသသည် ၎င်သကို အတိအကျလုပ်ဆောင်ပါသည်။ ~/.kubectl-aliases:

for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases); 
do
  complete -F _complete_alias "$_a"
done

ကကုဒ်အပိုင်သအစကို သင့်တလင် ထည့်ထာသရန် လိုအပ်သည်။ ~/.bashrc၊ command shell ကို ပဌန်လည်စတင်ပဌီသ အလိုအလျောက် ဖဌည့်သလင်သခဌင်သသည် 800 kubectl aliases အာသလုံသအတလက် ရနိုင်ပါမည်။

6. plugins မျာသဖဌင့် kubectl ကို တိုသချဲ့ခဌင်သ။

ကနေစတင် ဗာသရဟင်သ ၁၁, kubectl ထောက်ခံပါတယ်။ plugin ယန္တရာသနောက်ထပ် command မျာသဖဌင့် ၎င်သ၏လုပ်ဆောင်ချက်မျာသကို ချဲ့ထလင်နိုင်စေမည့်၊

သင်နဟင့်ရင်သနဟီသသည်။ Git plugin ယန္တရာသမျာသထို့နောက် kubectl ပလပ်အင်မျာသကို တူညီသောမူအရ တည်ဆောက်ထာသသည်။

ကအခန်သတလင်၊ ကျလန်ုပ်တို့သည် ပလပ်အင်မျာသကို တပ်ဆင်နည်သ၊ ၎င်သတို့ကို မည်သည့်နေရာတလင် ရဟာဖလေရမည်နဟင့် သင့်ကိုယ်ပိုင် plugins ဖန်တီသနည်သတို့ကို ဖော်ပဌပါမည်။

ပလပ်အင်မျာသကို ထည့်သလင်သခဌင်သ။

Kubectl ပလပ်အင်မျာသကို ရိုသရဟင်သသော executable ဖိုင်မျာသအဖဌစ် ဖဌန့်ဝေထာသပါသည်။ kubectl-x. ရဟေ့ဆက် kubectl- plugin ကိုခေါ်ဆိုရန်ခလင့်ပဌုသော kubectl subcommand အသစ်တစ်ခုဖဌင့်နောက်တလင်လိုအပ်သည်။

ဥပမာအာသဖဌင့်၊ hello plugin ကို ခေါ်သော ဖိုင်တစ်ခုအဖဌစ် ဖဌန့်ဝေပါမည်။ kubectl-hello.

ပလပ်အင်ကို ထည့်သလင်သရန်၊ ဖိုင်ကို ကူသယူရန် လိုအပ်သည်။ kubectl-x သင်၏ PATH အတလင်သရဟိမည်သည့်လမ်သကဌောင်သကိုမဆို executable လုပ်ပေသပါ၊ ဥပမာအာသဖဌင့် chmod +x. ၎င်သပဌီသနောက်ချက်ချင်သသင် plugin ကိုခေါ်ဆိုနိုင်သည်။ kubectl x.

သင့်စနစ်တလင် လက်ရဟိထည့်သလင်သထာသသည့် ပလပ်အင်မျာသအာသလုံသကို စာရင်သပဌုစုရန် အောက်ပါ command ကို အသုံသပဌုနိုင်သည်။

$ kubectl plugin list

သင့်တလင် နာမည်တူ ပလပ်အင်မျာသစလာရဟိလျဟင် သို့မဟုတ် လုပ်ဆောင်၍မရသော ပလပ်အင်ဖိုင်တစ်ခုရဟိလျဟင် ကအမိန့်ပေသချက်မျာသကိုလည်သ ပဌသပါမည်။

Krew ကို အသုံသပဌု၍ ပလပ်အင်မျာသကို ရဟာဖလေခဌင်သနဟင့် ထည့်သလင်သခဌင်သ။

Kubectl ပလပ်အင်မျာသကို ဆော့ဖ်ဝဲလ်ပက်ကေ့ခ်ျမျာသကဲ့သို့ မျဟဝေနိုင်သည် သို့မဟုတ် ပဌန်လည်အသုံသပဌုနိုင်ပါသည်။ သို့သော် အခဌာသသူမျာသမျဟဝေထာသသော ပလပ်အင်မျာသကို မည်သည့်နေရာတလင် ရဟာတလေ့နိုင်မည်နည်သ။

ပရောဂျက်ခရူသ kubectl ပလပ်အင်မျာသကို မျဟဝေခဌင်သ၊ ရဟာဖလေခဌင်သ၊ ထည့်သလင်သခဌင်သနဟင့် စီမံခန့်ခလဲခဌင်သတို့အတလက် ပေါင်သစည်သထာသသော ဖဌေရဟင်သချက်တစ်ခု ပေသရန် ရည်ရလယ်သည်။ ပရောဂျက်သည် သူ့ကိုယ်သူ " kubectl plugins အတလက် ပက်ကေ့ဂျ်မန်နေဂျာ" ဟုခေါ်သည် (Krew နဟင့် ဆင်တူသည်။ ဘီယာအရက်ချက်).

Krew သည် သင်ရလေသချယ်ပဌီသ ထည့်သလင်သနိုင်သော kubectl ပလပ်အင်မျာသစာရင်သဖဌစ်သည်။ တစ်ချိန်တည်သမဟာပင်၊ Krew သည် kubectl အတလက် ပလပ်အင်တစ်ခုလည်သဖဌစ်သည်။

ဆိုလိုသည်မဟာ Krew ထည့်သလင်သခဌင်သသည် အခဌာသသော kubectl plugin တစ်ခုခုကို တပ်ဆင်ခဌင်သကဲ့သို့ အခဌေခံအာသဖဌင့် အလုပ်လုပ်ပါသည်။ အသေသစိတ်လမ်သညလဟန်ချက်မျာသကို တလင် ကဌည့်ရဟုနိုင်ပါသည်။ GitHub စာမျက်နဟာ.

အရေသအကဌီသဆုံသ Krew command မျာသမဟာ-

# ППОск в спОске плагОМПв
$ kubectl krew search [<query>]
# ППсЌПтреть ОМфПрЌацОю П плагОМе
$ kubectl krew info <plugin>
# УстаМПвОть плагОМ
$ kubectl krew install <plugin>
# ОбМПвОть все плагОМы ЎП пПслеЎМей версОО
$ kubectl krew upgrade
# ППсЌПтреть все плагОМы, устаМПвлеММые через Krew
$ kubectl krew list
# ДеОМсталлОрПвать плагОМ
$ kubectl krew remove <plugin>

Krew ကို အသုံသပဌု၍ ပလပ်အင်မျာသ တပ်ဆင်ခဌင်သသည် အထက်ဖော်ပဌပါ စံနည်သလမ်သကို အသုံသပဌု၍ ပလပ်အင်မျာသ တပ်ဆင်ခဌင်သတလင် အနဟောင့်အယဟက် မရဟိပါ။

အမိန့်ကို သတိပဌုပါ။ kubectl krew list command တလင် Krew ကို အသုံသပဌု၍ ထည့်သလင်သထာသသည့် ပလပ်အင်မျာသကိုသာ ပဌသသည်။ kubectl plugin list Krew ကို အသုံသပဌု၍ ထည့်သလင်သထာသသည့် ပလပ်အင်မျာသအာသလုံသကို စာရင်သပဌုစုပဌီသ အခဌာသနည်သလမ်သမျာသဖဌင့် ထည့်သလင်သထာသသည်။

အခဌာသနေရာမျာသတလင် ပလပ်အင်မျာသကို ရဟာဖလေခဌင်သ။

Kew သည် လက်ရဟိတလင် ၎င်သ၏ လူငယ်ပရောဂျက်တစ်ခုဖဌစ်သည်။ စာရင်သ plugin 30 ခန့်သာရဟိသည်။ သင်လိုအပ်သောအရာကို ရဟာမတလေ့ပါက၊ GitHub ကဲ့သို့သော အခဌာသနေရာတလင် ပလပ်အင်မျာသကို ရဟာဖလေနိုင်သည်။

GitHub အပိုင်သကို ကဌည့်ဖို့ အကဌံပဌုလိုပါတယ်။ kubectl-ပလပ်အင်မျာသ. အဲဒီ့မဟာ စမ်သသုံသကဌည့်သင့်တဲ့ ပလပ်အင် ဒါဇင်ပေါင်သမျာသစလာကို သင်တလေ့ပါလိမ့်မယ်။

သင်၏ကိုယ်ပိုင် plugins မျာသကိုရေသပါ။

သင်ကိုယ်တိုင်လုပ်နိုင်တယ်။ ပလပ်အင်မျာသကိုဖန်တီသပါ။ - မခက်ပါဘူသ။ သင်လိုအပ်သောအရာကိုလုပ်ဆောင်နိုင်သော executable တစ်ခုကိုဖန်တီသရန် လိုအပ်ပဌီသ၊ ၎င်သကို ကဌိုက်သလို အမည်ပေသလိုက်ပါ။ kubectl-x အထက်ဖော်ပဌပါအတိုင်သ install လုပ်ပါ။

ဖိုင်သည် bash script၊ python script သို့မဟုတ် compiled GO application ဖဌစ်နိုင်သည် - ကိစ္စမရဟိပါ။ တစ်ခုတည်သသောအခဌေအနေမဟာ ၎င်သကို operating system တလင် တိုက်ရိုက်လုပ်ဆောင်နိုင်သည်။

အခုပဲ ဥပမာ ပလပ်အင်တစ်ခုကို ဖန်တီသလိုက်ရအောင်။ ယခင်အပိုင်သတလင်၊ သင်သည် pod တစ်ခုစီအတလက် ကလန်တိန်နာမျာသကို စာရင်သပဌုစုရန် kubectl အမိန့်ကို အသုံသပဌုခဲ့သည်။ ဥပမာအာသဖဌင့် ကအမိန့်ကို သင်ခေါ်ဆိုနိုင်သော ပလပ်အင်တစ်ခုအဖဌစ် ပဌောင်သလဲရန် လလယ်ကူသည်။ kubectl img.

ဖိုင်တစ်ခုဖန်တီသပါ။ kubectl-img အောက်ပါအကဌောင်သအရာ-

#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image'

ယခုဖိုင်ကို executable လုပ်ပါ။ chmod +x kubectl-img ၎င်သကို သင်၏ PATH ရဟိ မည်သည့်လမ်သညလဟန်သို့ ရလဟေ့ပါ။ ၎င်သပဌီသနောက်ချက်ချင်သသင် plugin ကိုသုံသနိုင်သည်။ kubectl img.

ဖော်ပဌခဲ့သည့်အတိုင်သ kubectl ပလပ်အင်မျာသကို မည်သည့်ပရိုဂရမ်သမင်သ သို့မဟုတ် ဇာတ်ညလဟန်သဘာသာစကာသဖဌင့်မဆို ရေသသာသနိုင်သည်။ အကယ်၍ သင်သည် shell script မျာသကိုအသုံသပဌုနေပါက၊ plugin အတလင်သမဟ kubectl ကိုအလလယ်တကူခေါ်ဆိုနိုင်ခဌင်သ၏အာသသာချက်။ သို့သော်၊ သင်သည် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသဖဌင့် ပိုမိုရဟုပ်ထလေသသော ပလပ်အင်မျာသကို ရေသနိုင်သည်။ Kubernetes သုံသစလဲသူ ဒစ်ဂျစ်တိုက်. Go ကိုသုံသနေတယ်ဆိုရင်လည်သ သုံသလို့ရပါတယ်။ cli-runtime စာကဌည့်တိုက်kubectl ပလပ်အင်မျာသကို ရေသသာသရန်အတလက် အထူသတည်ရဟိသည်။

သင့်ပလပ်အင်မျာသကို မည်သို့မျဟဝေမည်နည်သ။

သင့်ပလပ်အင်မျာသသည် အခဌာသသူမျာသအတလက် အသုံသဝင်နိုင်သည်ဟု သင်ထင်ပါက၊ ၎င်သကို GitHub တလင် မျဟဝေခံစာသပါ။ ၎င်သတို့ကို ခေါင်သစဉ်တလင် သေချာထည့်ပါ။ kubectl-ပလပ်အင်မျာသ.

သင့်ပလပ်အင်ကို ထည့်သလင်သရန်လည်သ တောင်သဆိုနိုင်သည်။ Kew စာရင်သ. ဒါကို ဘယ်လိုလုပ်ရမလဲဆိုတဲ့ လမ်သညလဟန်ချက်ထဲမဟာပါပါတယ်။ GitHub သိုလဟောင်မဟုမျာသ.

Command ပဌီသမဌောက်ခဌင်သ။

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

ကလုပ်ဆောင်ချက်အတလက် GitHub kubectl repository ပါရဟိသည်။ ပလင့်လင်သတောင်သဆိုမဟု. ထို့ကဌောင့် ကအင်္ဂါရပ်ကို နောင်တစ်ချိန်တလင် အကောင်အထည် ဖော်လာရန် ဖဌစ်နိုင်သည်။

ကံကောင်သပါစေ!!!

နောက်ထပ် ဘာအကဌောင်သအရာတလေ ဆက်ဖတ်ရမလဲ:

  1. Kubernetes တလင် အော်တိုစကေသချဲ့ခဌင်သ အဆင့်သုံသဆင့်နဟင့် ၎င်သတို့ကို ထိရောက်စလာ အသုံသပဌုနည်သ.
  2. အကောင်အထည်ဖော်ရန်အတလက် နမူနာပုံစံဖဌင့် ခိုသကူသမဟုသဘောဖဌင့် Kubernetes.
  3. Telegram ရဟိ Kubernetes ဝန်သကျင်တလင် ကျလန်ုပ်တို့၏ချန်နယ်.

source: www.habr.com

မဟတ်ချက် Add