αααααααααααααΌαααΆααααααααΆ Go α αΎαααΆαα’αΆαα»ααΆαααΆααα½αααααΆααααααα ααΆαααααααααΆα
α·αααααΎαααααΌαααααΌαααΆαααααΎα‘αΎααα
ααααααΈ 1 αααα»αααα ααααΆα 2019α αα
ααααααααααΆαααααΆα 9000+ αα
ααΎ
ααΆαααα‘αΎααα·αααΎαααααΎαααΆα
αααααΊααΆαααΆαααΈαααααα (ααΆααααααΉααααααα·ααΈ 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 ααααΎαααΆααααααααΎααΆααααααααΆ - α§ααΆα ααα ααΎααααΈααΎααααααΈαα StatefulSets (αα
αααα»α namespace αα
αα
α»αααααα) α’αααα’αΆα
αααα
αΌα :sts
.
αααααΆααααααΆα Kubernetes αα½αα
ααα½αααααααααα
-
:ns
- α αααααααααα; -
:deploy
- ααΆαααΆαααααααΆα; -
:ing
- α αΌα; -
:svc
- ααααΆααααα
ααΎααααΈαααα αΆααααααΈααααααααααααααααααΆααααααΆααααααΆααααΆαααΎα ααΆαααΆααααααααΆαα½αα :aliases
.
ααΆααααΆαααΆαααΆααααα½αααααααααα»αααΆαααΎααααααΈααΆααααααααΆαααααΆαααΆαααααααααααααΆααα α»α αααα αα αααα»ααααα’α½α αα αα α»ααααααα ααΎααααΈααααΎααΌα αααααααΆααααα α»α ααΎ "?" α
αα
αααα»α k9s ααΆααααααα αααααααααααααΎααααΈαα
αααα’αααααααΆαααααααα
αΌα "/" α ααΆαααααααααΆααααααΆαα·ααΆαα "αααα’α½α
" αα
αα
α»ααααααα α§ααΆα αααααααα·αααΎα’αααααΆααααα
αΌαααΈαα»α :ns
α’αααααΆααααααΈαααααααααααααΎαα ααααα·αααΎααΆααα½αααΆα
αααΎαααα ααΌα
ααααααΎααααΈαα»αα±αααααα·αα
α»αααααααααα»αααααααααΌα ααααΆαααααααα
αΌααααα»ααααα’α½α
αααααΆαα
αααααααααα /mynamespace
.
ααΎααααΈαααααααααΆαααααΆα α’αααα’αΆα
ααααΎαααΎα pods ααΆααα’αααα
αααα»α namespace αααα
ααααΆα α αΎααααααΆαααααααα
αΌαα§ααΆα ααα / -l app=whoami
. ααΎαβααΉαβααα½αβααΆαβαααααΈβααβααβαααβααΆαβααααΆαβαααα
ααΆααααααααααααΎαααΆααα
αααα»αααααααααααααααααα’α½α
αα½αααΆαααααααα ααα» ααΆαααΎαααΆααααα αΆα YAML αα·α describe
αααααΆααααααΆα - ααΌαααΎαααΆαααααααααααΆααααααααΆαααααααα’αααΈαααααααΆαααΆαααααα
ααΎβααα αΌαβααΆαβαα»αααβααα»αβααΎαβαα βααΌα βααααα ?
αααααααΎααΆααααααααΆ :ctx
α’αααα’αΆα
ααααΎαααΎαααα·ααα
ααΎααααΈααααΎαααΎα namespace ααΆαααΆααααααααΆαααααΆααααααΆαααα½α
α αΎα :ns
α αΎααααααΆααααα’αααα’αΆα
ααααΎααΆαααααααααααααΆααα
ααααααααα
ααααΆαα /test
.
ααααα·αααΎα₯α‘αΌααααααΎαααααΎαααΎαααααΆααααααΎαα αΆααα’αΆαααααα (α§ααΆα ααα StatefulSet ααΌα ααααΆ) ααααααΆααααααααΌαααααΆααΉααααα αΆααααααΆααααΆα ααΎααΆαααααα»ααααΆααααα»αααααΎαααΆαααΆαα½αααΉαααααααΆαααααΈαα’αααΈαα½αααΆα
ααΆααα pods ααα»ααααααααα’αΆα
α
αΆααα’αΆαααααα - αααααΆααααααααΆαααααααα
αΌα :pod
. αααα»αααααΈ ConfigMaps (:cm
- αααααΆαααααααΈααααααΆαααΆααααα) α’αααα’αΆα
ααααΎαααΎαααααα»αααα
αΆααα’αΆαααααα α αΎαα
α»α
ααΎ "u" αααααΆαααα K9s ααΉαααααΆααα’αααααΆα’αααααΆ (CM ααα) αααα»αααααΎααΆα
αααααααα·αααααααΆααααα½ααα½ααααααααααααααΆααααΆαααΎαααααΆαααΊαααααα½αααα "X-ray" (αα·αααααΆα XRay). αααααααααααΌαααΆαα α
αααααΆααααααααΆ :xray RESOURCE
α αΎα... ααΆααΆααααααΆααααα½ααααα»αααΆααααα αΆαααΈαααααααααΆααααΎαααΆαααΆααΆαααΆαααααααα αααααΆααΌαααΆααααααΆαα StatefulSetsα
(ααααΆαααΆαααααααΈαα½ααα’αΆα
ααααΌαααΆαααααααα½α ααααΆααααααΌα αααααΎα describe
.)
α αΎααααααΊααΆααΆαααΆαααααααΆαααΆαα½α Ingressα
ααααΎααΆαααΆαα½αααααΆα
ααααααΆαα’αααΈααααΆαααΈαα½ααα’αΆα
ααα½αααΆααα
αααα»α YAML α¬ααααααΆα describe
αααα
α»α
ααααΌαααΆααααααΆαα
α»α
αααααα (βyβ αα·αβαβ αααααααΆ)α ααΆααΆααα·αααΆαα ααΆαααααα·ααααα·ααΆαααΆααΌαααααΆαααΆα
αααΎααααα αααααΈ αα·αααααΌαααΆααααααΆαα
α»α
αααααα’αΆα
ααΎαααΎααααα’ααα»αα
αααα "ααααααΆ" αααααΆααααα½ααα
αααα»αα
ααα»α
αααααΆαα (ααΆαααααα
α»α
Ctrl + e) ββα
αα
αααααααααα½αααααΆαααΆαα½α (βeβ αααααΆααααΈααααΎαααΎαααΆ) αααααα·ααΈαα·ααααα’ααααααααααΆαααααααα
αααα»αα’αααααα·ααααΆα (export EDITOR=vim
).
α αΎααααααΊααΆα’αααΈαααααΆααα·αααααΆαααα’α·αααααααΆαααΎααα
ααΌα
(describe
):
ααααααααα (α¬ααααααααααΆαααΎαααΆααααα αΆα YAML ααααααΆα) α’αΆα
ααααΌαααΆααααααΆαα»ααααααααΎααααΌαααΆααααααΆαα
α»α
ααααααΆ Ctrl + s α αααααααααααΆααΉαααααΌαααΆααααααΆαα»αααΉαααααΌαααΆαααΉαααΈααΆα K9sα
Log /tmp/k9s-screens-root/kubernetes/Describe-1601244920104133900.yml saved successfully!
α’αααααα’αΆα
ααααΆαααααΆαααΈα―αααΆαααααα»ααα»ααααααΆααααααΎαααααα»αααααΆααααααααα αα·αα
αααΆαααααααααΆαα»ααα·αα ααΎααααΈααααΎααΌα
αααα’αααααααΌαα
αΌααα
ααΆααααααΆαα½ααα½ααα (:dir /tmp
) αααααΆααααααααΎαααΎαα―αααΆααααα
ααααΆα α αΎαα’αα»αααα apply
.
ααααα·ααΈααα αα
αααααΆααααΆα α’αααα’αΆα
αα·ααααααααα
ReplicaSet αα»ααα·α ααααα·αααΎααΆααααα αΆααΆαα½ααα
αα
α»ααααααα ααΎααααΈααααΎααΌα
αααα’αααααααΌαααααΎαααΎα RS αααα
ααααΆα (:rs
αααααΆαααααααΈαααααα½ααα)α
... α αΎααα·ααα·ααααααααΎ Ctrl + l α ααΎααα½αααα½αααΆαααΆαααΌαααααΉαααΆ α’αααΈαααΆαααααααα
k9s/whoami-5cfbdbb469 successfully rolled back
α αΎαααΎααααΈααααΎααΆαααααααΆαα αααα α’αααααααΆααααα α»α ααΎ βsβ (ααΆαααααααΆα) α αΎαααααΎαααΎαα ααα½αα αααΆααα αααααααααααΌαααΆαα
α’αααα’αΆα
αααα
αΌααα»αααΆαα½ααααααααΎααα: ααΎααααΈααααΎααΌα
αααα
αΌααα
ααΆαααααααα
ααααΆαα
α»α
ααΎ "s" (ααα) α αΎαααααΎαααΎααα»αα
αααααααα·αααααααααααα
ααΆααΆααα·αααΆαα ααΆαααΎααααααα ααα»ααααααΌαααΆαααΆααααααααα (βlβ αααααΆααααααΆααααααΆαααααΎαααΎα)α α αΎαβααΎααααΈβααΎαβαααααβα ααα»βααααΈ αα·αα αΆαααΆα αβα α»α Enter ααΆαα·α αα ααα ααααΆααααβααααΎβαααααΆ (βmβ) α αΎααααααΆααααβαααα½ααα·αα·αααβααβααΆαβααααΈααα»αααααα
ααααααα
αααα»ααααα’α½α
ααΌα
ααααΆ α’αααα’αΆα
ααααΎαααΎαα
αααααααααααααΆααα
αααααααα ααα»α
- ααααΆααα α»α "1" - αααα»ααααααα 1 ααΆααΈ;
- "2" - 5 ααΆααΈ;
- "3" - 15 ααΆααΈ;
- "4" - 30 ααΆααΈ;
- "5" - 1 αααα;
- "0" - αααααΆααααΈαα·αααΆααααΌαααααα
ααααααααα·ααααα·ααΆααα·ααα Pulse (ααΆααααααααΆ :pulse
) αααα αΆαααααααΆαααΌαα
α’αααΈαααα»α Kubernetesα
αα
αααα»αααΆ α’αααα’αΆα
ααΎαααΎαα
ααα½αααααΆα αα·αααααΆαααΆαααααααΆ (α’ααααααααΆαααααΆαααΆαααααΌαααΆααααα αΆαααΆααααααα Running
).
αααααααα·ααααα½αα±ααα αΆααα’αΆαααααααα½αααααααα K9s ααααΌαααΆαααα α ααΆ Popeye. ααΆαα·αα·αααααααΆαααΆααα’αααααααΆαααααααααα·αα·α ααααααΆαααααΉαααααΌαααΆααααΆαα αα·ααααα αΆααααααα "ααΆαααΆαααααα" ααΆαα½αααΉαααΆαααααααα α§ααΆα ααα α’αααβα’αΆα βααΎαβααΎαβααΆβαα·αβααΆαβααααΌ α¬βααααα·αβαααααααααΆαα α αΎαβαα»αααΊαααβααααβα’αΆα βααααΎαααΆαβααΆ root...
ααΆαααΆαααΆαααααα½ααα»ααααα·ααΆαααΆααΌαααααΆαα α§ααΆα ααα αααααΆαααααααα’αααα’αΆα
ααΎαααΆαα
ααααααΆααααααΆαααΆαααααααΆααα
ααΆααα
αααααα
:helm all # Π²ΡΠ΅
:helm $namespace # Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½
αααααααα
αα½ααααααααΆαααααααΎαααΆαα
ααΆ K9s αααααα
ααΎααααΈααΎαααΆ α’αααααΉαααααΌαααΎαα αααααααααα αα»ααα αααα»αααα ααΎααααΈααααΎααΌα αααααααΎαααΎα pod α αΎαα α»α Shift + f αα ααΆαααααΊαα»ααα port-forward αααααααΎααααααααααααααΆα "pf" α
αααααΆααααΈααααΎαααΎαα
αααα αΎαα
α»α
αααααΆ (Ctrl) + b αααααΉαα
αΆααααααΎαααααααα½αα―αα ααααααααααΆαααΆαααααααΆααααααΌαααΆααααααΆαα»α /tmp
α αΎαααΆααααααΆααααΎααααααααααααα»α K9sα
ααΎααααΈααααΆααααααΌαααΆαααααααα
ααΆααααααααααα α’αααααααΌααααααΎαα―αααΆααα½αα $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 αααααΆααααΆαααααααααα
αααααα·ααΈαααα½α
ααΈαααα»α 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β ααΎααααΈααααα·ααααα·ααΆααααααααΆαααααααΌαααααΆα
αααα»αα
αααααααααα·ααΈαααα½αααΆαα§ααΆα ααα ααΆααα½ααααα
αΌαααΆαα½α kubectl-jq αα·αα§αααααααααΎααααΆαααααααΆααααΎααααααα ααα»
ααα ααααΈααααα·ααααΆα
αααααΆααααααΆαα·αααααααα»α K9s αααααα
ααΆααΆααααα½αααααΎααΆααα ααΆαα½αααΆα’αααα’αΆα
ααααΎααααΆααααΆααααΆαααΆαααα αααααα»αααΆααααααααα’αααΈααααααααΆααααα’αααααααΌαααΆαααααα·αα
αΆαααΆα
αααααΎα kubectl
. αααα»ααααα
α·αααααΉαααΆαααΎααααααα ααα» αα·ααααααΆαα»ααα½αααΆ ααΆαααααααα½ααα ααααααααΆα ααααΏαααααΆαααΆαααΆααΌαα
* αααα Popeye ααααααΆααΆαααααααααα ααΆαααΎαα‘αΎααα·ααααα½αααααααΌαααΆαααααΎα‘αΎαααΈαααααααΆααααα»αααΆααααααΎααααααα·ααΈαααα½α αα·αααααααα½ααααααα·ααΈααΆααααααΌαααΆαααααα’αααα
* αααααΈααΆααΆαα½αααΉαααα·ααΆααααααααααααα ααα»ααααα αααα»αααααΆαααααααααΆααααΌαααααα·ααααα·ααΆαααΊααααα K9s α αα αααααα α§αααααααααΎααααΆαα "αααΈ" ααααΌα 2 αα Intel Xeon E312xx α αΎααααααΆααα’αΆα ααααααααααα
ααΎβααΆαβα’αααΈβααΆααβαα βαααβααα? αααα‘αααα αααα αααααα»α (ααΎααα·ααα·ααΆαα’αααΈ RS) ααααα·αα αΌααα ααΆααααα ααΎαααΈααααααααΆαααααΆαα‘αΎααα·αααΎαα‘αΎααααααΆαααα ααα»α ααααΆαα ααααα·αααΎα’ααααα»αα αααΆααααααα α¬ααααΆα α’αααααΉαααααΌααα»α αα·αααααΆαααααΆαααΆααααΌα (αααααΆαααααααααα’αααααΉαααααΌαα αΌααα ααΆααααα―αααΆα)α ααΏαααΌα ααΆα αα½ααααααΊααΆααΆαααα·α αααααα "ααΆαααααα»ααα»α" αααααΆααααααΆαα»αααααααααααΌαααΆαααΆααα
PS
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
αα·αααααΆαααΌαα αα GUI αααααΆαα Kubernetes Β» - Β«
ααα ααααΈαααααΆαα’αααΈαα·αααααΆααααααΆα Kubernetes (αα·ααα·αααααΆααααααααα UI αααααΆααααααααααααααΆαα Kubernetes) Β» - Β«
kubebox αα·αααααααααααααααααΆαα Kubernetes "α
ααααα: www.habr.com