เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

K9s เบชเบฐเปœเบญเบ‡เบชเปˆเบงเบ™เบ•เบดเบ”เบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰เบ›เบฒเบเบ—เบฒเบ‡เบชเบณเบฅเบฑเบšเบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบเบธเปˆเบก Kubernetes. เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Open Source เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบ™เบณเบ—เบฒเบ‡, เบ•เบดเบ”เบ•เบฒเบก เปเบฅเบฐเบˆเบฑเบ”เบเบฒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™ K8s. K9s เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ Kubernetes เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡ เปเบฅเบฐเปƒเบซเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ•เบดเบ”เบ•เบฒเบก.

เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ Go เปเบฅเบฐเป„เบ”เป‰เบกเบตเบกเบฒเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบผเบฒเบเบเบงเปˆเบฒ 1 เบ›เบตเป€เบ„เบดเปˆเบ‡เปเบฅเป‰เบง: เบเบฒเบ™เปƒเบซเป‰เบ„เบณเปเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”เป„เบ”เป‰เบˆเบฑเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 2019 เบเบธเบกเบžเบฒ 9000. เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™, เบกเบต XNUMX+ เบ”เบฒเบง GitHub เปเบฅเบฐเบœเบนเป‰เบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบ›เบฐเบกเบฒเบ™ 80 เบ„เบปเบ™. เบกเบฒเป€เบšเบดเปˆเบ‡เบเบฑเบ™เบงเปˆเบฒ k9s เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบซเบเบฑเบ‡เป„เบ”เป‰เปเบ”เปˆ?

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบง

เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒ (เบเปˆเบฝเบงโ€‹เบเบฑเบšโ€‹เบเบธเปˆเบก Kubernetesโ€‹) เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹, เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบฎเบนเบš Dockerโ€‹:

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

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเปเบฒเบซเบ™เปˆเบฒเบ Linux เบšเบฒเบ‡เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบทเปˆเบ™เป†, เบเบฑเบ‡เบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเป‰เบญเบก เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบšเบปเบš Linux เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป„เบŸเบฅเปŒเบ„เบนเปˆเป„เบ”เป‰:

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 เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เป‚เบ”เบเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš Kubernetes เบฎเบธเปˆเบ™เป€เบเบปเปˆเบฒเป€เบŠเบฑเปˆเบ™ 1.12.

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบฅเบตเปˆเบกเปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ .kube/config - เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹ kubectl.

เบ™เบณ เบ—เบฒเบ‡

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบˆเบฐเป€เบ›เบตเบ”เบ”เป‰เบงเบ namespace เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบšเปเบฅเบดเบšเบปเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ‚เบฝเบ™ kubectl config set-context --current --namespace=test, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ namespace เบˆเบฐเป€เบ›เบตเบ” test. (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เบšเปเบฅเบดเบšเบปเบ”/namespaces.)

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เป„เบ›โ€‹เบซเบฒ เบฎเบนเบšเปเบšเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบเบฒเบ™เบ„เบฅเบดเบเปƒเบชเปˆ ":". เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ k9s เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ - เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ StatefulSets (เปƒเบ™ namespace เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™) เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบชเปˆ :sts.

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ Kubernetes เบญเบทเปˆเบ™เป†:

  • :ns - Namespaces;
  • :deploy - เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹;
  • :ing - เบ‚เบฒเป€เบ‚เบปเป‰เบฒ;
  • :svc - เบšเปเบฅเบดเบเบฒเบ™.

เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ„เบปเบšเบ–เป‰เบงเบ™เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡, เบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡ :aliases.

เบกเบฑเบ™เบเบฑเบ‡เบชเบฐเบ”เบงเบเบ—เบตเปˆเบˆเบฐเป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ hotkey เบžเบฒเบเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ›เบฐเบˆเบธเบšเบฑเบ™: เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบฝเบ‡เปเบ•เปˆเบ„เบฅเบดเบเปƒเบชเปˆ "?".

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เปƒเบ™ k9s เบกเบต เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ, เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเป„เบ›เบ—เบตเปˆเบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบชเปˆ "/". เบกเบฑเบ™เบ„เบปเป‰เบ™เบซเบฒเบœเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ "เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰ :ns, เบ—เปˆเบฒเบ™เบกเบตเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡ namespaces เป€เบ›เบตเบ”. เบ–เป‰เบฒเบกเบตเบžเบงเบเบกเบฑเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›, เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เป€เบฅเบทเปˆเบญเบ™เบฅเบปเบ‡เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เบžเบฝเบ‡เปเบ•เปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ—เบตเปˆเบกเบต namespaces. /mynamespace.

เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป‚เบ”เบเบ›เป‰เบฒเบเบŠเบทเปˆ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบ pods เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™ namespace เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบชเปˆ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, / -l app=whoami. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฑเบเบ—เบตเปˆเบกเบตเบ›เป‰เบฒเบเบ™เบตเป‰:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก, เบฅเบงเบกเบ—เบฑเบ‡เบšเบฑเบ™เบ—เบถเบ, เป€เบšเบดเปˆเบ‡ YAML manifests เปเบฅเบฐ describe เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™ - เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบเบฐเปเบชเบเบฒเบ™เบ™เปเบฒเบ—เบฒเบ‡เป‚เบ”เบเบฅเบงเบกเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเปเบ™เบงเปƒเบ”?

เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ :ctx เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบ namespace เบกเบตเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปเบฅเป‰เบง :ns, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™: /test.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบฅเบทเบญเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบปเบ™เปƒเบˆ (เบ•เบปเบงเบขเปˆเบฒเบ‡, StatefulSet เบ”เบฝเบงเบเบฑเบ™), เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบˆเบฐเบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™: เบกเบตเบˆเปเบฒเบ™เบงเบ™เบเบฑเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเบฑเป‰เบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™.

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบžเบฝเบ‡เปเบ•เปˆเบเบฑเบเบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆ - เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบชเปˆ :pod. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ ConfigMaps (:cm - เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰) เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปเบฅเบฐเบ„เบฅเบดเบเปƒเบชเปˆ "u", เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ K9s เบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเปƒเบœ (CM เบ™เบตเป‰) เบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบกเบฑเบ™.

เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบชเบฐเบ”เบงเบเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบกเปˆเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ "X-ray" (เป€เบšเบดเปˆเบ‡ XRay). เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบ–เบทเบเป€เบญเบตเป‰เบ™เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡ :xray RESOURCE เปเบฅเบฐ... เบกเบฑเบ™เบ‡เปˆเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบ. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบš StatefulSets:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes
(เปเบ•เปˆเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚, เบ›เปˆเบฝเบ™เปเบ›เบ‡, เป€เบฎเบฑเบ” describe.)

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™ Deployment with Ingress:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเปเบ•เปˆเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™ YAML เบซเบผเบทเบ‚เบญเบ‡เบกเบฑเบ™ describe เป‚เบ”เบเบเบฒเบ™เบเบปเบ”เปเบ›เป‰เบ™เบžเบดเบกเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก (โ€œyโ€ เปเบฅเบฐ โ€œdโ€ เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš). เปเบ™เปˆเบ™เบญเบ™, เบกเบตเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบฑเป‰เบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเป€เบเบปเปˆเบฒ: เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเปเบฅเบฐเปเบ›เป‰เบ™เบžเบดเบกเบฅเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เบชเบฐเป€เบซเบกเบตเบเป‰เบญเบ™ "header" เบ—เบตเปˆเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš (เป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เป‚เบ”เบเบเบฒเบ™เบเบปเบ” Ctrl + e).

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เป€เบกเบทเปˆเบญเปเบเป‰เป„เบ‚เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ”เป† (โ€œeโ€ เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบทเบญเบเบกเบฑเบ™), เบ•เบปเบงเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก (export EDITOR=vim).

เปเบฅเบฐเบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ (.describe):

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ™เบตเป‰ (เบซเบผเบทเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡ YAML manifest เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™) เบชเบฒเบกเบฒเบ”เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบกเบฅเบฑเบ”เปเบ›เป‰เบ™เบžเบดเบกเบ›เบปเบเบเบฐเบ•เบด Ctrl + s. เบกเบฑเบ™เบˆเบฐเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบšเปˆเบญเบ™เปƒเบ”เบˆเบฐเบฎเบนเป‰เบˆเบฑเบเบˆเบฒเบเบ‚เปเป‰เบ„เบงเบฒเบก K9s:

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

เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบŸเบทเป‰เบ™เบŸเบนเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบˆเบฒเบเป„เบŸเบฅเปŒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ–เบญเบ™เบ›เป‰เบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบฅเบฐเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ—เปเบฒเบญเบดเบ”. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ (:dir /tmp), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฅเบทเบญเบเป„เบŸเบฅเปŒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰ apply.

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เปƒเบ™เป€เบงเบฅเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบกเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ ReplicaSet เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ–เป‰เบฒเบกเบตเบšเบฑเบ™เบซเบฒเบเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบ RS เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ (.:rs เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ):

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

... เปเบฅเบฐ rollback เป‚เบ”เบเปƒเบŠเป‰ Ctrl + l. เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”:

k9s/whoami-5cfbdbb469 successfully rolled back

เปเบฅเบฐเป€เบžเบทเปˆเบญเบ‚เบฐเบซเบเบฒเบเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡, เบžเบฝเบ‡เปเบ•เปˆเบ„เบฅเบดเบเปƒเบชเปˆ "s" (เบ‚เบฐเบซเบ™เบฒเบ”) เปเบฅเบฐเป€เบฅเบทเบญเบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบชเปเบฒเป€เบ™เบปเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡เปƒเบ”เบ™เบถเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰เปเบเบฐ: เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เป„เบ›เบ—เบตเปˆเบเบฑเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆ "s" (shell) เปเบฅเบฐเป€เบฅเบทเบญเบเบ–เบฑเบ‡.

เบฅเบฑเบเบชเบฐเบ™เบฐเบญเบทเปˆเบ™เป†

เปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฑเบ‡เบ–เบทเบเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ (โ€œlโ€ เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบฅเบทเบญเบ). เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเปƒเบซเบกเปˆ, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบปเบ” Enter เบขเบนเปˆเบชเบฐเป€เบซเบกเบต: เบžเบฝเบ‡เปเบ•เปˆเป€เบฎเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ ("m"), เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบžเบฝเบ‡เปเบ•เปˆเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบซเบกเปˆ.

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ”เบฝเบงเบเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป„เบฅเบเบฐเป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบญเบเบšเบฑเบ™เบ—เบถเบ:

  • เบ›เบธเปˆเบก โ€œ1โ€ - เปƒเบ™ 1 เบ™เบฒเบ—เบต;
  • โ€œ2โ€ - 5 เบ™เบฒเบ—เบต;
  • โ€œ3โ€ - 15 เบ™เบฒเบ—เบต;
  • โ€œ4โ€ - 30 เบ™เบฒเบ—เบต;
  • "5" - 1 เบŠเบปเปˆเบงเป‚เบกเบ‡;
  • โ€œ0โ€ โ€” เบชเปเบฒเบฅเบฑเบšเบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบเบฑเบ.

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบžเบดเป€เบชเบ” Pulse (เบ„เปเบฒเบชเบฑเปˆเบ‡ :pulse) เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบงเป„เบ›เบเปˆเบฝเบงเบเบฑเบšเบเบธเปˆเบก Kubernetes:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เปƒเบ™เบกเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ (เบœเบนเป‰เบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบšเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ›เบฑเบ™เบชเบตเบ‚เบฝเบง Running).

เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ K9s เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ Popeye. เบกเบฑเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบœเบปเบ™ "เบเบฒเบ™เบˆเบฑเบ”เบญเบฑเบ™เบ”เบฑเบš" เบ”เป‰เบงเบเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบงเปˆเบฒเบšเปเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบผเบทเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เบžเป, เปเบฅเบฐเบšเบฒเบ‡เบ–เบฑเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบฎเบฒเบ ...

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Helm เบžเบทเป‰เบ™เบ–เบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบเบธเปˆเบก:

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

เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเปเปˆเบชเป‰เบฒเบ‡เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ K9s hey เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบเบฒเบ™เป‚เบซเบผเบ”เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ HTTP, เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบซเบผเบฒเบ ab (ApacheBench).

เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เบกเบฑเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปƒเบ™เบžเบญเบ”. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เป€เบฅเบทเบญเบเป€เบญเบปเบฒ pod เปเบฅเบฐเบเบปเบ” Shift + f, เป„เบ›เบ—เบตเปˆเป€เบกเบ™เบนเบเปˆเบญเบเบ‚เบญเบ‡ port-forward เป‚เบ”เบเปƒเบŠเป‰เบ™เบฒเบกเปเบเบ‡ "pf".

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบทเบญเบเบžเบญเบ”เปเบฅเบฐเบเบปเบ” Ctrl + b, benchmark เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฒเบงเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ /tmp เปเบฅเบฐเบกเบตเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡เปƒเบ™ K9s.

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes
เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ benchmark เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ $HOME/.k9s/bench-<my_context>.yml (เบเปเบฒเบ™เบปเบ”เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบเบธเปˆเบก).

NB: เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป„เบŸเบฅเปŒ 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

เปเบ—เป‰เบˆเบดเบ‡เปเบฅเป‰เบง, เบšเปเปˆเบกเบตเบ–เบฑเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบ›เป‰เบฒเบเบŠเบทเปˆ, เป€เบŠเบดเปˆเบ‡เบกเบต เบšเบฑเบ™เบซเบฒเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™.

เบเบฒเบ™เบˆเบฑเบ”เบฎเบฝเบ‡เบ•เบฒเบกเบ–เบฑเบ™เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบกเบฅเบฑเบ”เปเบ›เป‰เบ™เบžเบดเบก:

  • Shift + n - เป‚เบ”เบเบŠเบทเปˆ;
  • Shift + o - เป‚เบ”เบ nodes;
  • Shift + i - เป‚เบ”เบ IP;
  • Shift + a - by container lifetime;
  • Shift + t โ€” เป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ restart;
  • Shift + r - เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบฐเบ„เบงเบฒเบกเบžเป‰เบญเบก;
  • Shift + c - เป‚เบ”เบเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบ CPU;
  • Shift + m - เป‚เบ”เบเบเบฒเบ™เบšเปเบฅเบดเป‚เบžเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ.

เบ–เป‰เบฒเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบšเปเปˆเบกเบฑเบเบฎเบนเบšเปเบšเบšเบชเบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, K9s เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบœเบดเบงเบซเบ™เบฑเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบก (7 เบŠเบดเป‰เบ™) เบกเบตเบขเบนเปˆ เบ—เบตเปˆเบ™เบตเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เปƒเบ™เบœเบดเบงเบซเบ™เบฑเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เปƒเบ™เบเบญเบ‡เบ—เบฑเบšเป€เบฎเบทเบญ):

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เบ›เบฅเบฑเบเบญเบดเบ™

เบชเบธเบ”เบ—เป‰เบฒเบ เบ›เบฅเบฑเบเบญเบดเบ™ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ 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"

เบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ›เบ—เบตเปˆ namespace เปเบฅเบฐเบเบปเบ” "g" เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™:

เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡ k9s - เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš terminal เบ‚เบฑเป‰เบ™เบชเบนเบ‡เบชเปเบฒเบฅเบฑเบš Kubernetes

เปƒเบ™เบšเบฑเบ™เบ”เบฒ plugins เบกเบต, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบš kubectl-jq เปเบฅเบฐเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบ. stern.

เบชเบฐเบซเบฅเบธเบš

เบชเปเบฒเบฅเบฑเบšเบฅเบปเบ”เบŠเบฒเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบ, K9s เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบชเบฐเบ”เบงเบเบซเบผเบฒเบ: เบ”เป‰เบงเบเบกเบฑเบ™เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰. kubectl. เบ‚เป‰เบญเบเบžเปเปƒเบˆเบเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบžเบงเบเบกเบฑเบ™, เปเบเป‰เป„เบ‚เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เบ„เบงเบฒเบกเป„เบงเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ› *, เบฎเบนเบšเปเบšเบš Popeye เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”. เบเบฒเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบžเบดเป€เบชเบ”เบ„เบงเบ™เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡ plugins เปเบฅเบฐเบ›เบฑเบšเปเบ•เปˆเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

* เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เบ”เป‰เบงเบเบ›เบฐเบฅเบดเบกเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบŠเป‰เบฒเบ‚เบญเบ‡ K9s. เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” "เบเบดเบ™" 2 cores เบ‚เบญเบ‡ Intel Xeon E312xx เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฒเบกเบฒเบ” freeze.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™? เบเบฑเบšเบ„เบทเบ™เป„เบงเบเบฑเบšเบชเบฐเบšเบฑเบšเบเปˆเบญเบ™เบซเบ™เป‰เบฒ (เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš RS) เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš เบ—เบฑเบ‡เบซเบกเบปเบ” เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™: เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบถเบšเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบซเบผเบทเบ›เป‰เบฒเบเบŠเบทเปˆ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบฅเบถเบšเปเบฅเบฐเบŸเบทเป‰เบ™เบŸเบนเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” (เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป„เบ›เบซเบฒเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต). เบชเบดเปˆเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบงเบฑเบ™เบ—เบตเบ‚เบญเบ‡ "เบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™" เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ™เบฑเป‰เบ™เบ‚เบฒเบ”เบซเบฒเบเป„เบ›.

PS

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™