
Егер сіз Kubernetes-пен жұмыс жасасаңыз, kubectl ең көп қолданылатын утилиталарыңыздың бірі болуы мүмкін. Белгілі бір құралмен жұмыс істеуге көп уақыт жұмсасаңыз, оны мұқият оқып, оны тиімді пайдалануды үйрену керек.
команда Мен kubectl-мен тиімді жұмыс істеуге арналған кеңестер мен амалдарды ұсынатын Дэниел Вайбельдің мақаласын аудардым. Бұл сонымен қатар Кубернетес туралы тереңірек түсінуге көмектеседі.
Автордың айтуынша, бұл мақаланың мақсаты - Kubernetes-пен күнделікті жұмысыңызды тиімдірек ғана емес, сонымен бірге одан да қызықты ету!
Кіріспе: kubectl дегеніміз не?
Kubectl қалай тиімдірек пайдалану керектігін білмес бұрын, оның не екенін және оның қалай жұмыс істейтіні туралы негізгі түсінікке ие болу керек.
Пайдаланушы тұрғысынан kubectl - Kubernetes операцияларын орындауға мүмкіндік беретін басқару тақтасы.
Техникалық тұрғыдан алғанда, kubectl - Kubernetes API клиенті.
Kubernetes API HTTP REST API болып табылады. Бұл API - Kubernetes үшін шынайы пайдаланушы интерфейсі, ол арқылы ол толығымен басқарылады. Бұл әрбір Kubernetes операциясы API соңғы нүктесі ретінде ұсынылатынын және осы соңғы нүктеге HTTP сұрауы арқылы орындалуы мүмкін екенін білдіреді.
Сондықтан kubectl негізгі міндеті - Kubernetes API-ге HTTP сұрауларын жасау:

Kubernetes - толығымен ресурсқа бағытталған жүйе. Бұл оның ішкі ресурс күйін сақтайтынын білдіреді және барлық Kubernetes операциялары CRUD операциялары болып табылады.
Осы ресурстарды басқару арқылы сізде Kubernetes-ті толық басқара аласыз және Kubernetes ресурстардың ағымдағы күйіне негізделген не істеу керектігін анықтайды. Осы себепті Kubernetes API ресурс түрлерінің және олармен байланысты операциялардың тізімі ретінде ұйымдастырылған.
Бір мысалды қарастырайық.
Сіз ReplicaSet ресурсын жасағыңыз келеді делік. Бұл әрекетті орындау үшін сіз ReplicaSet деп аталатын файлда сипаттайсыз replicaset.yaml, содан кейін пәрменді іске қосыңыз:
$ kubectl create -f replicaset.yamlБұл ReplicaSet ресурсын жасайды. Бірақ сахна артында не болып жатыр?
Kubernetes-те ReplicaSet жасау әрекеті бар. Кез келген басқа операция сияқты, ол API соңғы нүктесі ретінде көрсетіледі. Бұл әрекетке арналған арнайы API соңғы нүктесі келесідей көрінеді:
POST /apis/apps/v1/namespaces/{namespace}/replicasetsБарлық Kubernetes операцияларына арналған API соңғы нүктелерін мына жерден табуға болады (соның ішінде ). Соңғы нүктеге нақты сұрау жасау үшін алдымен API серверінің URL мекенжайын API сілтемесінде тізімделген соңғы нүкте жолдарына қосу керек.
Сондықтан, жоғарыдағы пәрменді іске қосқан кезде kubectl жоғарыдағы API соңғы нүктесіне HTTP POST сұрауын жібереді. Файлда көрсеткен ReplicaSet анықтамасы replicaset.yaml, сұрау мәтінінде жіберіледі.
Kubernetes кластерімен әрекеттесетін барлық командалар үшін kubectl осылай жұмыс істейді. Барлық осы жағдайларда kubectl HTTP сұрауларын сәйкес Kubernetes API соңғы нүктелеріне жібереді.
сияқты утилитаны пайдаланып Kubernetes-ті толығымен басқара алатыныңызды ескеріңіз curl, HTTP сұрауларын Kubernetes API-ге қолмен жіберу. Kubectl жай ғана Kubernetes API пайдалануды жеңілдетеді.
Бұл kubectl деген не және оның қалай жұмыс істейтінінің негіздері. Бірақ Kubernetes API туралы әр kubectl пайдаланушысы білуі керек көбірек нәрсе бар. Кубернетестің ішкі жұмысына жылдам сүңгейік.
Кубернетестің ішкі әлемі
Kubernetes кластер түйіндерінде бөлек процестер ретінде орындалатын тәуелсіз құрамдас бөліктерден тұрады. Кейбір құрамдас бөліктер негізгі түйіндерде, басқалары жұмысшы түйіндерінде, әрқайсысы белгілі бір тапсырманы орындайды.
Міне, негізгі түйіндердегі ең маңызды компоненттер:
- репозиторий — ресурс анықтамаларын сақтайды ().
- API сервері — API қамтамасыз етеді және сақтауды басқарады.
- Контроллер менеджері - ресурс күйлерінің спецификацияларға сәйкестігін қамтамасыз етеді.
- Жоспарлаушы — жұмысшы түйіндеріндегі подкасттарды жоспарлайды.
Міне, жұмысшы түйіндеріндегі ең маңызды құрамдастардың бірі:
- Кубелет — жұмысшы түйініндегі контейнерлерді іске қосуды басқарады.
Бұл құрамдастардың қалай бірге жұмыс істейтінін түсіну үшін мысалды қарастырайық.
Сіз жаңа ғана аяқтадыңыз делік kubectl create -f replicaset.yaml, содан кейін kubectl HTTP POST сұрауын жасады (ReplicaSet ресурсының анықтамасынан өту).
Кластерде не болып жатыр?
- Жасағаннан кейін
kubectl create -f replicaset.yamlAPI сервері ReplicaSet ресурсының анықтамасын қоймада сақтайды:
- Содан кейін ReplicaSet контроллері ReplicaSet ресурстарын жасауды, өзгертуді және жоюды өңдейтін контроллер менеджерінде іске қосылады:

- ReplicaSet контроллері ReplicaSet ішіндегі әрбір реплика үшін подколь анықтамасын жасайды (ReplicaSet анықтамасындағы подкаст үлгісіне сәйкес) және оларды дүкенде сақтайды:

- Жоспарлаушы жұмысшы түйініне әлі тағайындалмаған бақыланатын бөлімдерді бастайды:

- Жоспарлаушы әрбір подвод үшін сәйкес жұмысшы түйінін таңдайды және бұл ақпаратты қоймадағы подколь анықтамасына қосады:

- Қондырғы тағайындалған жұмысшы түйінінде Kubelet іске қосылады және сол түйінге тағайындалған подкасттарды бақылайды:

- Kubelet репозитарийден подключ анықтамасын оқиды және түйіндегі контейнерлерді іске қосу үшін Docker сияқты контейнердің орындалу уақытына пәрмендер береді:

Төменде осы сипаттаманың мәтіндік нұсқасы берілген.
ReplicaSet жасаудың соңғы нүктесіне API сұрауын API сервері өңдейді. API сервері сұраудың түпнұсқалығын растайды және ReplicaSet ресурсының анықтамасын жадта сақтайды.
Бұл оқиға контроллер менеджерінің ішкі процесі болып табылатын ReplicaSet контроллерін бастайды. ReplicaSet контроллері қоймадағы ReplicaSet ресурстарының жасалуын, жаңартылуын және жойылуын бақылайды және олар орын алған кезде оқиға хабарландыруларын алады.
ReplicaSet контроллерінің жұмысы ReplicaSet қосқыштарының қажетті санының болуын қамтамасыз ету болып табылады. Біздің мысалда әлі бірде-бір түйін жоқ, сондықтан ReplicaSet контроллері осы подколь анықтамаларын жасайды (ReplicaSet анықтамасындағы подкладка үлгісіне сәйкес) және оларды жадта сақтайды.
Жаңа подкасттарды жасау жұмысшы түйіндеріне әлі жоспарланбаған подкаст анықтамаларын бақылайтын жоспарлаушыны іске қосады. Жоспарлаушы әрбір подвод үшін қолайлы жұмыс түйінін таңдайды және репозиторийдегі подколь анықтамаларын жаңартады.
Осы уақытқа дейін кластердің ешбір жерінде жұмыс жүктемесі коды орындалмағанын ескеріңіз. Осы уақытқа дейін жасалғанның бәрі, - Бұл негізгі түйіндегі сақтаудағы ресурстарды жасау және жаңарту.
Соңғы оқиға жұмысшы түйіндері үшін жоспарланған қосқыштарды бақылайтын Kubelet іске қосады. ReplicaSet қосқыштары орнатылған жұмысшы түйінінің Kubelet қажетті контейнер кескіндерін жүктеп алу және оларды іске қосу үшін Docker сияқты контейнердің орындалу уақытына нұсқау беруі керек.
Осы сәтте сіздің ReplicaSet қолданбаңыз жұмыс істейді!
Kubernetes API рөлі
Алдыңғы мысалда көргеніңіздей, Kubernetes құрамдастары (API сервері мен қоймасынан басқа) сақтаудағы ресурстардағы өзгерістерді бақылайды және сақтаудағы ресурстар туралы ақпаратты өзгертеді.
Әрине, бұл компоненттер жадпен тікелей емес, тек Kubernetes API арқылы әрекеттеседі.
Келесі мысалдарды қарастырайық:
- ReplicaSet контроллері API соңғы нүктесін пайдаланады параметрімен
watchReplicaSet ресурстарындағы өзгерістерді бақылау үшін. - ReplicaSet контроллері API соңғы нүктесін пайдаланады (подборд жасау) тармақтарды жасау үшін.
- Жоспарлаушы API соңғы нүктесін пайдаланады (қосқышты өзгерту) таңдалған жұмысшы түйіні туралы ақпаратпен подкасттарды жаңарту.
Көріп отырғаныңыздай, бұл kubectl кіретін API. Ішкі компоненттер мен сыртқы пайдаланушылар үшін бірдей API пайдалану Kubernetes-тің негізгі дизайн тұжырымдамасы болып табылады.
Енді біз Kubernetes қалай жұмыс істейтінін қорытындылай аламыз:
- Жад күйді, яғни Kubernetes ресурстарын сақтайды.
- API сервері Kubernetes API түрінде сақтау интерфейсін қамтамасыз етеді.
- Барлық басқа Kubernetes құрамдастары мен пайдаланушылары API арқылы Kubernetes күйін (ресурстарын) оқиды, бақылайды және басқарады.
Бұл ұғымдарды білу kubectl-ді жақсы түсінуге және одан барынша пайда алуға көмектеседі.
Енді kubectl көмегімен өнімділікті арттыруға көмектесетін кейбір нақты кеңестер мен амалдарды қарастырайық.
1. Пәрменді аяқтау арқылы теруді жылдамдату
Kubectl өнімділігін арттырудың ең пайдалы, бірақ жиі назардан тыс қалған әдістерінің бірі - пәрменді орындау.
Пәрменді аяқтау Tab пернесін пайдаланып kubectl пәрмендерінің жеке бөліктерін автоматты түрде аяқтауға мүмкіндік береді. Бұл ішкі пәрмендер, опциялар және дәлелдер, соның ішінде ресурс атаулары сияқты күрделілері үшін жұмыс істейді.
kubectl пәрменін аяқтау қалай жұмыс істейтінін қараңыз:

Команданы аяқтау Bash және Zsh снарядтары үшін жұмыс істейді.
автотолтыруды орнату бойынша егжей-тегжейлі нұсқауларды қамтиды, бірақ төменде біз қысқаша үзінді береміз.
Пәрменді аяқтау қалай жұмыс істейді
Пәрменді аяқтау - аяқтау сценарийін пайдаланып жұмыс істейтін қабық мүмкіндігі. Аяқтау сценарийі - белгілі бір пәрмен үшін аяқтау әрекетін анықтайтын қабық сценарийі.
Kubectl келесі пәрмендерді пайдаланып Bash және Zsh үшін аяқтау сценарийлерін автоматты түрде жасайды және шығарады:
$ kubectl completion bashНемесе:
$ kubectl completion zshТеориялық тұрғыдан, kubectl пәрмендерді аяқтауы үшін осы пәрмендердің шығысын тиісті пәрмен қабығына жіберу жеткілікті.
Іс жүзінде, қосылу әдісі Bash үшін әртүрлі (оның ішінде айырмашылықтар) Linux және MacOS) және Zsh. Төменде осы опциялардың барлығын қарастырамыз.
Бас кіріңіз Linux
Bash аяқтау сценарийі bash аяқтау бумасына байланысты, сондықтан алдымен оны орнату керек:
$ sudo apt-get install bash-completionНемесе:
$ yum install bash-completionПакеттің сәтті орнатылғанын келесі пәрмен арқылы тексеруге болады:
$ type _init_completion Егер бұл қабық функциясының кодын шығарса, онда bash-толтыру дұрыс орнатылған. Егер пәрмен «Табылмады» қатесін қайтарса, файлға келесі жолды қосу керек. ~ / .bashrc:
$ source /usr/share/bash-completion/bash_completion Бұл жолды файлға қосу керек пе? ~ / .bashrc Бұл қажет пе, жоқ па, bash аяқтауды орнату үшін пайдаланған пакет менеджеріне байланысты. Бұл APT үшін қажет, бірақ YUM үшін емес.
Bash-толтыру орнатылғаннан кейін, kubectl аяқтау сценарийі барлық қабық сеанстарында қосулы болатындай етіп конфигурациялауыңыз керек.
Мұны істеудің бір жолы - файлға келесі жолды қосу ~ / .bashrc:
source <(kubectl completion bash) Тағы бір әдіс - kubectl addon сценарийін каталогқа қосу /etc/bash_completion.d (егер ол жоқ болса, оны жасаңыз):
$ kubectl completion bash >/etc/bash_completion.d/kubectl Каталогтағы барлық қосымша сценарийлер /etc/bash_completion.d автоматты түрде bash аяқтауға қосылады.
Екі нұсқа да бірдей қолданылады.
Қабықты қайта іске қосқаннан кейін kubectl пәрменін аяқтау жұмыс істейді.
MacOS жүйесіндегі Bash
MacOS жүйесінде орнату біршама күрделірек. Себебі, macOS әдепкі бойынша Bash 3.2 нұсқасын пайдаланады және kubectl автотолтыру сценарийі Bash 4.1 немесе одан жоғары нұсқасын қажет етеді және Bash 3.2 жүйесінде жұмыс істемейді.
macOS жүйесінде Bash бағдарламасының ескірген нұсқасын пайдалану лицензиялау мәселелеріне байланысты. Bash 4 нұсқасы Apple қолдамайтын GPLv3 бағдарламасы бойынша лицензияланған.
macOS жүйесінде kubectl автотолтыруын конфигурациялау үшін Bash бағдарламасының соңғы нұсқасын орнату қажет. Сондай-ақ жаңартылған Bash-ті әдепкі қабық ретінде орнатуға болады, бұл болашақта сізді көптеген қиындықтардан сақтайды. Бұл оңай; егжей-тегжейлі мақалада берілген »«.
Жалғастырмас бұрын, Bash бағдарламасының соңғы нұсқасын пайдаланып жатқаныңызға көз жеткізіңіз (шығысты тексеріңіз bash --version).
Bash автотолтыру сценарийі жобаға тән , сондықтан алдымен оны орнату керек.
пайдаланып bash-аяқтауын орнатуға болады :
$ brew install bash-completion@2 Бұл @2 bash аяқтау 2 нұсқасын білдіреді. kubectl аяқтау үшін bash аяқтау v2, ал bash аяқтау v2 үшін кем дегенде Bash 4.1 нұсқасы қажет.
Пәрменді шығару brew-install файлға не қосу керектігін көрсететін ескертулер бөлімін қамтиды ~/.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Бұл жағдайда автотолтыру тек негізгі қабықшада ғана емес, сонымен қатар еншілес командалық қабықшаларда да қолжетімді болады.
Пәрмен қабығын қайта іске қосқаннан кейін келесі пәрменді пайдаланып орнатудың дұрыстығын тексеруге болады:
$ type _init_completionЕгер сіз шығыста қабық функциясын көрсеңіз, онда бәрі дұрыс конфигурацияланған.
Енді біз kubectl автотолтыруының барлық сеанстарда қосылғанына көз жеткізуіміз керек.
Бір жолы келесі жолды өзіңіздің жолыңызға қосу ~/.bashrc:
source <(kubectl completion bash) Екінші әдіс - қалтаға автотолтыру сценарийін қосу /usr/local/etc/bash_completion.d:
$ kubectl completion bash
>/usr/local/etc/bash_completion.d/kubectlБұл әдіс Homebrew көмегімен bash аяқтауды орнатқан жағдайда ғана жұмыс істейді. Бұл жағдайда, bash аяқтау осы каталогтан барлық сценарийлерді жүктейді.
Егер сіз орнатқан болсаңыз , содан кейін алдыңғы қадамды орындаудың қажеті жоқ, себебі автоматты аяқтау сценарийі автоматты түрде қалтаға орналастырылады. /usr/local/etc/bash_completion.d орнату кезінде. Бұл жағдайда kubectl автотолтыруы bash-толтыруды орнатқаннан кейін бірден жұмыс істей бастайды.
Сайып келгенде, бұл опциялардың барлығы бірдей.
Zsh
Zsh автотолтыру сценарийлері ешқандай тәуелділікті қажет етпейді. Сізге тек қабықты іске қосқан кезде оларды қосу керек.
Мұны жолды қосу арқылы жасауға болады ~/.zshrc файл:
source <(kubectl completion zsh) Қате алсаңыз not found: compdef Қабықшаны қайта іске қосқаннан кейін кірістірілген функцияны қосу керек compdef. Оны файлыңыздың басына қосу арқылы қосуға болады. ~/.zshrc Мынадай:
autoload -Uz compinit
compinit2. Ресурс сипаттамаларын жылдам қараңыз
YAML ресурсының анықтамаларын жасаған кезде осы ресурстар үшін өрістер мен олардың мағыналарын білу қажет. Бұл ақпаратты табудың бір орны барлық ресурстардың толық сипаттамаларын қамтитын API анықтамасында.
Дегенмен, бірдеңе іздеу қажет болған сайын веб-шолғышқа ауысу ыңғайсыз. Сондықтан kubectl пәрменді береді kubectl explain, ол сіздің терминалыңыздағы барлық ресурстардың сипаттамаларын көрсетеді.
Пәрмен пішімі келесідей:
$ kubectl explain resource[.field]...Пәрмен сұралған ресурстың немесе өрістің сипаттамасын шығарады. Ақпарат шығысы API нұсқаулығындағымен бірдей.
Әдепкі бойынша kubectl explain далалық ұя салудың бірінші деңгейін ғана көрсетеді.
Оның қалай көрінетінін қараңыз .
Опцияны қосу арқылы бүкіл ағашты көрсетуге болады --recursive:
$ kubectl explain deployment.spec --recursiveҚандай ресурстар қажет екенін нақты білмесеңіз, олардың барлығын келесі пәрмен арқылы көрсетуге болады:
$ kubectl api-resources Бұл пәрмен ресурс атауларын көпше түрде көрсетеді, мысалы, deployments орнына deployment. Ол сондай-ақ қысқа атауды көрсетеді, мысалы deploy, бар ресурстар үшін. Бұл айырмашылықтар туралы алаңдамаңыз. Бұл атау опцияларының барлығы kubectl үшін баламалы. Яғни, сіз олардың кез келгенін пайдалана аласыз kubectl explain.
Келесі пәрмендердің барлығы бірдей:
$ kubectl explain deployments.spec
# или
$ kubectl explain deployment.spec
# или
$ kubectl explain deploy.spec3. Теңшелетін баған шығыс пішімін пайдаланыңыз
Әдепкі пәрменнің шығыс пішімі болып табылады 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Шығару бөлімдердің атаулары бар бір бағанды қамтиды.
Опциядағы өрнек өріс атауларын таңдайды metadata.nameСебебі подкаст атауы еншілес өріс атауында анықталған metadata подкасттың ресурс сипаттамасында. Толығырақ ақпаратты мына жерден табуға болады немесе пәрменді теріңіз kubectl explain pod.metadata.name.
Енді шығысқа қосымша баған қосқыңыз келеді делік, мысалы, әрбір подкаст жұмыс істейтін түйінді көрсету. Мұны істеу үшін теңшелетін бағандар опциясына сәйкес баған сипаттамасын қосуға болады:
$ 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 Өрнек түйін атауын таңдайды spec.nodeName — түйінге түйін тағайындалғанда, өрісте оның аты жазылады spec.nodeName pod ресурсының сипаттамасы. Толығырақ ақпаратты шығыстан табуға болады kubectl explain pod.spec.nodeName.
Kubernetes ресурсының өрістері регистрді ескеретінін ескеріңіз.
Кез келген ресурс өрісін баған ретінде көруге болады. Ресурс сипаттамасын қарап шығыңыз және оны өзіңізге ұнайтын кез келген өрістермен қолданып көріңіз.
Бірақ алдымен өрісті таңдау өрнектерін толығырақ қарастырайық.
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'[] операторы ерекше маңызды. Көптеген Kubernetes ресурс өрістері тізімдер болып табылады және бұл оператор сол тізімдерден элементтерді таңдауға мүмкіндік береді. Ол жиі тізімнің барлық элементтерін таңдау үшін [*] сияқты қойылмалы таңбамен пайдаланылады.
Қолдану мысалдары
Пайдаланушы бағанының шығыс пішімін пайдалану мүмкіндіктері шексіз, өйткені шығыста кез келген өрісті немесе ресурс өрістерінің тіркесімін көрсетуге болады. Мұнда бірнеше мысал қолданбалар берілген, бірақ оларды өзіңіз зерттеп, пайдалы қолданбаларды табыңыз.
- Бөлшектерге арналған контейнер кескіндерін көрсету:
$ 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Бұл пәрмен әрбір подвод үшін контейнер кескінінің атауларын көрсетеді.
Постта бірнеше контейнер болуы мүмкін екенін есте сақтаңыз, бұл жағдайда кескін атаулары үтірмен бөлінген бір жолда көрсетіледі.
- Түйіннің қолжетімділік аймақтарын көрсету:
$ 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Бұл пәрмен кластер жалпы бұлтта орналастырылған жағдайда пайдалы. Ол әрбір түйін үшін қолжетімділік аймағын көрсетеді.
Қолжетімділік аймағы репликация аймағын географиялық аймақпен шектейтін бұлт тұжырымдамасы.
Әрбір түйін үшін қолжетімділік аймақтары арнайы белгі арқылы алынады - Егер кластер жалпы бұлтта жұмыс істеп тұрса, бұл белгі автоматты түрде жасалады және әрбір түйін үшін қолжетімділік аймақтарының атауларымен толтырылады.
Белгілер Kubernetes ресурсының сипаттамасының бөлігі емес, сондықтан олар туралы ақпаратты мына жерден таба алмайсыз Дегенмен, оларды YAML немесе JSON пішіміндегі түйін ақпаратын сұрау арқылы көруге болады (кез келген басқа белгілер сияқты):
$ kubectl get nodes -o yaml # или $ kubectl get nodes -o jsonБұл ресурс сипаттамаларын зерттеумен қатар, ресурстар туралы көбірек білудің тамаша тәсілі.
4. Кластерлер мен аттар кеңістігі арасында оңай ауысу
kubectl Kubernetes API-ге сұраныс жасағанда, ол алдымен қосылымға қажетті барлық параметрлерді алу үшін kubeconfig файлын оқиды.
Әдепкі бойынша kubeconfig файлы болып табылады ~/.kube/config. Бұл файл әдетте арнайы пәрмен арқылы жасалады немесе жаңартылады.
Бірнеше кластерлермен жұмыс істегенде, kubeconfig файлында олардың барлығына арналған қосылым параметрлері бар. Сізге kubectl пәрменіне қай кластермен жұмыс істеп жатқаныңызды айтудың жолы қажет.
Кластер ішінде бірнеше аттар кеңістігін — физикалық кластердегі виртуалды кластердің түрін жасауға болады. Kubectl kubeconfig файлы негізінде қандай аттар кеңістігін пайдалану керектігін анықтайды. Сондықтан сізге kubectl қандай аттар кеңістігін пайдалану керектігін айтудың жолы қажет.
Бұл тарауда біз оның қалай жұмыс істейтінін және тиімді жұмысқа қалай жетуге болатынын түсіндіреміз.
KUBECONFIG ортасының айнымалы мәнінде тізімделген бірнеше kubeconfig файлдары болуы мүмкін екенін ескеріңіз. Бұл жағдайда барлық осы файлдар орындалу уақытында ортақ ортақ конфигурацияға біріктіріледі. Сондай-ақ, kubectl параметрін іске қосу арқылы әдепкі kubeconfig файлын өзгертуге болады --kubeconfig. Қараңыз .
kubeconfig файлдары
Kubeconfig файлында нақты не бар екенін қарастырайық:

Көріп отырғаныңыздай, kubeconfig файлында мәтінмәндер жиынтығы бар. Контекст үш элементтен тұрады:
- Кластер — кластер серверінің API URL мекенжайы.
- Пайдаланушы — кластер үшін пайдаланушының аутентификация тіркелгі деректері.
- Атау кеңістігі - кластерге қосылу кезінде пайдаланылатын аттар кеңістігі.
Іс жүзінде kubeconfig файлында кластерге бір мәтінмәнді пайдалану әдеттегідей. Дегенмен, әр кластерге пайдаланушы немесе аттар кеңістігі бойынша сараланған бірнеше мәтінмәндер болуы мүмкін. Дегенмен, бірнеше мәтінмәндері бар мұндай конфигурация сирек кездеседі, сондықтан әдетте кластерлер мен мәтінмәндер арасында бір-бірден салыстыру болады.
Кез келген уақытта контексттердің бірі ағымдағы болып табылады:

kubectl конфигурация файлын оқығанда, ол әрқашан ағымдағы контекстен ақпаратты алады. Жоғарыдағы мысалда kubectl Hare кластеріне қосылады.
Сәйкесінше, басқа кластерге ауысу үшін kubeconfig файлындағы ағымдағы контекстті өзгерту керек:

Енді kubectl Fox кластеріне қосылады.
Бір кластердегі басқа аттар кеңістігіне ауысу үшін ағымдағы контекст үшін аттар кеңістігі элементінің мәнін өзгерту керек:

Жоғарыдағы мысалда kubectl Fox кластерінің Prod аттар кеңістігін пайдаланады (Сынақ аттар кеңістігі бұрын орнатылған).
kubectl де опцияларды қамтамасыз ететінін ескеріңіз --cluster, --user, --namespace и --context, ол kubeconfig файлында не орнатылғанына қарамастан, жеке элементтерді және ағымдағы контексттің өзін қайта жазуға мүмкіндік береді. Қараңыз kubectl options.
Теориялық тұрғыдан kubeconfig файлындағы параметрлерді қолмен өзгертуге болады. Дегенмен, бұл ыңғайсыз. Бұл операцияларды жеңілдету үшін параметрлерді автоматты түрде өзгертуге мүмкіндік беретін әртүрлі утилиталар бар.
kubectx пайдаланыңыз
Кластерлер мен аттар кеңістігі арасында ауысуға арналған өте танымал утилита.
Утилита пәрмендерді береді kubectx и kubens сәйкесінше ағымдағы контекст пен аттар кеңістігін өзгерту үшін.
Жоғарыда айтылғандай, ағымдағы мәтінмәнді өзгерту кластерге бір ғана контекст болса, кластерді өзгертуді білдіреді.
Міне, осы командаларды орындаудың мысалы:

Негізінде, бұл пәрмендер kubeconfig файлын жоғарыда сипатталғандай өңдейді.
Орнату үшін kubectx, бойынша нұсқауларды орындаңыз
Екі пәрмен де контекст пен аттар кеңістігі атауларының автотолтырылуын қолдайды, бұл оларды толық теру қажеттілігін болдырмайды. Автотолтыруды орнату бойынша нұсқаулар .
Тағы бір пайдалы мүмкіндік kubectx Бұл Ол қызметтік бағдарламамен бірге жұмыс істейді , ол бөлек орнатылуы керек. fzf автоматты түрде орнату интерактивті режимді қол жетімді етеді kubectxИнтерактивті режимде сіз fzf ұсынған интерактивті тегін іздеу интерфейсі арқылы мәтінмән мен аттар кеңістігін таңдай аласыз.
Қабық бүркеншік аттарын пайдалану
Ағымдағы контекст пен аттар кеңістігін өзгерту үшін сізге бөлек құралдар қажет емес, өйткені kubectl бұл үшін пәрмендерді де қамтамасыз етеді. Мысалы, команда kubectl config kubeconfig файлдарын өңдеуге арналған ішкі командаларды қамтамасыз етеді.
Вот некоторые из них:
kubectl config get-contexts: барлық контексттерді шығару;kubectl config current-context: ағымдағы контекстті алу;kubectl config use-context: ағымдағы контекстті өзгерту;kubectl config set-context: контекстік элементті өзгерту.
Дегенмен, бұл пәрмендерді тікелей пайдалану өте ыңғайлы емес, себебі олар ұзақ. Олар үшін оңай орындалатын қабық бүркеншік атын жасауға болады.
Мен kubectx сияқты функционалдылықты қамтамасыз ететін осы пәрмендерге негізделген бүркеншік аттар жинағын жасадым. Сіз олардың әрекетін мына жерден көре аласыз:

Бүркеншік аттар интерактивті, еркін іздеу интерфейсін қамтамасыз ету үшін fzf қолданатынын ескеріңіз (kubectx интерактивті режиміне ұқсас). Бұл сізге қажет дегенді білдіреді осы бүркеншік аттарды пайдалану үшін.
Мұнда бүркеншік аттардың анықтамалары берілген:
# Получить текущий контекст
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 және қабықты қайта жүктеңіз.
Плагиндерді пайдалану
Kubectl негізгі пәрмендер сияқты орындалатын плагиндерді жүктеуге мүмкіндік береді. Мысалы, kubectl-foo плагинін орнатуға және оны пәрменді іске қосу арқылы іске қосуға болады kubectl foo.
Мәтінмән мен аттар кеңістігін осылайша өзгерту ыңғайлы болар еді, мысалы, іске қосу kubectl ctx контекстті өзгерту және kubectl ns аттар кеңістігін өзгерту үшін.
Мен мұны істейтін екі плагин жаздым:
Плагиндер алдыңғы бөлімдегі бүркеншік аттар негізінде жұмыс істейді.
Міне, олар қалай жұмыс істейді:

Плагиндер интерактивті, еркін іздеу интерфейсін (kubectx интерактивті режиміне ұқсас) қамтамасыз ету үшін fzf қолданатынын ескеріңіз. Бұл сізге қажет дегенді білдіредіосы бүркеншік аттарды пайдалану үшін.
Плагиндерді орнату үшін сіз аталған қабық сценарийлерін жүктеп алуыңыз керек и PATH айнымалысының кез келген каталогына енгізіңіз және оларды орындалатын етіп жасаңыз, мысалы chmod +x. Осыдан кейін сіз оны бірден пайдалана аласыз. kubectl ctx и kubectl ns.
5. Автоматалы аттармен енгізуді қысқартыңыз
Shell бүркеншік аттары теруді жылдамдатудың тамаша тәсілі болып табылады. Жоба Негізгі kubectl пәрмендері үшін шамамен 800 пернелер тіркесімін қамтиды.
Сіз 800 бүркеншік атын қалай есте сақтау керек деген сұрақ туындауы мүмкін. Бірақ олардың барлығын есте сақтаудың қажеті жоқ, өйткені олар төменде көрсетілгендей қарапайым формулаға сәйкес келеді:

Мысалы:
- kgpooyaml - kubectl алу pods oyaml
- ksysgsvcw — kubectl -n kube-жүйесін алу svc w
- ksysrmcm -kubectl -n kube-жүйесі rm см
- kgdepallls - kubectl барлық sl орналастыруды алады
Көріп отырғаныңыздай, бүркеншік аттар әрқайсысы kubectl пәрменінің белгілі бір элементін білдіретін компоненттерден тұрады. Әрбір бүркеншік аттың негізгі пәрмені, әрекеті және ресурсы үшін бір құрамдас бөлігі және параметрлер үшін бірнеше құрамдас болуы мүмкін. Сіз жоғарыдағы диаграммаға сәйкес осы құрамдастарды солдан оңға қарай жай ғана «толтырасыз».
Ағымдағы егжей-тегжейлі диаграмма мына жерде орналасқан Онда да табуға болады.
Мысалы, kgpooyamlall бүркеншік аты пәрменге тең kubectl get pods -o yaml --all-namespaces.
Опциялардың салыстырмалы реті маңызды емес: пәрмен kgpooyamlall пәрменге тең kgpoalloyaml.
Барлық құрамдастарды бүркеншік ат ретінде пайдалануға болмайды. Мысалы k, kg, klo, ksys, kgpo да қолдануға болады. Сонымен қатар, пәрмен жолында бүркеншік аттар мен кәдімгі пәрмендер немесе опциялар біріктірілуі мүмкін:
Мысалы:
- Орнына
kubectl proxyжаза аласызk proxy. - Орнына
kubectl get rolesжаза аласызkg roles(Қазір Рөлдер ресурсы үшін бүркеншік ат жоқ). - Арнайы подкастқа арналған деректерді алу үшін пәрменді пайдалануға болады
kgpo my-pod — kubectl get pod my-pod.
Кейбір бүркеншік аттар пәрмен жолында аргумент қажет ететінін ескеріңіз. Мысалы, бүркеншік ат kgpol құралдары kubectl get pods -l. Опция -l аргумент — белгі сипаттамасын қажет етеді. Егер бүркеншік атты қолдансаңыз, ол келесідей болады: kgpol app=ui.
Кейбір бүркеншік аттар аргументтерді қажет ететіндіктен, a, f және l бүркеншік аттары соңғы пайдаланылуы керек.
Жалпы, сіз осы схеманы меңгергеннен кейін, теру уақытын үнемдей отырып, орындағыңыз келетін пәрмендерден интуитивті түрде бүркеншік аттарды ала аласыз.
Орнату
kubectl-бүркеншік аттарды орнату үшін файлды жүктеп алу керек GitHub сайтынан және оны файлға қосыңыз ~/.bashrc немесе ~/.zshrc:
source ~/.kubectl_aliasesАвтотолтыру
Жоғарыда айтқанымыздай, пәрмен жолындағы бүркеншік атқа қосымша сөздерді жиі қосасыз. Мысалы:
$ kgpooyaml test-pod-d4b77b989Егер сіз kubectl пәрменін аяқтауды пайдалансаңыз, оны ресурс атаулары сияқты нәрселер үшін пайдаланған боларсыз. Бірақ бүркеншік аттарды пайдаланған кезде де солай істеуге болады ма?
Бұл өте маңызды сұрақ, себебі автотолтыру жұмыс істемесе, бүркеншік аттардың кейбір артықшылықтарын жоғалтасыз.
Жауап қай қабықшаны пайдаланып жатқаныңызға байланысты:
- Zsh үшін бүркеншік аттар үшін автотолтыру қораптан тыс жұмыс істейді.
- Өкінішке орай, Bash автотолтыруды алу үшін біраз жұмысты қажет етеді.
Bash ішіндегі бүркеншік аттар үшін автотолтыруды қосу
Bash-тің мәселесі мынада, ол бүркеншік ат сілтеме жасайтын пәрменді емес (мысалы, Zsh сияқты) бүркеншік атты аяқтауға тырысады (Tab пернесін басқан сайын). Барлық 800 бүркеншік аттар үшін аяқтау сценарийлері болмағандықтан, автотолтыру жұмыс істемейді.
Жоба бұл мәселенің жалпы шешімін ұсынады. Ол бүркеншік атты аяқтау механизміне қосылады, бүркеншік атты пәрменге іштей кеңейтеді және кеңейтілген пәрмен үшін аяқтау опцияларын қайтарады. Бұл бүркеншік аттың аяқталуы толық пәрменмен бірдей әрекет ететінін білдіреді.
Әрі қарай, мен алдымен толық бүркеншік атын қалай орнату керектігін, содан кейін барлық kubectl бүркеншік аттары үшін аяқтауды қосу үшін оны қалай конфигурациялау керектігін түсіндіремін.
Толық бүркеншік ат орнатылуда
Ең алдымен, толық бүркеншік ат тәуелді Сондықтан, complete-alias орнатпас бұрын, bash-completion орнатылғанына көз жеткізуіңіз керек. Орнату нұсқаулары бұрын берілген болатын. Linux және MacOS.
MacOS пайдаланушылары үшін маңызды ескерту: kubectl автотолтыру сценарийі сияқты, толық бүркеншік ат MacOS жүйесіндегі әдепкі нұсқасы болып табылатын Bash 3.2 нұсқасымен жұмыс істемейді. Атап айтқанда, толық бүркеншік аты bash аяқтау v2 (brew install bash-completion@2), ол кем дегенде Bash 4.1 талап етеді. Бұл macOS жүйесінде толық бүркеншік атын пайдалану үшін Bash бағдарламасының жаңарақ нұсқасын орнату керек дегенді білдіреді.
Сценарийді жүктеп алу керек -дан және оны файлыңызға қосыңыз ~/.bashrc:
source ~/bash_completion.shҚабықшаны қайта іске қосқаннан кейін толық бүркеншік ат толығымен орнатылады.
kubectl бүркеншік аттары үшін автотолтыруды қосу
Техникалық тұрғыдан, толық бүркеншік ат қабық функциясын қамтамасыз етеді _complete_aliasБұл функция бүркеншік атты тексереді және бүркеншік ат пәрмені үшін аяқтау туралы кеңестерді қайтарады.
Функцияны белгілі бір бүркеншік атпен байланыстыру үшін Bash кірістірілген механизмін пайдалану керек. , орнату үшін _complete_alias бүркеншік толықтауыштың қызметі ретінде.
Мысал ретінде kubectl пәрменін білдіретін k бүркеншік атын алайық. Орнату үшін _complete_alias Бұл бүркеншік ат үшін қосымша функция ретінде келесі пәрменді орындау керек:
$ complete -F _complete_alias k Мұның нәтижесі k бүркеншік атын автотолтырған сайын функция шақырылады _complete_alias, ол бүркеншік атты тексереді және пәрмен үшін аяқтау туралы кеңестерді қайтарады kubectl.
Екінші мысал ретінде бүркеншік атты алайық kg, яғни kubectl get:
$ complete -F _complete_alias kg Алдыңғы мысалдағыдай, кг-ды автотолтырған кезде, сіз алу үшін бірдей аяқтау ұсыныстарын аласыз. kubectl get.
Жүйедегі кез келген бүркеншік ат үшін толық бүркеншік атын осылай пайдалануға болатынын ескеріңіз.
Сондықтан, барлық kubectl бүркеншік аттары үшін автотолтыруды қосу үшін әрқайсысы үшін жоғарыдағы пәрменді орындау керек. Келесі үзінді дәл осылай жасайды, сіз kubectl-бүркеншік аттарды орнатқан болсаңыз ~/.kubectl-aliases:
for _a in $(sed '/^alias /!d;s/^alias //;s/=.*$//' ~/.kubectl_aliases);
do
complete -F _complete_alias "$_a"
done Бұл код бөлігі сіздің файлыңызға орналастырылуы керек ~/.bashrc, пәрмен қабығын қайта іске қосыңыз және автотолтыру барлық 800 kubectl бүркеншік аттары үшін қолжетімді болады.
6. kubectl плагиндерімен кеңейту
Бастап , kubectl қолдайды , бұл оның функционалдығын қосымша командалармен кеңейтуге мүмкіндік береді.
Егер сіз таныс болсаңыз , содан кейін kubectl плагиндері бірдей принцип бойынша құрылған.
Бұл тарауда біз плагиндерді қалай орнату керектігін, оларды қайдан табуға болатынын және өз плагиндеріңізді қалай жасау керектігін қарастырамыз.
Плагиндерді орнату
Kubectl плагиндері сияқты аты бар қарапайым орындалатын файлдар ретінде таратылады kubectl-x. Префикс kubectl- қажет, одан кейін плагинді шақыруға мүмкіндік беретін жаңа kubectl ішкі пәрмені.
Мысалы, hello плагині аталған файл ретінде таратылады kubectl-hello.
Плагинді орнату үшін файлды көшіру керек kubectl-x PATH айнымалы мәніндегі кез келген каталогқа енгізіңіз және оны орындалатын етіп жасаңыз, мысалы chmod +x. Осыдан кейін сіз плагинді пайдаланып қоңырау шала аласыз kubectl x.
Жүйеде қазіргі уақытта орнатылған барлық плагиндерді тізімдеу үшін келесі пәрменді пайдалануға болады:
$ kubectl plugin listБұл пәрмен сізде бірдей атпен бірнеше плагиндер болса немесе орындалмайтын плагин файлы болса, ескертулерді де көрсетеді.
Krew көмегімен плагиндерді табу және орнату
Kubectl плагиндері бағдарламалық жасақтама пакеттері сияқты бөлісу және қайта пайдалану оңай. Бірақ басқалар бөліскен плагиндерді қайдан табуға болады?
kubectl плагиндерін ортақ пайдалану, табу, орнату және басқару үшін бірыңғай шешімді ұсынуға бағытталған. Жоба өзін «kuectl плагиндері үшін пакет менеджері» деп атайды (Krew ).
Krew - таңдап, орнатуға болатын kubectl плагиндерінің тізімі. Krew - бұл kubectl плагині.
Бұл Krew орнату кез келген басқа kubectl плагинін орнату сияқты жұмыс істейтінін білдіреді. Толық нұсқауларды мына жерден таба аласыз .
Ең маңызды Крю командалары:
# Поиск в списке плагинов
$ 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 пәрмені Krew көмегімен орнатылған плагиндерді ғана көрсетеді kubectl plugin list Krew көмегімен орнатылған және басқа құралдармен орнатылған барлық плагиндерді тізімдейді.
Басқа жерлерден плагиндерді іздеңіз
Крю - бұл жас жоба, қазіргі уақытта Барлығы шамамен 30 плагин бар. Қажетті нәрсені таба алмасаңыз, плагиндерді GitHub сияқты басқа жерден таба аласыз.
Мен GitHub бөлімін тексеруді ұсынамын. Онда сіз тексеруге тұрарлық ондаған қолжетімді плагиндерді таба аласыз.
Өзіңіздің плагиндеріңізді жазу
өзіңіз аласыз - қиын емес. Сізге қажет нәрсені жасайтын орындалатын файлды жасау керек, оны осылай атаңыз kubectl-x және жоғарыда сипатталғандай орнатыңыз.
Файл bash сценарийі, python сценарийі немесе құрастырылған go қолданбасы болуы мүмкін — бұл маңызды емес. Жалғыз талап - оны операциялық жүйе тікелей орындауы мүмкін.
Дәл қазір мысал плагинін жасайық. Алдыңғы бөлімде сіз kubectl пәрменін әрбір подвод үшін контейнерлерді тізімдеу үшін пайдаландыңыз. Сіз бұл пәрменді, мысалы, шақыруға болатын плагинге оңай айналдыра аласыз kubectl img.
Файл жасау kubectl-img келесі мазмұн:
#!/bin/bash
kubectl get pods -o custom-columns='NAME:metadata.name,IMAGES:spec.containers[*].image' Енді файлды пайдаланып орындалатын етіп жасаңыз chmod +x kubectl-img және оны PATH ішіндегі кез келген каталогқа жылжытыңыз. Осыдан кейін сіз плагинді бірден пайдалана аласыз. kubectl img.
Жоғарыда айтылғандай, kubectl плагиндерін кез келген бағдарламалау немесе сценарий тілінде жазуға болады. Қабық сценарийлерін пайдалансаңыз, артықшылығы - плагин ішінен kubectl-ге оңай қоңырау шалу мүмкіндігі. Дегенмен, сіз нақты бағдарламалау тілдерінде күрделі плагиндерді пайдалана аласыз Go қолданбасын пайдалансаңыз, сіз де пайдалана аласыз , ол kubectl плагиндерін жазу үшін арнайы бар.
Плагиндерді қалай бөлісуге болады
Плагиндеріңіз басқаларға пайдалы болуы мүмкін деп ойласаңыз, оларды GitHub сайтында бөлісіңіз. Оларды тақырыпқа қосуды ұмытпаңыз. .
Сондай-ақ плагинді қосуды сұрауға болады Мұны қалай жасау керектігі туралы нұсқаулар .
Пәрменді аяқтау
Қазіргі уақытта плагиндер автотолтыруды қолдамайды. Бұл толық плагин атауын және толық аргумент атауларын енгізу керек дегенді білдіреді.
GitHub репозиторийінде бұл функция үшін kubectl репозиторийі бар . Демек, бұл мүмкіндік болашақта жүзеге асуы мүмкін.
Сәттілік тілеймін !!!
Тақырып бойынша тағы не оқу керек:
- .
- .
- .
Ақпарат көзі: www.habr.com







