Top 10 Kubernetes ẹtan ati awọn italologo

Top 10 Kubernetes ẹtan ati awọn italologo

Awọn iwe itọkasi pupọ wa lori Intanẹẹti, ṣugbọn nigbami imọran ti o rọrun julọ jẹ iwulo julọ. Egbe Kubernetes aaS lati Mail.ru túmọ yiyan ti mẹwa ẹtan ati awọn italologo, eyiti onkọwe ti nkan naa gba lẹhin ọdun kan ti ṣiṣẹ pẹlu Kubernetes. Awọn imọran ko ni lẹsẹsẹ nipasẹ pataki, ṣugbọn a ro pe gbogbo eniyan yoo wa nkan ti o wulo fun ara wọn.

Aṣẹ ti o rọrun julọ lati ṣiṣẹ pẹlu Kubernetes

Lati bẹrẹ pẹlu, boya iṣẹ ti o rọrun ati iwulo julọ ni ṣiṣẹ pẹlu Kubernetes. Aṣẹ atẹle jẹ ki pipaṣẹ pipaṣẹ ṣiṣẹ kubectl ninu ikarahun bash:

echo "source <(kubectl completion bash)" >> ~/.bashrc

Pari laifọwọyi kubectl yoo kọ si faili .bashrc ati pe yoo muu ṣiṣẹ laifọwọyi ni gbogbo igba ti ikarahun naa ba bẹrẹ. Eyi ṣe iyara titẹ awọn aṣẹ gigun ati awọn paramita bii all-namespaces. Ka siwaju ninu Kubernetes bash iranlọwọ.

Iranti aiyipada ati awọn opin Sipiyu ni aaye orukọ kan

Ti ohun elo naa ba kọ lọna ti ko tọ, fun apẹẹrẹ, o ṣii asopọ tuntun si ibi ipamọ data ni gbogbo iṣẹju-aaya ṣugbọn kii ṣe tii, lẹhinna iṣupọ naa ni jijo iranti kan. Ati pe ti ohun elo naa ko ba ni opin iranti ti a ṣeto lakoko imuṣiṣẹ, eyi le ja si ikuna ipade.

Lati ṣe idiwọ eyi, Kubernetes gba ọ laaye lati ṣeto awọn ihamọ aiyipada lori ipilẹ-orukọ. Wọn kọ sinu faili yaml fun aaye orukọ kan pato. Eyi ni apẹẹrẹ iru faili kan:

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

Ṣẹda iru yaml ki o lo si aaye orukọ eyikeyi. Fun apẹẹrẹ, si aaye orukọ limit-example. Ni bayi eyikeyi eiyan ti a gbe lọ si aaye orukọ yii yoo ni opin ti 512Mi, ayafi ti o ba ṣeto opin ẹni kọọkan miiran fun eiyan yii.

Idọti gbigba ni agbalagba awọn ẹya ti Kubernetes

Kubelet nipa aiyipada bẹrẹ idọti gbigba nigbati var/lib/docker gba 90% ti aaye disk ti o wa. Eyi jẹ nla, sibẹsibẹ, titi Kubernetes 1.7 ko si opin aiyipada lori nọmba awọn inodes ti a lo, eyiti o baamu nọmba awọn faili ninu eto faili naa.

O pọju eiyan rẹ var/lib/docker le nikan lo 50% ti aaye disk, ṣugbọn o le pari ni inodes, eyiti yoo fa awọn iṣoro fun awọn oṣiṣẹ.

Ni awọn ẹya agbalagba ti kubelet lati 1.4 si 1.6 iwọ yoo ni lati ṣafikun asia yii:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

Ni awọn ẹya 1.7 ati nigbamii ti asia yii ti ṣeto nipasẹ aiyipada. Sibẹsibẹ, awọn ẹya ti tẹlẹ ko ṣe atẹle opin inode.

Minikube ... kekere sugbon lagbara agbegbe Kubernetes

Minikube jẹ ọna ti o rọrun julọ lati ṣiṣe iṣupọ Kubernetes agbegbe kan. O ti ṣe ifilọlẹ pẹlu aṣẹ ti o rọrun:

minikube start

Ṣiṣe aṣẹ yii ṣe abajade ni iṣupọ Kubernetes gidi ti nṣiṣẹ lori ẹrọ rẹ.

Top 10 Kubernetes ẹtan ati awọn italologo
Orisun aworan

Ẹtan naa ni bii o ṣe le kọ ohun elo ati ṣiṣe ni agbegbe lori iṣupọ yẹn. Ayafi ti a ba fun ni aṣẹ ni pataki, aworan Docker yoo kọ sori kọnputa rẹ kii ṣe lori iṣupọ naa.

Lati fi agbara mu Docker lati Titari aworan naa si iṣupọ Kubernetes agbegbe, ẹrọ docker ni a fun ni aṣẹ atẹle:

eval $(minikube docker-env)

Bayi a le kọ awọn ohun elo lori iṣupọ Kubernetes agbegbe kan.

Ma fun kubectl wiwọle si gbogbo eniyan

Eyi dabi pe o han gedegbe, ṣugbọn ti awọn ẹgbẹ pupọ ba nlo iṣupọ kanna fun awọn ohun elo wọn (eyiti o jẹ ohun ti a ṣẹda Kubernetes fun), o yẹ ki o ko fun gbogbo eniyan nikan. kubectl. O dara lati ya awọn ofin sọtọ, fifun ọkọọkan wọn ni aaye orukọ tirẹ ati idinku iwọle nipa lilo awọn ilana RBAC.

O le ni idamu nipa fifun awọn ẹtọ lati wọle si, ka, ṣẹda, paarẹ ati awọn iṣẹ miiran fun adarọ-ese kọọkan. Ṣugbọn ohun akọkọ ni lati ṣe idinwo iwọle si awọn aṣiri, gbigba o nikan si awọn alakoso. Ni ọna yii a yoo ṣe iyatọ laarin awọn ti o le ṣakoso iṣupọ naa ati awọn ti wọn le fi ranṣẹ si i.

Ṣakoso awọn Isuna Pod

Bii o ṣe le rii daju pe ko si akoko idaduro fun ohun elo kan ninu iṣupọ Kubernetes kan? PodDisruptionBudget ati lẹẹkansi PodDisruptionBudget.

Awọn iṣupọ ti wa ni imudojuiwọn lorekore ati awọn apa ti di ofo. Ko si ohun ti o duro, iyẹn ni otitọ. Gbogbo imuṣiṣẹ pẹlu apẹẹrẹ diẹ sii ju ọkan lọ yẹ ki o pẹlu PDB kan (PodDisruptionBudget). O ti ṣẹda ninu faili yaml ti o rọrun ti a lo si iṣupọ naa. Agbegbe agbegbe ti PDB kan pato jẹ ipinnu nipasẹ awọn yiyan aami.

akiyesi: Isuna PDB ni a ṣe akiyesi nikan nigbati irufin isuna jẹ iyipada (atinuwa idalọwọduro). Ni awọn ipo bii awọn ikuna ohun elo, PDB kii yoo ṣiṣẹ.

Apẹẹrẹ PDB:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

Awọn ipilẹ akọkọ meji ni matchLabels и minAvailable. Paramita akọkọ pato iru awọn ohun elo ti isuna kan si. Fun apẹẹrẹ, ti Mo ba ni awọn imuṣiṣẹ pẹlu awọn akole app: app-a и app: app-b, lẹhinna PDB yii yoo kan si akọkọ nikan.

Apaadi minAvailable ya sinu iroyin nigba ofo (ninu) ipade. Fun apẹẹrẹ, ninu apẹẹrẹ wa, lakoko sisọ, gbogbo awọn iṣẹlẹ ni a yọ kuro app: app-a, ayafi meji.

Eyi n gba ọ laaye lati ṣakoso iye awọn iṣẹlẹ ti ohun elo yẹ ki o ṣiṣẹ ni akoko eyikeyi.

Abojuto ilera ohun elo

Iru ibojuwo bẹ ṣee ṣe ni awọn ọna meji: lilo imurasilẹ tabi awọn idanwo igbesi aye.

Iwadii akọkọ ( imurasilẹ) ṣe ipinnu imurasilẹ ti apoti lati gba ijabọ.

Awọn keji (liveness) fihan boya awọn eiyan ti wa ni ilera tabi nilo lati wa ni tun.

Awọn atunto ti o yẹ ni a ṣafikun nirọrun si yaml fun imuṣiṣẹ. Nibẹ ni o le pato awọn akoko ipari, awọn akoko idaduro ati nọmba awọn idanwo. Wo alaye diẹ sii nipa wọn Kubernetes iwe aṣẹ.

Tags wa nibi gbogbo

Awọn aami jẹ ọkan ninu awọn imọran ipilẹ ni Kubernetes. Wọn gba awọn nkan laaye lati ṣe ibaraẹnisọrọ larọwọto pẹlu ara wọn, bakannaa ṣẹda awọn ibeere ti o da lori awọn akole. Ni Kubernetes, o le paapaa lọ si alabara ati wo awọn iṣẹlẹ fun awọn afi kan pato.

O le ṣe ohunkohun pẹlu awọn afi, ṣugbọn apẹẹrẹ to dara yoo jẹ ṣiṣẹda awọn agbegbe pupọ lati ṣiṣe awọn eto lori iṣupọ kanna.

Jẹ ki a sọ pe o lo iṣupọ kanna fun dev и qa. Eyi tumọ si pe o le ni ohun elo kan app-a, nigbakanna ṣiṣẹ ni awọn agbegbe mejeeji qa и dev. Ni ọran yii, a le wọle lọtọ si apẹẹrẹ ohun elo ni agbegbe kan pato nipa sisọ paramita ti o yẹ environment... Fun apere, app: app-a и environment: dev fun ọkan ayika, ati app: app-a и environment: qa fun awọn keji ọkan.

Eyi n gba ọ laaye lati wọle si awọn iṣẹlẹ mejeeji ti ohun elo, fun apẹẹrẹ, lati ṣe idanwo nigbakanna.

Ṣeto

Kubernetes jẹ eto ti o lagbara pupọ, ṣugbọn eyikeyi eto le bajẹ di bogged pẹlu ọpọlọpọ awọn ilana. Kubelet nṣiṣẹ gbogbo awọn ilana ati sọwedowo ti o pato, bi daradara bi awọn oniwe-ara.

Nitoribẹẹ, iṣẹ alainibaba kan kii yoo fa fifalẹ eto naa, ati pe Kubernetes jẹ apẹrẹ lati ṣe iwọn lati ilẹ. Ṣugbọn ti o ba dipo ti ọkan iṣẹ a million han, awọn kubelet bẹrẹ lati choke.

Ti o ba jẹ fun idi kan o paarẹ imuṣiṣẹ kan (apoti, aworan, ohunkohun), rii daju pe o ṣe afọmọ pipe.

Pade Go

A ti fipamọ imọran akọkọ fun ikẹhin. Kọ ẹkọ ede siseto Go.

Kubernetes ti ni idagbasoke ni Go, gbogbo awọn amugbooro ni a kọ sinu Go, ati ile-ikawe alabara-lọ tun jẹ atilẹyin ni ifowosi.

O le ṣee lo fun oriṣiriṣi ati awọn nkan ti o nifẹ. Fun apẹẹrẹ, lati faagun eto Kubernetes si itọwo rẹ. Nitorinaa, o le lo awọn eto tirẹ lati gba data, mu awọn ohun elo ṣiṣẹ, tabi sọ di mimọ awọn apoti.

Kikọ ede siseto Go ati iṣakoso alabara-lọ jẹ boya imọran pataki julọ ti o le fun awọn olumulo Kubernetes tuntun.

Itumọ pẹlu atilẹyin ti Mail.ru Cloud Solutions

Kini ohun miiran lati ka:

  1. Awọn ipele mẹta ti autoscaling ni Kubernetes ati bii o ṣe le lo wọn daradara.
  2. Awọn apa oṣiṣẹ Kubernetes: ọpọlọpọ awọn kekere tabi awọn ti o tobi diẹ?
  3. Awọn irinṣẹ 25 Wulo fun Gbigbe ati Ṣiṣakoso Kubernetes.

orisun: www.habr.com

Fi ọrọìwòye kun