
αααααα
ααα»α
αααααΆααα’αααααααΎααααΆααΈααααααΆααα’ααααααααααΆαα½ααααα»α Kubernetes α ααααα
αααααααααααααααΎαα
αα αααααΊααΎααααΈααααΎα±ααααΆααΆααααααΆααααα½ααααα»αααΆααα»ααα αααα½ααα·αα·ααα αα·αααααααααααααααα·ααΈαα
αααα»α K8s α K9s αααα½ααα·αα·αααααΆαα·α
αα
ααΌαααΆαααααΆααααααΌααα
αααα»α Kubernetes αα·ααααααααΌαααΆααααααααΆαα αααααααΆααααααΎααΆαααΆαα½αααααΆααααααΆααααα½ααα·αα·αααα
αααααααααααααΌαααΆααααααααΆ Go α αΎαααΆαα’αΆαα»ααΆαααΆααα½αααααΆααααααα ααΆαααααααααΆα α·αααααΎαααααΌαααααΌαααΆαααααΎα‘αΎααα ααααααΈ 1 αααα»αααα ααααΆα 2019α αα ααααααααααΆαααααΆα 9000+ αα ααΎ αα·αα’ααααα½αα αααααααα αα 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 ααααΎαααΆααααααααΎααΆααααααααΆ - α§ααΆα ααα ααΎααααΈααΎααααααΈαα 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 αααααα ααΊβααΆβαααΆαααΈαβαααααΎαβααΆαβαααα»αβααβααΆααααβαα½αβαααααΆααβαααΆαααΈαβαααααΎ HTTP ααΆβαααααΎαβαα½αβαααααΆαα ab αααβααααΈβααΆαβαα (ApacheBench)α
ααΎααααΈααΎαααΆ α’αααααΉαααααΌαααΎαα αααααααααα αα»ααα αααα»αααα ααΎααααΈααααΎααΌα αααααααΎαααΎα 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 αααααΆααααΆαααααααααα . α§ααΆα ααααααααα·ααα½α ααΆαα (7 ααααα) ααΆα . αααααΊααΆα§ααΆα ααααα½ααααααααααΆααααα (αα αααα»ααααααααΎαααΉα):

αααααα·ααΈαααα½α
ααΈαααα»α α’αα»ααααΆαα±ααα’ααααααααΈααααααααΆααααα 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
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- «»
- «»
- Β«"α
ααααα: www.habr.com
