αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

ខេ ៩ αž•αŸ’αžαž›αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαžŸαŸ’αžαžΆαž“αžΈαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž€αŸ’αžšαž»αž˜ Kubernetes αŸ” αž‚αŸ„αž›αžŠαŸ…αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αž“αŸαŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž»αž€αžšαž€ αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ K8s αŸ” K9s αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž‡αžΆαž“αž·αž…αŸ’αž…αž“αžΌαžœαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Kubernetes αž“αž·αž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžšαž αŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ”

αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆ Go αž αžΎαž™αž˜αžΆαž“αž’αžΆαž™αž»αž€αžΆαž›αž‡αžΆαž„αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž€αž“αŸ’αž›αŸ‡αŸ– αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž“αŸ…αžαŸ’αž„αŸƒαž‘αžΈ 1 αžαŸ‚αž€αž»αž˜αŸ’αž—αŸˆ αž†αŸ’αž“αžΆαŸ† 2019αŸ” αž“αŸ…αž–αŸαž›αžŸαžšαžŸαŸαžšαž˜αžΆαž“αž•αŸ’αž€αžΆαž™ 9000+ αž“αŸ…αž›αžΎ GitHub αž“αž·αž„αž’αŸ’αž“αž€αžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αž”αŸ’αžšαž αŸ‚αž› 80 αž“αžΆαž€αŸ‹αŸ” αž…αžΆαŸ†β€‹αž˜αžΎαž›β€‹αžαžΆ k9s αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“?

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž“αž·αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ (αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Kubernetes cluster) αžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžšαžΌαž”αž—αžΆαž– DockerαŸ–

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 αžαŸ’αž›αž½αž“αžœαžΆαž‘αŸαŸ” αžŠαŸ„αž™αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ„αž™αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž€αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αžšαž”αžŸαŸ‹ Kubernetes αžŠαžΌαž…αž‡αžΆ 1.12 αž•αž„αžŠαŸ‚αžšαŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš .kube/config - αžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαž’αŸ’αžœαžΎ kubectl.

αž“αžΆαžœαžΆαž…αžšαžŽαŸαŸ”

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ αž”αž„αŸ’αž’αž½αž…αž˜αž½αž™αž“αžΉαž„αž”αžΎαž€αž‡αžΆαž˜αž½αž™αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αžšαž·αž”αž‘αŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžš kubectl config set-context --current --namespace=testαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž“αžΉαž„αž”αžΎαž€ test. (αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž’αŸ†αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžšαž·αž”αž‘/αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αŸ” )

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž‘αŸ… αžšαž”αŸ€αž”αž”αž‰αŸ’αž‡αžΆ αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž…αž»αž…αž›αžΎ ":" αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž› k9s αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ - αž§αž‘αžΆαž αžšαžŽαŸ αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αž”αž‰αŸ’αž‡αžΈαž“αŸƒ StatefulSets (αž“αŸ…αž€αŸ’αž“αž»αž„ namespace αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“) αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž› :sts.

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“ Kubernetes αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ–

  • :ns - αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡;
  • :deploy - αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™;
  • :ing - αž…αžΌαž›;
  • :svc - αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž”αž‰αŸ’αž‡αžΈαž–αŸαž‰αž›αŸαž‰αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž˜αžΎαž› αž˜αžΆαž“αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž˜αž½αž™αŸ” :aliases.

αžœαžΆαž€αŸαž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αž”αž‰αŸ’αž‡αžΈαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžαžΆαž˜αžšαž™αŸˆαž”αž“αŸ’αžŸαŸ†αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž€αŸ’αžαŸ…αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž„αŸ’αž’αž½αž…αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ– αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž…αž»αž…αž›αžΎ "?" αŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž“αŸ…αž€αŸ’αž“αž»αž„ k9s αž˜αžΆαž“αž•αž„αžŠαŸ‚αžšαŸ” αžšαž”αŸ€αž”αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαžΎαž˜αŸ’αž”αžΈαž‘αŸ…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž…αžΌαž› "/" αŸ” αžœαžΆαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαžΆαž˜αžšαž™αŸˆαž˜αžΆαžαž·αž€αžΆαž“αŸƒ "αž”αž„αŸ’αž’αž½αž…" αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αž–αžΈαž˜αž»αž“ :nsαž’αŸ’αž“αž€αž˜αžΆαž“αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αž€αž“αŸ’αž›αŸ‚αž„αž”αžΎαž€αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž–αž½αž€αžœαžΆαž…αŸ’αžšαžΎαž“αž–αŸαž€ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αžšαŸ†αž€αž·αž›αž…αž»αŸ‡αž€αŸ’αžšαŸ„αž˜αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž™αžΌαžš αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž”αž„αŸ’αž’αž½αž…αžŠαŸ‚αž›αž˜αžΆαž“αž…αž“αŸ’αž›αŸ„αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ /mynamespace.

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαžΆαž˜αžŸαŸ’αž›αžΆαž€ αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ pods αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ namespace αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž‰αŸ’αž…αžΌαž›αž§αž‘αžΆαž αžšαžŽαŸ / -l app=whoami. αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αž“αŸƒβ€‹αž•αžβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŸαŸ’αž›αžΆαž€β€‹αž“αŸαŸ‡αŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž”αž„αŸ’αž’αž½αž… αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž€αžΆαžšαž˜αžΎαž›αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰ YAML αž“αž·αž„ describe αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“ - αžŸαžΌαž˜αž˜αžΎαž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αžαžΎβ€‹αž›αŸ†αž αžΌαžšβ€‹αž€αžΆαžšβ€‹αžšαž»αž€αžšαž€β€‹αžŸαžšαž»αž”β€‹αž˜αžΎαž›β€‹αž‘αŸ…β€‹αžŠαžΌαž…β€‹αž˜αŸ’αžαŸαž…?

αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ :ctx αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αžšαž·αž”αž‘αŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ namespace αž˜αžΆαž“αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžšαž½αž…αž αžΎαž™ :nsαž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž“αŸ’αž›αŸ„αŸ‡αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αŸ– /test.

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž™αžΎαž„αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ (αž§αž‘αžΆαž αžšαžŽαŸ StatefulSet αžŠαžΌαž…αž‚αŸ’αž“αžΆ) αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαŸ– αžαžΎαž˜αžΆαž“αž•αžαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž–αŸαžαŸŒαž˜αžΆαž“αžαŸ’αž›αžΈαŸ—αž’αŸ†αž–αžΈαž–αž½αž€αžœαžΆαŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž˜αžΆαž“αžαŸ‚ pods αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž…αžΌαž› :pod. αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ ConfigMaps (:cm - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž‡αžΈαž“αŸƒαž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡) αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžαŸ’αžαž»αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž αžΎαž™αž…αž»αž…αž›αžΎ "u" αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ K9s αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžαžΆαž’αŸ’αž“αž€αžŽαžΆ (CM αž“αŸαŸ‡) αž€αŸ†αž–αž»αž„αž”αŸ’αžšαžΎαžœαžΆαŸ”

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž˜αžΎαž›αž’αž“αž’αžΆαž“αž‚αžΊαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” "X-ray" (αž‘αž·αžŠαŸ’αž‹αž—αžΆαž– XRay). αžšαž”αŸ€αž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αŸ…αžŠαŸ„αž™αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ :xray RESOURCE αž αžΎαž™... αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž‡αžΆαž„αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ” αž“αŸαŸ‡αž‡αžΆαžšαžΌαž”αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ StatefulSetsαŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes
(αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž”αž„αŸ’αž€αžΎαž describe.)

αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™ IngressαŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αž“αž’αžΆαž“

αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž’αž“αž’αžΆαž“αž“αžΈαž˜αž½αž™αŸ—αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ YAML αž¬αžšαž”αžŸαŸ‹αžœαžΆαŸ” describe αžŠαŸ„αž™αž…αž»αž…αž•αŸ’αž›αžΌαžœαž€αžΆαžαŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αžŸαž˜αžŸαŸ’αžšαž” (β€œy” αž“αž·αž„β€œαžƒβ€ αžšαŸ€αž„αž‚αŸ’αž“αžΆ)αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž˜αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ– αž”αž‰αŸ’αž‡αžΈ αž“αž·αž„αž•αŸ’αž›αžΌαžœαž€αžΆαžαŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αžαŸ‚αž„αžαŸ‚αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžŠαŸ„αž™αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡ "αž”αž‹αž˜αž€αžαžΆ" αžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ…αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹ (αž›αžΆαž€αŸ‹αžŠαŸ„αž™αž…αž»αž… Ctrl + e) β€‹β€‹αŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž“αŸ…αž–αŸαž›αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž’αž“αž’αžΆαž“αžŽαžΆαž˜αž½αž™ (β€œe” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆ) αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αž·αž–αž“αŸ’αž’αž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸαžšαž”αžšαž·αžŸαŸ’αžαžΆαž“ (export EDITOR=vim).

αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž›αž˜αŸ’αž’αž·αžαž“αŸƒαž’αž“αž’αžΆαž“αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž… (describe):

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž›αž‘αŸ’αž’αž•αž›αž“αŸαŸ‡ (αž¬αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž˜αžΎαž›αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰ YAML αž“αŸƒαž’αž“αž’αžΆαž“) αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŠαŸ„αž™αž”αŸ’αžšαžΎαž•αŸ’αž›αžΌαžœαž€αžΆαžαŸ‹αž€αŸ’αžαžΆαžšαž…αž»αž…αž’αž˜αŸ’αž˜αžαžΆ Ctrl + s αŸ” αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΉαž„αž–αžΈαžŸαžΆαžš K9sαŸ–

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

αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αžŸαŸ’αžŠαžΆαžšαž’αž“αž’αžΆαž“αž–αžΈαž―αž€αžŸαžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αž›αž»αž”αžŸαŸ’αž›αžΆαž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž“αž·αž„αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž‡αžΆαž˜αž»αž“αžŸαž·αž“αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸ (:dir /tmp) αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αž apply.

αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αžŽαžΆαž€αŸαž”αžΆαž“ αž’αŸ’αž“αž€αž’αžΆαž…αžœαž·αž›αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ… ReplicaSet αž˜αž»αž“αžœαž·αž‰ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ RS αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ (:rs αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž‡αžΈαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ)αŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

... αž αžΎαž™αžœαž·αž›αžœαž·αž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎ Ctrl + l αŸ” αž™αžΎαž„αž‚αž½αžšαž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„αžαžΆ αž’αŸ’αžœαžΈαŸ—αž”αžΆαž“αž‡αŸ„αž‚αž‡αŸαž™αŸ–

k9s/whoami-5cfbdbb469 successfully rolled back

αž αžΎαž™αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž…αž˜αŸ’αž›αž„ αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž…αž»αž…αž›αžΎ β€œs” (αž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“) αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž…αŸ†αž“αž½αž“αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž’αž»αž„αžŽαžΆαž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ‚αž›: αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž•αžαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αž…αž»αž…αž›αžΎ "s" (αžŸαŸ‚αž›) αž αžΎαž™αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž’αž»αž„αŸ”

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž€αžΆαžšαž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž•αž„αžŠαŸ‚αžš (β€œl” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αž’αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ)αŸ” αž αžΎαž™β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž˜αžΎαž›β€‹αž€αŸ†αžŽαžαŸ‹β€‹αž αŸαžαž»β€‹αžαŸ’αž˜αžΈ αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹β€‹αž…αž»αž… Enter αž‡αžΆαž“αž·αž…αŸ’αž…αž‘αŸαŸ– αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚β€‹αž’αŸ’αžœαžΎβ€‹αžŸαž‰αŸ’αž‰αžΆ (β€œm”) αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€β€‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™β€‹αžαŸ‚β€‹αžŸαžΆαžšβ€‹αžαŸ’αž˜αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž•αž„αžŠαŸ‚αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž„αŸ’αž’αž½αž…αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸαž‰αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αŸ–

  • αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž… "1" - αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 1 αž“αžΆαž‘αžΈ;
  • "2" - 5 αž“αžΆαž‘αžΈ;
  • "3" - 15 αž“αžΆαž‘αžΈ;
  • "4" - 30 αž“αžΆαž‘αžΈ;
  • "5" - 1 αž˜αŸ‰αŸ„αž„;
  • "0" - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αžΈαžœαž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž•αžαŸ”

αžšαž”αŸ€αž”αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž–αž·αžŸαŸαžŸ Pulse (αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ :pulse) αž”αž„αŸ’αž αžΆαž‰αž–αŸαžαŸŒαž˜αžΆαž“αž‘αžΌαž‘αŸ…αž’αŸ†αž–αžΈαž€αŸ’αžšαž»αž˜ KubernetesαŸ–

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž…αŸ†αž“αž½αž“αž’αž“αž’αžΆαž“ αž“αž·αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžšαž”αžŸαŸ‹αžœαžΆ (αž’αŸ’αž“αž€αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž–αžŽαŸŒαž”αŸƒαžαž„ Running).

αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž˜αž½αž™αž‘αŸ€αžαžšαž”αžŸαŸ‹ K9s αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ Popeye. αžœαžΆαž–αž·αž“αž·αžαŸ’αž™αž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αž€αŸ’αžαžŽαŸˆαžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž“αž·αž„αž”αž„αŸ’αž αžΆαž‰αž›αž‘αŸ’αž’αž•αž› "αž€αžΆαžšαžœαžΆαž™αžαž˜αŸ’αž›αŸƒ" αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž˜αžΎαž›β€‹αžƒαžΎαž‰β€‹αžαžΆβ€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž‚αŸ†αžšαžΌ αž¬β€‹αž€αž˜αŸ’αžšαž·αžβ€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹ αž αžΎαž™β€‹αž€αž»αž„αžαžΊαž“αŸαžšβ€‹αžαŸ’αž›αŸ‡β€‹αž’αžΆαž…β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž‡αžΆ root...

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž˜αž½αž€αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž‘αŸ…αž€αžΆαž“αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αŸ–

:helm all # всС
:helm $namespace # Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½

αžαž˜αŸ’αž›αŸƒαž‚αŸ„αž›

αž–αž½αž€αž‚αŸαžαŸ‚αž˜αž‘αžΆαŸ†αž„αž”αž„αŸ’αž€αžΎαžαžœαžΆαž‘αŸ…αž‡αžΆ K9s αž‘αŸ€αžαž•αž„αŸ” ធេ αž‚αžΊβ€‹αž‡αžΆβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž€αžΆαžšβ€‹αž•αŸ’αž‘αž»αž€β€‹αžŠαŸβ€‹αžŸαžΆαž˜αž‰αŸ’αž‰β€‹αž˜αž½αž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎ HTTP αž‡αžΆβ€‹αž‡αž˜αŸ’αžšαžΎαžŸβ€‹αž˜αž½αž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ab αžŠαŸ‚αž›β€‹αž›αŸ’αž”αžΈβ€‹αž‡αžΆαž„β€‹αž‚αŸ (ApacheBench)αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžœαžΆ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΎαž€αž…αŸ’αžšαž€αž†αŸ’αž–αŸ„αŸ‡αž‘αŸ…αž˜αž»αžαž“αŸ…αž€αŸ’αž“αž»αž„αž•αžαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ pod αž αžΎαž™αž…αž»αž… Shift + f αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΊαž“αž»αž™αžšαž„ port-forward αžŠαŸ„αž™αž”αŸ’αžšαžΎαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ "pf" αŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž…αŸ’αžšαž€αž αžΎαž™αž…αž»αž…αž”αž‰αŸ’αž‡αžΆ (Ctrl) + b αž‚αŸ„αž›αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ” αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ /tmp αž αžΎαž™αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΎαž›αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž€αŸ’αž“αž»αž„ K9sαŸ”

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes
αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‚αŸ„αž› αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžšαž˜αž½αž™αŸ” $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 - αžŠαŸ„αž™αžαŸ’αž“αžΆαŸ†αž„;
  • Shift + i - αžŠαŸ„αž™ IP;
  • Shift + a - αžŠαŸ„αž™αž’αžΆαž™αž»αž€αžΆαž›αž’αž»αž„;
  • Shift + t - αžŠαŸ„αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰;
  • αž”αŸ’αžαžΌαžš + r - αžαžΆαž˜αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžαŸ’αžšαŸ€αž˜αžαŸ’αž›αž½αž“;
  • Shift + c - αžŠαŸ„αž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸŠαžΈαž—αžΈαž™αžΌ;
  • Shift + m - αžŠαŸ„αž™αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž˜αž·αž“αž…αžΌαž›αž…αž·αžαŸ’αžαž–αžŽαŸŒαž…αž˜αŸ’αžšαž»αŸ‡αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ K9s αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž‚αžΆαŸ†αž‘αŸ’αžšαž•αž„αžŠαŸ‚αžšαŸ” αžŸαŸ’αž”αŸ‚αž€. αž§αž‘αžΆαž αžšαžŽαŸαžŠαŸ‚αž›αž•αž›αž·αžαžšαž½αž…αžšαžΆαž›αŸ‹ (7 αž”αŸ†αžŽαŸ‚αž€) αž˜αžΆαž“ αž“αŸ…αž‘αžΈαž“αŸαŸ‡. αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž“αŸƒαžŸαŸ’αž”αŸ‚αž€αž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž„αž‘αŸαž–αž‡αžΎαž„αž‘αžΉαž€):

αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αž‘αžΌαž‘αŸ…αž“αŸƒ k9s - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ 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 - αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžŸαŸ’αžαžΆαž“αžΈαž™αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Kubernetes

αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αž˜αžΆαž“αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™ kubectl-jq αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αžαžΉαž„.

αžŸαŸαž…αž€αŸ’αžαžΈαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžŸαž‡αžΆαžαž·αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† K9s αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαžŽαžΆαžŸαŸ‹αŸ– αž‡αžΆαž˜αž½αž™αžœαžΆαž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ’αžšαžΎαŸ” kubectl. αžαŸ’αž‰αž»αŸ†αž–αŸαž‰αž…αž·αžαŸ’αžαž“αžΉαž„αž€αžΆαžšαž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αž½αž€αžœαžΆ αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžšαž αŸαžŸαž“αŸƒαž’αž“αž’αžΆαž“ αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž„αžΆαžšαž‡αžΆαž‘αžΌαž‘αŸ…* αžšαž”αŸ€αž” Popeye αž”αŸ’αžšαŸ‚αž‡αžΆαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαŸ” αž€αžΆαžšαž›αžΎαž€αž‘αžΎαž„αž–αž·αžŸαŸαžŸαž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž‘αžΎαž„αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™ αž“αž·αž„αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

* αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αžšαž·αž˜αžΆαžŽαžŠαŸαž’αŸ†αž“αŸƒαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž€αŸαžŠαŸ„αž™ αžαŸ’αž‰αž»αŸ†αž€αŸαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž“αžΌαžœαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž™αžΊαžαžšαž”αžŸαŸ‹ K9s αŸ” αž“αŸ…αž–αŸαž›αž“αŸ„αŸ‡ αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ "ស៊ី" αžŸαŸ’αž“αžΌαž› 2 αž“αŸƒ Intel Xeon E312xx αž αžΎαž™αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžΆαž…αž”αž„αŸ’αž€αž€αž‘αŸ€αžαž•αž„αŸ”

αžαžΎβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαžαŸ‹β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž“αŸαŸ‡? αžαŸ’αžšαž‘αž”αŸ‹αžšαž αŸαžŸαž‘αŸ…αž€αŸ†αžŽαŸ‚αž˜αž»αž“ (αž™αžΎαž„αž˜αž·αž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ RS) αžŠαŸ„αž™αž˜αž·αž“αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž€αžΆαžšαžŸαŸ’αžŠαžΆαžšαž‘αžΎαž„αžœαž·αž‰αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚ αžŸαžšαž»αž” αž’αž“αž’αžΆαž“αŸ– αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž›αž»αž”αž…αŸ†αžŽαžΆαžšαž–αž“αŸ’αž™αž›αŸ‹ αž¬αžŸαŸ’αž›αžΆαž€ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž›αž»αž” αž“αž·αž„αžŸαŸ’αžŠαžΆαžšαž’αž“αž’αžΆαž“αž‘αžΆαŸ†αž„αž˜αžΌαž› (αž“αŸαŸ‡αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαž―αž€αžŸαžΆαžš)αŸ” αžšαžΏαž„αžαžΌαž…αžαžΆαž…αž˜αž½αž™αž‘αŸ€αžαž‚αžΊαžαžΆαž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸƒ "αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€" αžŠαŸ‚αž›αž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž”αŸ‚αž”αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΆαžαŸ‹αŸ”

PS

αžŸαžΌαž˜αž’αžΆαž“αž•αž„αžŠαŸ‚αžšαž“αŸ…αž›αžΎαž”αŸ’αž›αž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹