ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ°ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π» Josh Rosso β Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΈΠ· VMware, ΡΠ°Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°Π²ΡΠΈΠΉ Π² ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ , ΠΊΠ°ΠΊ CoreOS ΠΈ Heptio, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠΎΠ°Π²ΡΠΎΡΠΎΠΌ Kubernetes alb-ingress-controller. ΠΠ²ΡΠΎΡ Π΄Π΅Π»ΠΈΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΡΠ΅ΠΏΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π΄Π»Ρ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΏΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Β«ΡΡΠ°ΡΠΎΠΉ ΡΠΊΠΎΠ»ΡΒ», ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡΠΈΡ vim Π΄Π°ΠΆΠ΅ Π² ΡΠΏΠΎΡ Ρ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ²ΡΠ΅Π³ΠΎ cloud native.
ΠΠΈΡΠ΅ΡΠ΅ YAML-ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ Π΄Π»Ρ Kubernetes Π² vim? ΠΡΠΎΠ²Π΅Π»ΠΈ Π±Π΅ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΡΠ°ΡΡ Π² ΠΏΠΎΠΏΡΡΠΊΠ°Ρ
ΠΏΠΎΠ½ΡΡΡ, Π³Π΄Π΅ Π² ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅? Π ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π΄Ρ Π±ΡΡΡΡΠΎΠΌΡ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ args
ΠΈ command
? ΠΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠ΅ Π½ΠΎΠ²ΠΎΡΡΠΈ! Vim Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊ
(Π£ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅
Π―Π·ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ
Π―Π·ΡΠΊΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ (language servers) ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ ΠΈ IDE, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ β
Π§ΡΠΎΠ±Ρ vim Π·Π°ΡΠ°Π±ΠΎΡΠ°Π» ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ²Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
ΠΌΠ½Π΅ ΡΠΏΠΎΡΠΎΠ±Π° β ΡΡΠΎ coc.vim
β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π° Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π·
" Use release branch (Recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Or build from source code by use yarn: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° coc
(ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅ΡΠ²Π΅ΡΠ° yaml-language-server) ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ node.js:
curl -sL install-node.now.sh/lts | bash
ΠΠΎΠ³Π΄Π° coc.vim
Π½Π°ΡΡΡΠΎΠ΅Π½, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ coc-yaml
ΠΈΠ· vim’Π°:
:CocInstall coc-yaml
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Ρ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Π·Π°Ρ
ΠΎΡΠΈΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ coc-vim
, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ yaml-language-server
Π§ΡΠΎΠ±Ρ coc
ΠΌΠΎΠ³ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ yaml-language-server, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΡ
Π΅ΠΌΡ ΠΎΡ Kubernetes ΠΏΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ YAML-ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ coc-config
:
:CocConfig
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ kubernetes
Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠ°ΠΉΠ»ΠΎΠ² yaml
. Π― Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ golang
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΉ ΠΎΠ±ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
{
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod"],
"filetypes": ["go"]
}
},
"yaml.schemas": {
"kubernetes": "/*.yaml"
}
}
kubernetes
β Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠ΅Π΅ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Kubernetes-ΡΡ
Π΅ΠΌΡ ΠΏΠΎ URL, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌΡ Π² yaml.schemas
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡ
Π΅ΠΌ β ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Π²
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ YAML-ΡΠ°ΠΉΠ» ΠΈ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΆΠ°ΡΠΈΠ΅ <Ctrl>+ΠΏΡΠΎΠ±Π΅Π» (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² vim) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ:
ΠΠ΄Π΅ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ <Ctrl>+ΠΏΡΠΎΠ±Π΅Π», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ Π½Π°ΡΡΡΠΎΠΈΠ» inoremap <silent><expr> <c-space> coc#refresh()
. ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ β ΡΠΌ.
ΠΡΠ±ΠΎΡ Π²Π΅ΡΡΠΈΠΈ Kubernetes API
Π ΠΌΠΎΠΌΠ΅Π½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ yaml-language-server ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎ ΡΡ
Π΅ΠΌΠ°ΠΌΠΈ Kubernetes 1.14.0. Π― Π½Π΅ Π½Π°ΡΡΠ» ΡΠΏΠΎΡΠΎΠ±Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΡ
Π΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΠΊΡΡΠ» server.ts
.
Π§ΡΠΎΠ±Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ YAML-ΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ vim ΠΈ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Ρ yaml-language-server
.
ps aux | grep -i yaml-language-server
joshrosso 2380 45.9 0.2 5586084 69324 ?? S 9:32PM 0:00.43 /usr/local/Cellar/node/13.5.0/bin/node /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js --node-ipc --node-ipc --clientProcessId=2379
joshrosso 2382 0.0 0.0 4399352 788 s001 S+ 9:32PM 0:00.00 grep -i yaml-language-server
ΠΠ»Ρ Π½Π°Ρ Π°ΠΊΡΡΠ°Π»Π΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ 2380: ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ vim Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ YAML-ΡΠ°ΠΉΠ»Π°.
ΠΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠ°ΠΉΠ» ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π² /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js
. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ KUBERNETES_SCHEMA_URL
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Π²Π΅ΡΡΠΈΡ 1.17.0:
// old 1.14.0 schema
//exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/garethr/kubernetes-json-schema/master/v1.14.0-standalone-strict/all.json";
// new 1.17.0 schema in instrumenta repo
exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.17.0-standalone-strict/all.json";
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ coc-yaml
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ garethr
Π½Π° instrumenta
. ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ garethr
ΠΏΠ΅ΡΠ΅ΡΡΠ» Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡ
Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌ.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠΏΠΈΠ»ΠΎ Π² ΡΠΈΠ»Ρ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠΎΠ»Π΅, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½ΡΡΠ΅ [Π² ΠΏΡΠΎΡΠ»ΡΡ
Π²Π΅ΡΡΠΈΡΡ
Kubernetes] Π½Π΅ Π±ΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡ
Π΅ΠΌΠ΅ Π΄Π»Ρ K8s 1.14 Π½Π΅ Π±ΡΠ»ΠΎ
Π Π΅Π·ΡΠΌΠ΅
ΠΠ°Π΄Π΅ΡΡΡ, ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ°Π΄ΠΎΠ²Π°Π»Π° Π²Π°Ρ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½Ρ. Π‘ΡΠ°ΡΡΠ»ΠΈΠ²ΠΎΠ³ΠΎ YAML’ΠΈΠ½Π³Π°! ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΡΠΈΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΌΠΈ Π² ΡΡΠ°ΡΡΠ΅:
- coc-vim:
https://github.com/neoclide/coc.nvim ; - coc-yaml:
https://github.com/neoclide/coc-yaml .
P.S. ΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°
Π Π΅ΡΡ Π΅ΡΡΡ
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
kubebox ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ Π΄Π»Ρ Kubernetes Β»; - Β«
ΠΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kubernetes ΡΠ΅ΡΠ΅Π· kubectl Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com