เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจŸเจฟเจชเจธ เจ…เจคเฉ‡ เจŸเฉเจฐเจฟเจ•เจธ: เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆ

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจŸเจฟเจชเจธ เจ…เจคเฉ‡ เจŸเฉเจฐเจฟเจ•เจธ: เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆ

Kubectl เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ…เจคเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจ‡เฉฑเจ• เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจŸเฉ‚เจฒ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเจฐ เจฐเฉ‹เจœเจผ เจตเจฐเจคเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจจเจพเจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจธเจฟเจธเจŸเจฎ เจœเจพเจ‚ เจ‡เจธ เจฆเฉ€เจ†เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‡เฉฑเจฅเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ 'เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจ•เฉ‹เจก เจ…เจคเฉ‡ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจฎเจฆเจฆเจ—เจพเจฐ เจธเฉเจเจพเจ… เจฆเจฟเฉฑเจคเฉ‡ เจ—เจ เจนเจจเฅค

kubectl เจ†เจŸเฉ‹เจ•เฉฐเจชเจฒเฉ€เจŸ

เจคเฉเจธเฉ€เจ‚ เจนเจฐ เจธเจฎเฉ‡เจ‚ Kubectl เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เจ—เฉ‡, เจ‡เจธเจฒเจˆ เจ†เจŸเฉ‹เจ•เฉฐเจชเจฒเฉ€เจŸ เจฆเฉ‡ เจจเจพเจฒ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจ•เฉเฉฐเจœเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจฎเจพเจฐเจจเฉ€เจ†เจ‚ เจชเฉˆเจฃเจ—เฉ€เจ†เจ‚เฅค

เจชเจนเจฟเจฒเจพเจ‚ bash-completion เจชเฉˆเจ•เฉ‡เจœ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ (เจ‡เจน เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฐเจธเจŸเจพเจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ)เฅค

  • เจฒเฉ€เจจเจ•เจธ

## Install
apt-get install bash-completion
## Bash
echo 'source <(kubectl completion bash)' >>~/.bashrc
## Zsh
source <(kubectl completion zsh)

  • เจฎเฉˆเจ•เฉ‹เจธ

## Install
brew install bash-completion@2

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจฌเจฐเจฟเจŠ เจ‡เฉฐเจธเจŸเจพเจฒ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ (เจ•เจตเฉ€เจเจŸเจธ เจธเฉˆเจ•เจธเจผเจจ) เจตเจฟเฉฑเจš เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ ~/.bashrc ะธะปะธ ~/.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

kubectl เจ‰เจชเจจเจพเจฎ

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ kubectl เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‰เจชเจจเจพเจฎ เจนเจจ, เจ‡เจธ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ:

alias k='kubectl'

เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจนเฉˆ - เจซเจฟเจฐ เจ—เจฟเจฅเจฌ 'เจคเฉ‡ kubectl-aliases 'เจคเฉ‡ เจ‡เฉฑเจ• เจจเจœเจผเจฐ เจฎเจพเจฐเฉ‹เฅค เจ…เจนเจฟเจฎเจค เจ…เจฒเจช เจฌเจพเจฒเจ•เจจ (https://twitter.com/ahmetb) เจ‰เจนเจจเจพเจ‚ เจฌเจพเจฐเฉ‡ เจฌเจนเฉเจค เจ•เฉเจ เจœเจพเจฃเจฆเจพ เจนเฉˆ, github 'เจคเฉ‡ เจ‰เจธเจฆเฉ‡ เจ‰เจชเจจเจพเจฎเจพเจ‚ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจœเจพเจฃเฉ‹

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจŸเจฟเจชเจธ เจ…เจคเฉ‡ เจŸเฉเจฐเจฟเจ•เจธ: เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆ

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

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ + เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ

ยซเจนเฉ‡เจฒเจฎ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฒเจˆ เจฌเจฃเจพเจ เจ—เจ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจ–เฉ‹เจœเจฃ, เจตเฉฐเจกเจฃ เจ…เจคเฉ‡ เจตเจฐเจคเจฃ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจคเจฐเฉ€เจ•เจพ เจนเฉˆเฅค"

เจœเจฆเฉ‹เจ‚ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจฆเจฐเจฆ เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ–เจพเจธ เจ•เจฐเจ•เฉ‡ เจœเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจคเฉ€ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจกเฉŒเจ•เจฐ เจšเจฟเฉฑเจคเจฐ เจŸเฉˆเจ— เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ เจชเฉˆเจ•เฉ‡เจœ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจœเจฟเจธ เจจเจพเจฒ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจจเจพ เจจเฉ‚เฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจชเจกเฉ‡เจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจ‰เจน เจฐเฉ€เจฒเฉ€เจœเจผ เจธเจฟเจธเจŸเจฎ เจฆเฉเจ†เจฐเจพ เจ•เจฒเฉฑเจธเจŸเจฐ 'เจคเฉ‡ เจฒเจพเจ‚เจš เจ•เฉ€เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจŸเจฟเจชเจธ เจ…เจคเฉ‡ เจŸเฉเจฐเจฟเจ•เจธ: เจ‰เจคเจชเจพเจฆเจ•เจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจตเจงเจพเจ‰เจฃเจพ เจนเฉˆ

เจนเฉˆเจฒเจฎ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• Kubernetes เจชเฉˆเจ•เฉ‡เจœ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจšเจพเจฐเจŸ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจ‡เฉฑเจ• Kubernetes เจ‰เจฆเจพเจนเจฐเจฃ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจธเฉฐเจฐเจšเจจเจพ เจฌเจนเฉเจค เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉˆ: เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉˆ เจ•เจฟ เจšเจพเจฐเจŸ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เฉฑเจ• เจฐเฉ€เจฒเฉ€เจœเจผ เจ‡เฉฑเจ• เจ–เจพเจธ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ‡ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ† เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉŒเจœเฉ‚เจฆเจพ เจ‰เจฆเจพเจนเจฐเจจ เจนเฉˆเฅค

apt เจœเจพเจ‚ yum เจฆเฉ‡ เจ‰เจฒเจŸ, เจนเฉˆเจฒเจฎ เจšเจพเจฐเจŸ (เจ…เจฐเจฅเจพเจค เจชเฉˆเจ•เฉ‡เจœ) เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฌเจฃเจพเจ เจ—เจ เจนเจจ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเจพ เจชเฉ‚เจฐเจพ เจซเจพเจ‡เจฆเจพ เจ‰เจ เจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ, เจ…เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจตเจงเฉ€เจ† เจšเฉ€เจœเจผ เจธเจผเฉเจฐเฉ‚เจ†เจค เจคเฉ‹เจ‚ เจนเฉ€ เจฎเจพเจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจนเฉˆเฅค เจนเฉ‡เจฒเจฎ เจฆเฉเจ†เจฐเจพ เจตเจฐเจคเฉ‡ เจ—เจ เจธเจพเจฐเฉ‡ เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเฉ‡ เจšเจพเจฐเจŸ เจจเฉ‚เฉฐ เจนเฉˆเจฒเจฎ เจตเจฐเจ•เจธเจชเฉ‡เจธ เจจเจพเจฎเจ• เจฐเจœเจฟเจธเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ 'เจคเฉ‡, เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ DevOps เจŸเฉ€เจฎเจพเจ‚ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉ‡เจ‚ เจšเจพเจฐเจŸ เจฒเฉฑเจญเจฃ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸเจพเจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹ เจœเจพเจฃเจ—เฉ€เจ†เจ‚เฅค

เจนเฉˆเจฒเจฎ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเจพเจฒ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

  • เจธเจจเฉˆเจช/เจฒเฉ€เจจเจ•เจธ:

sudo snap install helm --classic

  • Homebrew/macOS:

brew install kubernetes-helm

  • เจธเจ•เฉเจฐเจฟเจชเจŸ:

curl -L https://git.io/get_helm.sh | bash

  • เจซเจพเจˆเจฒ:

https://github.com/helm/helm/releases

  • เจนเฉˆเจฒเจฎ เจจเฉ‚เฉฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจŸเจฟเจฒเจฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

helm init --history-max 200

  • เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจšเจพเจฐเจŸ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

helm repo update
helm install --name releasemysql stable/mysql

เจ‡เจน เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจธเจฅเจฟเจฐ/mysql เจšเจพเจฐเจŸ เจจเฉ‚เฉฐ เจœเจพเจฐเฉ€ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ, เจ…เจคเฉ‡ เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฐเฉ€เจฒเจฟเจœเจผเจฎเจพเจˆเจเจธเจ•เจฟเจเจฒ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
เจนเฉˆเจฒเจฎ เจธเฉ‚เจšเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจนเฉˆเจฒเจฎ เจฐเฉ€เจฒเฉ€เจœเจผ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹เฅค

  • เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฐเฉ€เจฒเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

helm delete --purge releasemysql

เจ‡เจนเจจเจพเจ‚ เจธเฉเจเจพเจตเจพเจ‚ เจฆเจพ เจชเจพเจฒเจฃ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจคเฉเจนเจพเจกเจพ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ…เจจเฉเจญเจต เจธเฉเจ–เจพเจตเจพเจ‚ เจนเฉ‹ เจœเจพเจตเฉ‡เจ—เจพเฅค เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ†เจชเจฃเฉ‡ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจฎเฉเฉฑเจ– เจŸเฉ€เจšเฉ‡ เจฒเจˆ เจ†เจชเจฃเจพ เจ–เจพเจฒเฉ€ เจธเจฎเจพเจ‚ เจธเจฎเจฐเจชเจฟเจค เจ•เจฐเฉ‹เฅค เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจœเจพเจ‚ เจนเฉ‡เจฒเจฎ เจฌเจพเจฐเฉ‡ เจ•เฉ‹เจˆ เจธเจตเจพเจฒ เจนเจจ, เจธเจพเจจเฉ‚เฉฐ เจฒเจฟเจ–เฉ‹.

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

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