10ka ugu sarreeya ee Kubernetes tabaha iyo tabaha

10ka ugu sarreeya ee Kubernetes tabaha iyo tabaha

Waxaa jira suugaan badan oo tixraac ah oo ku saabsan internetka, laakiin mararka qaarkood talada ugu fudud ayaa ah tan ugu qiimaha badan. Kooxda Kubernetes aaS ka Mail.ru turjumay xulashada toban tabo iyo talooyin, kaas oo qoraaga maqaalku soo ururiyay sanad ka dib markii uu la shaqeynayay Kubernetes. Talooyinka laguma kala saaro muhiimadda, laakiin waxaan u maleyneynaa in qof kastaa uu heli doono wax faa'iido leh naftiisa.

Amarka ugu fudud ee la shaqeeya Kubernetes

Si aad u bilawdo, laga yaabee tallaabada ugu fudud uguna faa'iido badan ee la shaqeynta Kubernetes. Amarka soo socda ayaa awood u siinaya dhamaystirka amarka kubectl ku jira bash shell:

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

Autocomplete kubectl waxaa lagu qori doonaa faylka .bashrc oo si toos ah ayaa loo hawlgelin doonaa mar kasta oo qolofka la bilaabo. Tani waxay dedejinaysaa qorista amarrada dhaadheer iyo xuduudaha sida all-namespaces. Faahfaahin dheeraad ah gudaha Kubernetes bash caawin.

Xusuusta caadiga ah iyo CPU waxay xaddidaysaa meel magaca

Haddii codsiga si khaldan loo qoro, tusaale ahaan, waxa uu furayaa xidhiidh cusub oo kaydka ah ilbiriqsi kasta laakiin waligiis ma xidho, markaa kooxdu waxa ay leedahay daadin xusuusta. Oo haddii codsigu aanu lahayn xadka xusuusta ee la dejiyay inta lagu jiro hawlgelinta, tani waxay horseedi kartaa cillad la'aan.

Si taas looga hortago, Kubernetes wuxuu kuu ogolaanayaa inaad dejiso xannibaado aan caadi ahayn oo ku salaysan meel-magaca kasta. Waxay ku qoran yihiin faylka yaml si loogu magacaabo meel gaar ah. Waa kan tusaale faylka noocaas ah:

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

Samee yamlkaas oo kale codso meel kasta oo magaceed ah. Tusaale ahaan, si ay u magaca limit-example. Hadda weel kasta oo la geeyo magacan wuxuu lahaan doonaa xadka 512Mi, ilaa xad shakhsi kale loo dejiyay weelkan.

Ururinta qashinka ee noocyadii hore ee Kubernetes

Kubelet si caadi ah u bilaabo ururinta qashinka marka var/lib/docker waxay ku fadhidaa 90% booska saxanka ee la heli karo. Tani waa wax weyn, si kastaba ha ahaatee, ilaa Kubernetes 1.7 ma jirin wax xaddidan oo ku saabsan tirada inodes ee loo isticmaalo, taas oo u dhiganta tirada faylasha ee nidaamka faylka.

Sida suurtogalka ah weelkaaga var/lib/docker waxa laga yaabaa inay isticmaasho 50% oo kaliya ee booska saxanka, laakiin waxa laga yaabaa inay ka dhamaato inodes-ka, taas oo dhibaato ku keeni doonta shaqaalaha.

Noocyadii hore ee kubelet laga bilaabo 1.4 ilaa 1.6 waa inaad ku dartaa calankan:

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

1.7 iyo noocyada danbe calankan waxa loo dejiyay si caadi ah. Si kastaba ha ahaatee, noocyadii hore ma la socdaan xadka inode.

Minikube... Kubernetes maxalli ah oo yar laakiin xoog badan

Minikube waa habka ugu fudud ee loo maamulo kooxda Kubernetes ee deegaanka. Waxa lagu bilaabay amar fudud:

minikube start

socodsiinta amarkan waxay keenaysaa in Kubernetes cluster dhab ah oo ku shaqeeya kombuyuutarkaaga.

10ka ugu sarreeya ee Kubernetes tabaha iyo tabaha
Isha sawirka

Khiyaamada ayaa ah sida loo dhiso arjiga oo loogu socodsiiyo gudaha kooxdaas. Ilaa si gaar ah loogu amro mooyaane, sawirka Docker waxa lagu dhisi doonaa kombayutarka ee kuma dul dhismi doono kooxda

Si loogu qasbo Docker inuu ku riixo sawirka kooxda Kubernetes ee maxalliga ah, mashiinka docker waxaa la siiyaa amarka soo socda:

eval $(minikube docker-env)

Hadda waxaan ku dhisi karnaa codsiyada kutlada Kubernetes deegaanka.

Ha siin kubectl qof kasta

Tani waxay u muuqataa mid iska cad, laakiin haddii kooxo badan ay u isticmaalayaan koox isku mid ah codsiyadooda (taas oo ah waxa Kubernetes loo abuuray), waa inaadan siin qof walba. kubectl. Way fiicantahay in la kala saaro amarrada, iyada oo mid kasta oo iyaga ka mid ah loo qoondeeyo meel u gaar ah oo la xaddido isticmaalka siyaasadaha RBAC.

Waxaad ku jahawareeri kartaa adiga oo siinaya xuquuqaha gelitaanka, akhrinta, abuurista, tirtiridda iyo hawlgallada kale ee boodh kasta. Laakiin waxa ugu muhiimsan waa in la xaddido helitaanka siraha, taas oo u oggolaanaysa kaliya maamulayaasha. Sidan ayaan ku kala saari doonaa kuwa maamuli kara kooxda iyo kuwa si fudud u geyn kara.

Maamul Pod Budgets

Sidee loo hubin karaa in aan wakhtiga la dhimin codsiga kutlada Kubernetes? PodDisruptionBudget iyo mar labaad PodDisruptionBudget.

Kooxuhu waa la cusboonaysiiyaa wakhtiyada qaar oo qanjidhada waa la faaruqiyaa. Ma jiraan wax taagan, taasi waa xaqiiqda. Hawlgelin kasta oo leh wax ka badan hal tusaale waa in lagu daraa PDB (PodDisruptionBudget). Waxa lagu abuuray fayl yaml fudud oo lagu dabaqay kooxda Aagga caymiska ee PDB gaar ah waxaa go'aamiya calaamadeeyayaasha.

Fiiro gaar ah: Miisaaniyadda PDB waxa lagu xisaabtamaa oo keliya marka xad-gudubka miisaaniyadda dib loo noqdo (carqaladayn ikhtiyaari ah). Xaaladaha sida qalabka ku guuldareystay, PDB ma shaqeyn doonto.

Tusaale PDB:

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

Labada halbeeg ee ugu muhiimsan waa matchLabels ΠΈ minAvailable. Halbeegga koowaad ayaa qeexaya codsiyada miisaaniyaddu khuseyso. Tusaale ahaan, haddii aan haysto meel-ka-dhigid calaamado leh app: app-a ΠΈ app: app-b, ka dibna PDB-gan waxa ay khusaysaa oo keliya kan ugu horreeya.

Xildhibaan minAvailable la tixgeliyo marka faaruqinta (nadiifinta) noodhka. Tusaale ahaan, tusaalaheena, inta lagu jiro faaruqinta, dhammaan kiisaska waa laga saarayaa app: app-a, laba mooyee.

Tani waxay kuu ogolaanaysaa inaad xakamayso inta jeer ee arjiga ay tahay inuu socdo wakhti kasta.

Kormeerka caafimaadka codsiga

Korjoogteynta noocan oo kale ah waxay ku suurtageli kartaa laba siyaabood: iyadoo la adeegsanayo tijaabooyinka Diyaar-garowga ama Noolaanshaha.

Baaritaanka ugu horreeya (diyaargarowga) ayaa go'aaminaya u diyaargarowga weelka si uu u helo taraafikada.

Midda labaad (nololeed) waxay muujinaysaa haddii weelku caafimaad qabo ama uu u baahan yahay in dib loo bilaabo.

Hababka khuseeya waxa si fudud loogu daraa yamka si loo geeyo. Halkaa waxaad ku cayimi kartaa wakhtiyada, wakhtiyada dib u dhigista iyo tirada dib u tijaabinta. Faahfaahin dheeraad ah ka arag iyaga Dukumentiyada Kubernetes.

Tags waa meel walba

Calaamaduhu waa mid ka mid ah fikradaha aasaasiga ah ee Kubernetes. Waxay u oggolaadaan walxaha inay si xor ah isula xiriiraan, iyo sidoo kale abuuraan weydiimo ku saleysan calaamado. Kubernetes, waxaad xitaa aadi kartaa macmiilka oo aad daawato dhacdooyinka calaamado gaar ah.

Waxaad ku samayn kartaa wax kasta oo leh calaamado, laakiin tusaale wanaagsan ayaa noqon doona abuurista jawiyo badan oo lagu socodsiiyo barnaamijyo isku koox ah.

Aynu nidhaahno waxaad u isticmaashaa koox isku mid ah dev ΠΈ qa. Tani waxay la macno tahay in aad heli karto codsi app-a, isku mar ka shaqeeya labada deegaan qa ΠΈ dev. Xaaladdan oo kale, waxaan si gooni gooni ah u geli karnaa tusaalaha codsiga ee deegaan gaar ah annagoo tilmaamayna cabbirka ku habboon environment. Tusaale ahaan, app: app-a ΠΈ environment: dev hal deegaan, iyo app: app-a ΠΈ environment: qa tan labaad.

Tani waxay kuu ogolaaneysaa inaad gasho labada xaaladood ee arjiga, tusaale ahaan, inaad sameyso tijaabinta isku mar.

Is abaabul

Kubernetes waa nidaam aad u awood badan, laakiin nidaam kastaa wuxuu ugu dambeyntii ku qasmi karaa habab badan. Kubelet-ku waxa uu wadaa dhammaan hababka iyo hubinta aad sheegtay, iyo sidoo kale iyada.

Dabcan, hal adeeg oo agoon ah ma hoos u dhigi doono nidaamka, iyo Kubernetes waxaa loogu talagalay in lagu cabbiro dhulka. Laakiin haddii hal milyan uu ka soo muuqdo hal adeeg, kubeletku wuxuu bilaabaa inuu ku mergado.

Haddii sabab qaar ka mid ah aad tirtirto hawlgelinta (koonteenar, sawir, wax kasta), kaliya iska hubi inaad sameyso nadiifin dhammaystiran.

La kulan Go

Waxaan badbaadinay taladii ugu dambaysay. Baro luqadda barnaamijka Go.

Kubernetes waxaa lagu sameeyay Go, dhammaan kordhinta waxay ku qoran yihiin Go, iyo maktabadda macmiilka-go' ayaa sidoo kale si rasmi ah loo taageeray.

Waxaa loo isticmaali karaa waxyaabo kala duwan oo xiiso leh. Tusaale ahaan, si loo ballaariyo nidaamka Kubernetes dhadhankaaga. Markaa, waxaad isticmaali kartaa barnaamijyadaada si aad xogta u ururiso, u dirto codsiyada, ama si fudud u nadiifiso weelasha.

Barashada luqadda barnaamijka Go iyo maaraynta macmiilka-go waa laga yaabaa inay tahay talada ugu muhiimsan ee aad siin karto isticmaaleyaasha Kubernetes ee cusub.

Lagu turjumay iyadoo la kaashanayo Mail.ru Cloud Solutions

Maxaa kale oo la akhriyaa:

  1. Saddex heer oo autoscaling gudaha Kubernetes iyo sida loo isticmaalo si wax ku ool ah.
  2. Kubernetes qanjidhada shaqaalaha: kuwo badan oo yaryar ama kuwa waaweyn?
  3. 25 Qalabka Faa'iidada leh ee Gelitaanka iyo Maareynta Kubernetes.

Source: www.habr.com

Add a comment