ፕሮጀክቱ በGo የተፃፈ ሲሆን ከአንድ አመት ተኩል በላይ ሆኖታል፡የመጀመሪያው ቃል የተፈፀመው በፌብሩዋሪ 1, 2019 ነው። ይህ ጽሑፍ በሚጻፍበት ጊዜ 9000+ ኮከቦች አሉ።
መጫን እና ማስጀመር
ይህ ደንበኛ ነው (ከኩበርኔትስ ክላስተር ጋር በተያያዘ) እንደ ዶከር ምስል ለማሄድ በጣም ቀላል የሆነው፡
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
. (የአውድ/የስም ቦታዎችን ለመቀየር ከዚህ በታች ይመልከቱ።)
መሄድ የትእዛዝ ሁነታ ":" በመጫን ይከናወናል. ከዚያ በኋላ ትዕዛዞችን በመጠቀም የ k9 ዎችን አሠራር መቆጣጠር ይችላሉ - ለምሳሌ ፣ የ StatefulSets ዝርዝር ለማየት (በአሁኑ የስም ቦታ) ፣ ማስገባት ይችላሉ :sts
.
ለአንዳንድ ሌሎች የኩበርኔት ምንጮች፡-
-
:ns
- የስም ቦታዎች; -
:deploy
- ማሰማራት; -
:ing
- ማስገቢያዎች; -
:svc
- አገልግሎቶች.
ለዕይታ የሚገኙትን የተሟላ የንብረት አይነቶች ዝርዝር ለማሳየት ትእዛዝ አለ። :aliases
.
አሁን ባለው መስኮት ውስጥ በሙቅ የቁልፍ ቅንጅቶች የሚገኙትን የትእዛዞች ዝርዝር ለማየትም ምቹ ነው: ይህንን ለማድረግ "?" የሚለውን ብቻ ጠቅ ያድርጉ.
በ k9s ውስጥም አለ። የፍለጋ ሁነታ, ወደ "/" ለመግባት በቂ ወደሆነው ለመሄድ. በእሱ አማካኝነት, አሁን ባለው "መስኮት" ይዘት ላይ ፍለጋ ይከናወናል. ከዚህ ቀደም ገብተህ ከሆነ እንበል :ns
፣ ክፍት የሆኑ የስም ቦታዎች ዝርዝር አለዎት። በጣም ብዙ ከሆኑ ፣ ከዚያ ለረጅም ጊዜ ላለመውረድ ፣ በመስኮቱ ውስጥ በስም ቦታዎች ውስጥ ማስገባት በቂ ነው ። /mynamespace
.
በመለያዎች ለመፈለግ ሁሉንም ፖዶች በሚፈለገው የስም ቦታ መምረጥ ይችላሉ ከዚያም ያስገቡ ለምሳሌ፡- / -l app=whoami
. ከዚህ መለያ ጋር የፖዳዎች ዝርዝር እናገኛለን፡-
ፍለጋው በሁሉም ዓይነት መስኮቶች ውስጥ ይሰራል፣ ምዝግብ ማስታወሻዎችን ጨምሮ፣ የ YAML መግለጫዎችን መመልከት እና describe
ለሃብቶች - በእነዚህ ባህሪያት ላይ ተጨማሪ ዝርዝሮችን ለማግኘት ከታች ይመልከቱ.
አጠቃላይ የአሰሳ ፍሰቱ ምን ይመስላል?
ትዕዛዙን በመጠቀም :ctx
አውድ መምረጥ ትችላለህ፡-
የስም ቦታ ለመምረጥ ቀደም ሲል የተጠቀሰው ትዕዛዝ አለ :ns
, እና ከዚያ ለሚፈለገው ቦታ ፍለጋውን መጠቀም ይችላሉ: /test
.
የምንፈልገውን መርጃ አሁን ከመረጥን (ለምሳሌ ፣ ተመሳሳዩ StatefulSet) ፣ ተጓዳኝ መረጃው ለእሱ ይታያል-ምን ያህል ፖዶች ስለእነሱ አጭር መረጃ እየሮጡ ነው።
ፖድ ብቻ ትኩረት ሊሰጠው ይችላል - ከዚያ ለመግባት በቂ ነው :pod
. በ ConfigMaps ሁኔታ (:cm
- ለእነዚህ ሀብቶች ዝርዝር) የፍላጎቱን ነገር መምረጥ እና "u" ላይ ጠቅ ማድረግ ይችላሉ ፣ ከዚያ በኋላ K9s ማን እንደሚጠቀም ይነግርዎታል (ይህ CM)።
ሀብቶችን ለማየት ሌላ ጠቃሚ ባህሪ የእነሱ ነው። "ኤክስሬይ" (ኤክስሬይ እይታ). ይህ ሁነታ በትእዛዙ ይጠራል :xray RESOURCE
እና ... ከማብራራት ይልቅ እንዴት እንደሚሰራ ማሳየት ቀላል ነው። የStatefulSets ምሳሌ ይኸውና፡-
(እያንዳንዱ እነዚህ ምንጮች ሊስተካከል፣ ሊለወጡ፣ ሊደረጉ ይችላሉ። describe
.)
እና ከመግቢያ ጋር ማሰማራት እዚህ አለ፡-
ከሃብቶች ጋር በመስራት ላይ
በ YAML ወይም በእሱ ውስጥ ስለ እያንዳንዱ ምንጭ መረጃ ማግኘት ይችላሉ። describe
ተጓዳኝ የቁልፍ ሰሌዳ አቋራጮችን ("y" እና "d", በቅደም ተከተል) በመጫን. እርግጥ ነው, እንዲያውም ተጨማሪ መሠረታዊ ስራዎች አሉ: የእነሱ ዝርዝር እና የቁልፍ ሰሌዳ አቋራጮች ሁልጊዜም የሚታዩ ናቸው ምቹ "ራስጌ" በበይነገጽ (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" ለተመረጠው ሀብት). እና አዲስ ምዝግብ ማስታወሻዎችን ለመመልከት, አስገባን በተከታታይ መጫን አያስፈልግም: ("m") ምልክት ማድረግ በቂ ነው, እና ከዚያ አዲስ መልዕክቶችን ብቻ ይከታተሉ.
በተመሳሳይ መስኮት ውስጥ የምዝግብ ማስታወሻዎችን የሚወጣበትን ጊዜ መምረጥ ይችላሉ-
- ቁልፍ "1" - ለ 1 ደቂቃ;
- "2" - 5 ደቂቃዎች;
- "3" - 15 ደቂቃዎች;
- "4" - 30 ደቂቃዎች;
- "5" - 1 ሰዓት;
- "0" - ለፖድ ሙሉ የህይወት ዘመን.
ልዩ የክወና ሁነታ Pulse (ትእዛዝ :pulse
) ስለ ኩበርኔትስ ክላስተር አጠቃላይ መረጃ ያሳያል፡-
በእሱ ውስጥ የንብረቶች ብዛት እና ደረጃቸውን ማየት ይችላሉ (አረንጓዴው ደረጃ ያላቸውን ያሳያል Running
).
ሌላው የK9s አሪፍ ባህሪ ይባላል Popeye. ሁሉንም ሀብቶች ለተወሰኑ የትክክለኛነት መመዘኛዎች ይፈትሻል እና የተገኘውን "ደረጃ" ከማብራሪያ ጋር ያሳያል። ለምሳሌ ፣ በቂ ናሙናዎች ወይም ገደቦች እንደሌሉ ማየት ይችላሉ ፣ እና አንዳንድ ኮንቴይነሮች እንደ ስር ሊሠሩ ይችላሉ ...
ለሄልም መሰረታዊ ድጋፍ አለ. ለምሳሌ፣ በክላስተር ውስጥ የተሰማሩትን ልቀቶች እንዴት ማየት እንደሚችሉ ነው፡-
:helm all # все
:helm $namespace # в конкретном пространстве имен
ካስማ
በK9s ውስጥ እንኳን ተገንብቷል።
እሱን ለማንቃት በፖድ ውስጥ ወደብ ወደፊት ማንቃት ያስፈልግዎታል። ይህንን ለማድረግ ፖድውን ይምረጡ እና Shift + f ን ይጫኑ, "pf" ተለዋጭ ስም በመጠቀም ወደ ወደብ-ወደፊት ንዑስ ምናሌ ይሂዱ.
ወደቡን ከመረጡ በኋላ Ctrl + b ን ከተጫኑ በኋላ ቤንችማርክ ራሱ ይጀምራል። የሥራው ውጤት በ ውስጥ ተከማችቷል /tmp
እና በኋላ ለማየት በK9s ይገኛሉ።
የቤንችማርክን ውቅር ለመለወጥ, ፋይል መፍጠር ያስፈልግዎታል $HOME/.k9s/bench-<my_context>.yml
(ለእያንዳንዱ ክላስተር ተወስኗል).
ማሳሰቢያ፡ የሁሉንም 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 - በአይፒ;
- Shift + a - በመያዣው የህይወት ዘመን;
- Shift + t - በዳግም ማስጀመሪያዎች ብዛት;
- Shift + 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"
አሁን በሚከተለው ትዕዛዝ ለማስፈጸም ወደ የስም ቦታ ይሂዱ እና "g" ን ይጫኑ፡-
ከተሰኪዎች መካከል ለምሳሌ ከ kubectl-jq ጋር ውህደቶች እና የምዝግብ ማስታወሻዎችን ለማየት መገልገያ አሉ
መደምደሚያ
ለኔ ጣዕም፣ K9s አብሮ ለመስራት በጣም ምቹ ሆኖ ተገኘ፡ ሳይጠቀሙበት የሚፈልጉትን ሁሉ ለመፈለግ በፍጥነት መልመድ ይችላሉ። kubectl
. የምዝግብ ማስታወሻዎች እይታ እና ቁጠባዎች ፣ የሀብት ፈጣን አርትዖት ፣ በአጠቃላይ የስራ ፍጥነት * ፣ የ Popeye ሁነታ ጠቃሚ ሆኖ በመገኘቱ ተደስቻለሁ። ልዩ መጠቀስ ፕለጊኖችን መፍጠር እና አፕሊኬሽኑን ከፍላጎትዎ ጋር በሚስማማ መልኩ ማስተካከል መቻል ነው።
* ምንም እንኳን በትልቅ የምዝግብ ማስታወሻዎች፣ የK9 ዎች ቀርፋፋ አሠራር አስተውያለሁ። በዚህ ጊዜ መገልገያው ከ Intel Xeon E2xx 312 ኮርዎችን "በላ" እና እንዲያውም በረዶ ሊሆን ይችላል.
በአሁኑ ጊዜ ምን የጎደለው ነገር አለ? ወደ ቀድሞው ስሪት በፍጥነት መመለስ (ስለ አርኤስ አናወራም) ወደ ማውጫው ሳንሄድ። በተጨማሪም ማገገም የሚከሰተው ለ ብቻ ነው ጠቅላላ resource: ማብራሪያን ወይም መለያን ከሰረዙ, ሙሉውን መርጃ መሰረዝ እና ወደነበረበት መመለስ አለብዎት (ይህ ወደ ማውጫው መሄድ ያለብዎት). ሌላ ትንሽ ነገር - ለእንደዚህ አይነት የተቀመጡ "ምትኬዎች" በቂ ቀን የለም.
PS
በብሎጋችን ላይ ያንብቡ፡-
- «
የ GUIs ለ Kubernetes አጠቃላይ እይታ "; - «
የኩበርኔትስ ድር እይታ ማስታወቂያ (እና የሌሎች የድር UIs ለ Kubernetes አጭር መግለጫ) "; - «
kubebox እና ሌሎች ዛጎሎች ለ Kubernetes ».
ምንጭ: hab.com