k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

K9s เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจŸเจฐเจฎเฉ€เจจเจฒ เจฏเฉ‚เจœเจผเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจŸเฉ€เจšเจพ K8s เจตเจฟเฉฑเจš เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจจเฉˆเจตเฉ€เจ—เฉ‡เจŸ เจ•เจฐเจจเจพ, เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจเจพ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆเฅค K9s เจฒเจ—เจพเจคเจพเจฐ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เฉ€เจคเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจคเฉ‡เจœเจผ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ—เฉ‹ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจกเฉ‡เจข เจธเจพเจฒ เจคเฉ‹เจ‚ เจตเฉฑเจง เจนเฉ‹ เจ—เจฟเจ† เจนเฉˆ: เจชเจนเจฟเจฒเฉ€ เจชเฉเจฐเจคเฉ€เจฌเฉฑเจงเจคเจพ 1 เจซเจฐเจตเจฐเฉ€, 2019 เจจเฉ‚เฉฐ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เฉฑเจฅเฉ‡ 9000+ เจคเจพเจฐเฉ‡ เจนเจจ GitHub เจ…เจคเฉ‡ เจฒเจ—เจญเจ— 80 เจฏเฉ‹เจ—เจฆเจพเจจ เจชเจพเจ‰เจฃ เจตเจพเจฒเฉ‡เฅค เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ k9s เจ•เฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ?

เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจฒเจพเจ‚เจš

เจ‡เจน เจ‡เฉฑเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ (เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจš) เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจนเฉˆ เจœเฉ‹ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจตเจœเฉ‹เจ‚ เจšเจฒเจพเจ‰เจฃเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจนเฉˆ:

docker run --rm -it -v $KUBECONFIG:/root/.kube/config quay.io/derailed/k9s

เจ•เฉเจ เจฒเฉ€เจจเจ•เจธ เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฒเจˆ, เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจตเฉ€ เจนเจจ เจชเฉˆเจ•เฉ‡เจœ. เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฒเฉ€เจจเจ•เจธ เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจซเจพเจˆเจฒ เจธเจฅเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

sudo wget -qO- https://github.com/derailed/k9s/releases/download/v0.22.0/k9s_Linux_x86_64.tar.gz | tar zxvf -  -C /tmp/
sudo mv /tmp/k9s /usr/local/bin

K8s เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจ•เฉ‹เจˆ เจ–เจพเจธ เจฒเฉ‹เฉœเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจเฅค เจธเจฎเฉ€เจ–เจฟเจ†เจตเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจชเฉเจฐเจพเจฃเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ 1.12 เจฆเฉ‡ เจจเจพเจฒ เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจ•เฉŒเจ‚เจซเจฟเจ— เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ .kube/config - เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจฆเฉ‡ เจธเจฎเจพเจจ kubectl.

เจจเฉ‡เจตเฉ€เจ—เฉ‡เจธเจผเจจ

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจธเฉฐเจฆเจฐเจญ เจฒเจˆ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจกเจฟเจซเฉŒเจฒเจŸ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฟเฉฐเจกเฉ‹ เจ–เฉเฉฑเจฒเฉเจนเจฆเฉ€ เจนเฉˆเฅค เจญเจพเจต, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฒเจฟเจ–เจฟเจ† เจธเฉ€ kubectl config set-context --current --namespace=test, เจซเจฟเจฐ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจ–เฉเฉฑเจฒ เจœเจพเจตเฉ‡เจ—เจพ test. (เจชเฉเจฐเจธเฉฐเจ—/เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจฌเจฆเจฒเจฃ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹เฅค)

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจตเฉฑเจฒ เจœเจพ เจ•เจฎเจพเจ‚เจก เจฎเฉ‹เจก ":" เจฆเจฌเจพ เจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ k9s เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเฉฑเจŸเจธ (เจฎเฉŒเจœเฉ‚เจฆเจพ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจตเจฟเฉฑเจš) เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเฉ‡เจ–เจฃ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฆเจพเจ–เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ :sts.

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจ•เฉเจ เจนเฉ‹เจฐ เจธเจฐเฉ‹เจคเจพเจ‚ เจฒเจˆ:

  • :ns - เจจเจพเจฎ-เจธเจฅเจพเจจ;
  • :deploy - เจคเฉˆเจจเจพเจคเฉ€เจ†เจ‚;
  • :ing - เจชเฉเจฐเจตเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ;
  • :svc - เจธเฉ‡เจตเจพเจตเจพเจ‚เฅค

เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจธเจฐเฉ‹เจค เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉ‚เจšเฉ€ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจนเฉˆ :aliases.

เจฎเฉŒเจœเฉ‚เจฆเจพ เจตเจฟเฉฐเจกเฉ‹ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ—เจฐเจฎ เจ•เฉเฉฐเจœเฉ€ เจธเฉฐเจœเฉ‹เจ—เจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ‰เจชเจฒเจฌเจง เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃเจพ เจตเฉ€ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆ: เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, "?" 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹เฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

k9s เจตเจฟเฉฑเจš เจตเฉ€ เจนเฉˆ เจ–เฉ‹เจœ เจฎเฉ‹เจก, เจœเจฟเจธ 'เจคเฉ‡ เจœเจพเจฃ เจฒเจˆ เจ‡เจน "/" เจฆเจฐเจœ เจ•เจฐเจจเจพ เจ•เจพเจซเจผเฉ€ เจนเฉˆเฅค เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ, เจฎเฉŒเจœเฉ‚เจฆเจพ "เจตเจฟเฉฐเจกเฉ‹" เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ 'เจคเฉ‡ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจฎเฉฐเจจ เจฒเจ“ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฆเจพเจ–เจฒ เจนเฉ‹เจ เจธเฉ€ :ns, เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจจเจพเจฎ-เจธเจฅเจพเจจเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจ–เฉเฉฑเจฒเฉเจนเฉ€ เจนเฉˆเฅค เจœเฉ‡ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจนเจจ, เจคเจพเจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจธเจ•เฉเจฐเฉŒเจฒ เจจเจพ เจ•เจฐเจจ เจฒเจˆ, เจจเจพเจฎ-เจธเจฅเจพเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจตเจฟเฉฐเจกเฉ‹ เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒ เจนเฉ‹เจฃเจพ เจ•เจพเจซเจผเฉ€ เจนเฉˆ /mynamespace.

เจฒเฉ‡เจฌเจฒ เจฆเฉเจ†เจฐเจพ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจจเจพเจฎ-เจธเจฅเจพเจจ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจชเฉŒเจก เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจซเจฟเจฐ เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, / -l app=whoami. เจธเจพเจจเฉ‚เฉฐ เจ‡เจธ เจฒเฉ‡เจฌเจฒ เจจเจพเจฒ เจชเฉŒเจกเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฎเจฟเจฒเฉ‡เจ—เฉ€:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ–เฉ‹เจœ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจฒเฉŒเจ—เจธ, YAML เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเฉ‡เจ–เจฃเจพ, เจ…เจคเฉ‡ describe เจธเจฐเฉ‹เจคเจพเจ‚ เจฒเจˆ - เจ‡เจนเจจเจพเจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเฉ‡เจ–เฉ‹เฅค

เจธเจฎเฉเฉฑเจšเจพ เจจเฉˆเจตเฉ€เจ—เฉ‡เจธเจผเจจ เจชเฉเจฐเจตเจพเจน เจ•เจฟเจนเฉ‹ เจœเจฟเจนเจพ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ?

เจนเฉเจ•เจฎ เจจเจพเจฒ :ctx เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉฐเจฆเจฐเจญ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ‡เฉฑเจ• เจจเฉ‡เจฎเจธเจชเฉ‡เจธ เจšเฉเจฃเจจ เจฒเจˆ, เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจœเจผเจฟเจ•เจฐ เจ•เฉ€เจคเฉ€ เจ•เจฎเจพเจ‚เจก เจนเฉˆ :ns, เจ…เจคเฉ‡ เจซเจฟเจฐ เจคเฉเจธเฉ€เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจฅเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: /test.

เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจนเฉเจฃ เจ‰เจธ เจธเจฐเฉ‹เจค เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจพเจกเฉ€ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ‰เจนเฉ€ เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเฉฑเจŸ), เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เฉ€: เจ‰เจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ เจ•เจฟเฉฐเจจเฉ‡ เจชเฉŒเจก เจšเฉฑเจฒ เจฐเจนเฉ‡ เจนเจจเฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจธเจฟเจฐเจซ เจชเฉŒเจกเจธ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเฉ‡ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ - เจซเจฟเจฐ เจ‡เจน เจฆเจพเจ–เจฒ เจนเฉ‹เจฃ เจฒเจˆ เจ•เจพเจซเฉ€ เจนเฉˆ :pod. ConfigMaps เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš (:cm - เจ‡เจนเจจเจพเจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฒเจˆ), เจคเฉเจธเฉ€เจ‚ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฆเฉ€ เจตเจธเจคเฉ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ "u" 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ K9s เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเฉ‡เจ—เจพ เจ•เจฟ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉŒเจฃ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ‡เจน CM)เฅค

เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ‡เจ• เจนเฉ‹เจฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจนเฉˆ "เจเจ•เจธ-เจฐเฉ‡" (เจเจ•เจธเจฐเฉ‡ เจฆเฉเจฐเจฟเจธเจผ). เจ‡เจธ เจฎเฉ‹เจก เจจเฉ‚เฉฐ เจ•เจฎเจพเจ‚เจก เจฆเฉเจ†เจฐเจพ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ :xray RESOURCE เจ…เจคเฉ‡ ... เจธเจฎเจเจพเจ‰เจฃ เจจเจพเจฒเฉ‹เจ‚ เจ‡เจน เจฆเจฟเจ–เจพเจ‰เจฃเจพ เจ†เจธเจพเจจ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจธเจŸเฉ‡เจŸเจซเฉเจฒเจธเฉˆเจŸเจธ เจฒเจˆ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจนเฉˆ:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ
(เจ‡เจนเจจเจพเจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเจฐเฉ‡เจ• เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค, เจฌเจฆเจฒเจฟเจ†, เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ describe.)

เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจฆเจพเจ–เจฒเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจคเฉˆเจจเจพเจคเฉ€ เจนเฉˆ:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ

เจคเฉเจธเฉ€เจ‚ YAML เจœเจพเจ‚ เจ‡เจธเจฆเฉ‡ เจตเจฟเฉฑเจš เจนเจฐเฉ‡เจ• เจธเจฐเฉ‹เจค เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ describe เจธเฉฐเจฌเฉฐเจงเจฟเจค เจ•เฉ€เจฌเฉ‹เจฐเจก เจธเจผเจพเจฐเจŸเจ•เฉฑเจŸ (เจ•เฉเจฐเจฎเจตเจพเจฐ โ€œyโ€ เจ…เจคเฉ‡ โ€œdโ€) เจจเฉ‚เฉฐ เจฆเจฌเจพ เจ•เฉ‡เฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‡เฉฑเจฅเฉ‡ เจนเฉ‹เจฐ เจตเฉ€ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจนเจจ: เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจ…เจคเฉ‡ เจ•เฉ€เจฌเฉ‹เจฐเจก เจธเจผเจพเจฐเจŸเจ•เฉฑเจŸ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• "เจธเจฟเจฐเจฒเฉ‡เจ–" (Ctrl + e เจฆเจฌเจพ เจ•เฉ‡ เจฒเฉเจ•เจพเจ เจ—เจ) เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเจฎเฉ‡เจธเจผเจพ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจเฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ•เจฟเจธเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ ("e" เจ‡เจธเจฆเฉ€ เจšเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ), เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจŸเฉˆเจ•เจธเจŸ เจเจกเฉ€เจŸเจฐ เจ–เฉ‹เจฒเฉเจนเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ (export EDITOR=vim).

เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจฐเฉ‹เจค เจฆเจพ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเฉ‡เจฐเจตเจพ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ (describe):

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ‡เจน เจ†เจ‰เจŸเจชเฉเฉฑเจŸ (เจœเจพเจ‚ YAML เจธเจฐเฉ‹เจค เจฎเฉˆเจจเฉ€เจซเฉˆเจธเจŸ เจฆเฉ‡เจ–เจฃ เจฆเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ) เจœเจพเจฃเฉ‡-เจชเจ›เจพเจฃเฉ‡ เจ•เฉ€เจฌเฉ‹เจฐเจก เจธเจผเจพเจฐเจŸเจ•เฉฑเจŸ Ctrl + s เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ•เจฟเฉฑเจฅเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ K9s เจธเฉเจจเฉ‡เจนเฉ‡ เจคเฉ‹เจ‚ เจœเจพเจฃเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพ:

Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!

เจคเฉเจธเฉ€เจ‚ เจธเจฟเจธเจŸเจฎ เจฒเฉ‡เจฌเจฒ เจ…เจคเฉ‡ เจเจจเฉ‹เจŸเฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจฌเจฃเจพเจˆเจ†เจ‚ เจ—เจˆเจ†เจ‚ เจฌเฉˆเจ•เจ…เฉฑเจช เจซเจพเจˆเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเฉ‹เจฐ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ (:dir /tmp), เจซเจฟเจฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจซเจพเจˆเจฒ เจšเฉเจฃเฉ‹ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ‹ apply.

เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ, เจœเฉ‡เจ•เจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจ‡เฉฑเจ• เจจเจพเจฒ เจ•เฉ‹เจˆ เจธเจฎเฉฑเจธเจฟเจ† เจนเฉˆ เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฎเฉ‡เจ‚ เจชเจฟเจ›เจฒเฉ€ เจฐเฉ€เจชเจฒเฉ€เจ•เจพเจธเฉˆเฉฑเจŸ 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ RS (:rs เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจฒเจˆ):

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

... เจ…เจคเฉ‡ Ctrl + l เจจเจพเจฒ เจฐเฉ‹เจฒเจฌเฉˆเจ•. เจธเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉ‚เจšเจจเจพ เจฎเจฟเจฒเจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจ•เจฟ เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ:

k9s/whoami-5cfbdbb469 successfully rolled back

เจ…เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจ•เฉ‡เจฒ เจ•เจฐเจจ เจฒเจˆ, เจธเจฟเจฐเจซเจผ "s" (เจธเจ•เฉ‡เจฒ) 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‹:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจคเฉเจธเฉ€เจ‚ เจธเจผเฉˆเฉฑเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจฆเจพเจ–เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจชเฉŒเจก 'เจคเฉ‡ เจœเจพเจ“, "s" (เจธเจผเฉˆเฉฑเจฒ) 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‹เฅค

เจนเฉ‹เจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚

เจฌเฉ‡เจธเจผเฉฑเจ•, เจฒเฉŒเจ— เจฆเฉ‡เจ–เจฃเจพ เจตเฉ€ เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆ (เจšเฉเจฃเฉ‡ เจธเจฐเฉ‹เจค เจฒเจˆ "l")เฅค เจ…เจคเฉ‡ เจจเจตเฉ‡เจ‚ เจฒเฉŒเจ—เจธ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฃ เจฒเจˆ, เจฒเจ—เจพเจคเจพเจฐ เจเจ‚เจŸเจฐ เจฆเจฌเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ: เจ‡เจน (โ€œmโ€) เจฎเจพเจฐเจ• เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจธเจฟเจฐเจซเจผ เจจเจตเฉ‡เจ‚ เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจŸเจฐเฉˆเจ• เจ•เจฐเฉ‹เฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ‰เจธเฉ‡ เจตเจฟเฉฐเจกเฉ‹ เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจฒเฉŒเจ—เจธ เจฆเฉ‡ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจฒเจˆ เจธเจฎเจพเจ‚ เจธเฉ€เจฎเจพ เจšเฉเจฃ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

  • เจ•เฉเฉฐเจœเฉ€ "1" - 1 เจฎเจฟเฉฐเจŸ เจฒเจˆ;
  • "2" - 5 เจฎเจฟเฉฐเจŸ;
  • "3" - 15 เจฎเจฟเฉฐเจŸ;
  • "4" - 30 เจฎเจฟเฉฐเจŸ;
  • "5" - 1 เจ˜เฉฐเจŸเจพ;
  • "0" - เจชเฉ‹เจก เจฆเฉ‡ เจชเฉ‚เจฐเฉ‡ เจœเฉ€เจตเจจ เจ•เจพเจฒ เจฒเจˆเฅค

เจตเจฟเจธเจผเฉ‡เจธเจผ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจฎเฉ‹เจก เจชเจฒเจธ (เจ•เจฎเจพเจ‚เจก :pulse) เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจพเจฐเฉ‡ เจ†เจฎ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจ‡เจธ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ (เจนเจฐเฉ‡ เจฐเฉฐเจ— เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจœเจฟเจนเจจเจพเจ‚ เจ•เฉ‹เจฒ เจธเจฅเจฟเจคเฉ€ เจนเฉˆ Running).

K9s เจฆเฉ€ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจผเจพเจจเจฆเจพเจฐ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจชเฉ‹เจชเจฏ. เจ‡เจน เจธเจผเฉเฉฑเจงเจคเจพ เจฆเฉ‡ เจ•เฉเจ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจฒเจˆ เจธเจพเจฐเฉ‡ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจธเจชเจธเจผเจŸเฉ€เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ "เจฐเฉ‡เจŸเจฟเฉฐเจ—" เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจ•เจพเจซเจผเฉ€ เจจเจฎเฉ‚เจจเฉ‡ เจœเจพเจ‚ เจธเฉ€เจฎเจพเจตเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจ•เฉเจ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฐเฉ‚เจŸ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจšเฉฑเจฒ เจธเจ•เจฆเฉ‡ เจนเจจ ...

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจนเฉˆเจฒเจฎ เจฒเจˆ เจฎเฉเฉฑเจขเจฒเฉ€ เจธเจนเจพเจ‡เจคเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจคเฉˆเจจเจพเจค เจฐเฉ€เจฒเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹:

:helm all # ะฒัะต
:helm $namespace # ะฒ ะบะพะฝะบั€ะตั‚ะฝะพะผ ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะต ะธะผะตะฝ

เจฌเฉ‡เจ‚เจšเจฎเจพเจฐเจ•

เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ K9s เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† Hey เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ HTTP เจธเจฐเจตเจฐ เจฒเฉ‹เจก เจœเจจเจฐเฉ‡เจŸเจฐ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฌเจฟเจนเจคเจฐ เจœเจพเจฃเฉ‡ เจœเจพเจ‚เจฆเฉ‡ ab (ApacheBench) เจฆเจพ เจตเจฟเจ•เจฒเจช เจนเฉˆเฅค

เจ‡เจธเจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉŒเจก เจตเจฟเฉฑเจš เจชเฉ‹เจฐเจŸ-เจซเจพเจฐเจตเจฐเจก เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจชเฉŒเจก เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ Shift + f เจฆเจฌเจพเจ“, "pf" เจ‰เจชเจจเจพเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉ‹เจฐเจŸ-เจซเจพเจฐเจตเจฐเจก เจธเจฌเจฎเฉ‡เจจเฉ‚ 'เจคเฉ‡ เจœเจพเจ“เฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจชเฉ‹เจฐเจŸ เจจเฉ‚เฉฐ เจšเฉเจฃเจจ เจ…เจคเฉ‡ Ctrl + b เจฆเจฌเจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจ†เจชเจฃเฉ‡ เจ†เจช เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจตเจฟเจš เจ‰เจธ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ /tmp เจ…เจคเฉ‡ K9s เจตเจฟเฉฑเจš เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ‰เจชเจฒเจฌเจง เจนเจจเฅค

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ
k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจฌเฉˆเจ‚เจšเจฎเจพเจฐเจ• เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ $HOME/.k9s/bench-<my_context>.yml (เจนเจฐเฉ‡เจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจจเจฟเจฐเจงเจพเจฐเจฟเจค)เฅค

เจจเฉ‹เจŸ: เจ‡เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ YAML เจซเจพเจˆเจฒเจพเจ‚ เจฆเจพ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ .k9s เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจธเฉ€ .yml (.yaml เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ).

เจธเฉฐเจฐเจšเจจเจพ เจ‰เจฆเจพเจนเจฐเจจ:

benchmarks:
  defaults:
    # ะšะพะปะธั‡ะตัั‚ะฒะพ ะฟะพั‚ะพะบะพะฒ
    concurrency: 2
    # ะšะพะปะธั‡ะตัั‚ะฒะพ ะทะฐะฟั€ะพัะพะฒ
    requests: 1000
  containers:
    # ะะฐัั‚ั€ะพะนะบะธ ะดะปั ะบะพะฝั‚ะตะนะฝะตั€ะฐ ั ะฑะตะฝั‡ะผะฐั€ะบะพะผ
    # ะšะพะฝั‚ะตะนะฝะตั€ ะพะฟั€ะตะดะตะปัะตั‚ัั ะบะฐะบ namespace/pod-name:container-name
    default/nginx:nginx:
      concurrency: 2
      requests: 10000
      http:
        path: /
        method: POST
        body:
          {"foo":"bar"}
        header:
          Accept:
            - text/html
          Content-Type:
            - application/json
 services:
    # ะœะพะถะฝะพ ะฟั€ะพะฒะพะดะธั‚ัŒ ะฑะตะฝั‡ะผะฐั€ะบ ะฝะฐ ัะตั€ะฒะธัะฐั… ั‚ะธะฟะฐ NodePort ะธ LoadBalancer
    # ะกะธะฝั‚ะฐะบัะธั: namespace/service-name
    default/nginx:
      concurrency: 5
      requests: 500
      http:
        method: GET
        path: /auth
      auth:
        user: flant
        password: s3cr3tp455w0rd

เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเฉ‚เจšเฉ€เจ†เจ‚ เจฒเจˆ เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉ€ เจฆเจฟเฉฑเจ– เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพ เจ•เฉ‡ เจธเฉ‹เจงเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ $HOME/.k9s/views.yml. เจ‡เจธเจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ:

k9s:
 views:
   v1/pods:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - IP
       - NODE
       - STATUS
       - READY
   v1/services:
     columns:
       - AGE
       - NAMESPACE
       - NAME
       - TYPE
       - CLUSTER-IP

เจ‡เจน เจธเฉฑเจš เจนเฉˆ เจ•เจฟ เจฒเฉ‡เจฌเจฒ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจ•เจพเจฒเจฎ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจœเจฟเจธ เจฒเจˆ เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจฎเฉเฉฑเจฆเจพ.

เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉเจ†เจฐเจพ เจ›เจพเจ‚เจŸเจฃเจพ เจ•เฉ€เจฌเฉ‹เจฐเจก เจธเจผเจพเจฐเจŸเจ•เฉฑเจŸ เจฆเฉเจ†เจฐเจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

  • เจธเจผเจฟเจซเจŸ + n - เจจเจพเจฎ เจฆเฉเจ†เจฐเจพ;
  • เจธเจผเจฟเจซเจŸ + เจ“ - เจจเฉ‹เจก เจฆเฉเจ†เจฐเจพ;
  • Shift + i - IP เจฆเฉเจ†เจฐเจพ;
  • เจธเจผเจฟเจซเจŸ + เจ - เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‡ เจœเฉ€เจตเจจ เจ•เจพเจฒ เจฆเฉเจ†เจฐเจพ;
  • เจธเจผเจฟเจซเจŸ + เจŸเฉ€ - เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉเจ†เจฐเจพ;
  • เจธเจผเจฟเจซเจŸ + เจ†เจฐ - เจคเจฟเจ†เจฐเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉเจ†เจฐเจพ;
  • เจธเจผเจฟเจซเจŸ + c - CPU เจ–เจชเจค เจฆเฉเจ†เจฐเจพ;
  • Shift + m - เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€ เจ–เจชเจค เจฆเฉเจ†เจฐเจพเฅค

เจœเฉ‡เจ•เจฐ เจ•เจฟเจธเฉ‡ เจจเฉ‚เฉฐ เจกเจฟเจซเฉŒเจฒเจŸ เจฐเฉฐเจ— เจธเจ•เฉ€เจฎ เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจคเจพเจ‚ K9s เจตเฉ€ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจ›เจฟเฉฑเจฒ. เจคเจฟเจ†เจฐ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ (7 เจŸเฉเจ•เฉœเฉ‡) เจ‰เจชเจฒเจฌเจง เจนเจจ เจ‡เฉฑเจฅเฉ‡. เจ‡เฉฑเจฅเฉ‡ เจ‡เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจ›เจฟเฉฑเจฒ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจนเฉˆ (เจจเฉ‡เจตเฉ€ เจตเจฟเฉฑเจš):

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจชเจฒเฉฑเจ—เจ‡เจจ

เจ…เฉฐเจค เจตเจฟเฉฑเจš เจชเจฒเฉฑเจ—เจ‡เจจ เจคเฉเจนเจพเจจเฉ‚เฉฐ K9s เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ–เฉเจฆ เจ†เจชเจฃเฉ‡ เจ•เฉฐเจฎ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ - kubectl get all -n $namespace.

เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจธเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฌเจฃเจพเจ“ $HOME/.k9s/plugin.yml เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€ เจธเจฎเฉฑเจ—เจฐเฉ€ เจฆเฉ‡ เจจเจพเจฒ:

plugin:
 get-all:
   shortCut: g    
   confirm: false    
   description: get all
   scopes:
   - all
   command: sh
   background: false
   args:
   - -c
   - "kubectl -n $NAMESPACE get all -o wide | less"

เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจจเฉ‡เจฎเจธเจชเฉ‡เจธ 'เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ "g" เจฆเจฌเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

k9s เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจช เจœเจพเจฃเจ•เจพเจฐเฉ€ - เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เฉฑเจจเจค เจŸเจฐเจฎเฉ€เจจเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ

เจชเจฒเฉฑเจ—เจ‡เจจเจพเจ‚ เจตเจฟเฉฑเจš, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, kubectl-jq เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจ…เจคเฉ‡ เจฒเฉŒเจ— เจฆเฉ‡เจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจนเจจ เจธเจŸเฉ€เจจ.

เจธเจฟเฉฑเจŸเจพ

เจฎเฉ‡เจฐเฉ‡ เจธเจตเจพเจฆ เจฒเจˆ, K9s เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจธเจพเจฌเจค เจนเฉ‹เจ‡เจ†: เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ†เจชเจฃเฉ€ เจฒเฉ‹เฉœ เจตเจพเจฒเฉ€ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจ†เจฆเจค เจชเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค kubectl. เจฎเฉˆเจ‚ เจฒเฉŒเจ—เจธ เจฆเฉ‡ เจฆเฉเจฐเจฟเจธเจผ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฌเจšเจค, เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเจพ เจคเฉ‡เจœเจผ เจธเฉฐเจชเจพเจฆเจจ, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เฉฐเจฎ เจฆเฉ€ เจ—เจคเฉ€ *, เจชเฉ‹เจชเฉ€เจ เจฎเฉ‹เจก เจฒเจพเจญเจฆเจพเจ‡เจ• เจธเจพเจฌเจค เจนเฉ‹เจ‡เจ† เจธเฉ€. เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจœเจผเจฟเจ•เจฐ เจชเจฒเฉฑเจ—เจ‡เจจ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจœเจผเจฐเฉ‚เจฐเจคเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจฒเจˆ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเฉ‹เจงเจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจนเฉˆเฅค

* เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจฒเฉŒเจ—เจธ เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจฆเฉ‡ เจจเจพเจฒ, เจฎเฉˆเจ‚ K9s เจฆเฉ€ เจนเฉŒเจฒเฉ€ เจ•เจพเจฐเจตเจพเจˆ เจจเฉ‚เฉฐ เจตเฉ€ เจฆเฉ‡เจ–เจฟเจ†เฅค เจ…เจœเจฟเจนเฉ‡ เจชเจฒเจพเจ‚ 'เจคเฉ‡, เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‡ Intel Xeon E2xx เจคเฉ‹เจ‚ 312 เจ•เฉ‹เจฐ "เจ–เจพเจ" เจ…เจคเฉ‡ เจซเฉเจฐเฉ€เจœเจผ เจตเฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ‡เจธ เจธเจฎเฉ‡เจ‚ เจ•เฉ€ เจ—เฉเฉฐเจฎ เจนเฉˆ? เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ 'เจคเฉ‡ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจชเจฟเจ›เจฒเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ (RS เจฌเจพเจฐเฉ‡ เจจเจนเฉ€เจ‚) 'เจคเฉ‡ เจคเฉเจฐเฉฐเจค เจฐเฉ‹เจฒเจฌเฉˆเจ•เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฐเจฟเจ•เจตเจฐเฉ€ เจธเจฟเจฐเจซ เจฒเจˆ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เฉเฉฑเจฒ เจธเจฐเฉ‹เจค: เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจเจจเฉ‹เจŸเฉ‡เจธเจผเจจ เจœเจพเจ‚ เจฒเฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ‡ เจธเจฐเฉ‹เจค เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจฐเฉ€เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ (เจ‡เจน เจ‰เจน เจฅเจพเจ‚ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ)เฅค เจ‡เจ• เจนเฉ‹เจฐ เจฎเจพเจฎเฉ‚เจฒเฉ€ - เจ…เจœเจฟเจนเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เฉ€เจคเฉ‡ "เจฌเฉˆเจ•เจ…เฉฑเจช" เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจคเจพเจฐเฉ€เจ– เจจเจนเฉ€เจ‚ เจนเฉˆ.

PS

เจธเจพเจกเฉ‡ เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจตเฉ€ เจชเฉœเฉเจนเฉ‹:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹