Buug "Kubernetes for DevOps"

Buug "Kubernetes for DevOps" Hello, reer Khabro! Kubernetes waa mid ka mid ah walxaha muhiimka ah ee nidaamka deegaanka ee daruuriga casriga ah. Farsamadani waxa ay bixisa isku halaynta, miisaanka iyo u adkaysiga weel samaynta. John Arundel iyo Justin Domingus waxay ka hadlaan nidaamka deegaanka ee Kubernetes waxayna soo bandhigaan xalalka la xaqiijiyay ee dhibaatooyinka maalinlaha ah. Tallaabo tallaabo ah, waxaad dhisi doontaa codsigaaga asalka ah ee daruuriga ah oo waxaad abuuri doontaa kaabayaasha si aad u taageerto, u dejiso jawi horumarineed iyo dhuumo hawlgelin joogto ah oo ku caawin doona markaad ka shaqeyso codsiyadaada xiga.

β€’ Ku billow weelasha iyo Kubernetes waxyaabaha aasaasiga ah: khibrad gaar ah looma baahna si loo barto mawduuca. β€’ Maamul kooxeedyadaada ama ka dooro adeegga Kubernetes ee Amazon, Google, iwm. β€’ Isticmaal Kubernetes si aad u maamusho wareegga nolosha weelka iyo isticmaalka kheyraadka. β€’ Wanaaji kooxaha ku salaysan qiimaha, waxqabadka, adkeysi, awood iyo miisaan. Baro qalabka ugu fiican si aad u horumariso, tijaabiso, oo aad u geyso codsiyadaada. Ka faa'iidayso dhaqamada warshadaha hadda jira si loo xaqiijiyo amniga iyo xakamaynta. β€’ Ka hirgali mabaadi'da DevOps guud ahaan shirkaddaada si kooxaha horumarintu ay u dhaqmaan si dabacsanaan, degdeg ah, oo hufan.

Buuga yaa loogu talagalay?

Buuggu wuxuu aad ugu habboon yahay shaqaalaha waaxaha maamulka ee mas'uulka ka ah adeegayaasha, codsiyada iyo adeegyada, iyo sidoo kale kuwa horumariya ee ku lug leh dhismaha adeegyada cusub ee daruuraha ama u haajiridda codsiyada jira ee Kubernetes iyo daruuraha. Ha werwerin, uma baahnid inaad ogaato sida loola shaqeeyo Kubernetes ama weelasha - waxaan ku bari doonaa wax walba.

Isticmaalayaasha khibrada leh ee Kubernetes waxay sidoo kale heli doonaan qiimo badan, oo si qoto dheer u daboolaya mawduucyada sida RBAC, diritaan joogto ah, maareynta xogta xasaasiga ah, iyo indho-indheynta. Waxaan rajeyneynaa in boggaga buuggu ay hubaal ahaan ku jiri doonaan wax adiga kuu xiiso leh, iyada oo aan loo eegin xirfadahaaga iyo khibradaada.

Waa maxay su'aalaha uu buuggu ka jawaabayaa?

Intii aan qorsheynaynay oo aan qoraynay buugga, waxaan ka wada hadalnay tignoolajiyada daruuraha iyo Kubernetes boqolaal qof, oo aan la hadalnay hoggaamiyeyaasha warshadaha iyo khubarada iyo sidoo kale kuwa cusub. Hoos waxaa ku yaal su'aalo la xushay oo ay jeclaan lahaayeen in looga jawaabo daabacaadan.

  • "Waxaan xiiseynayaa sababta aad waqtiga ugu luminayso farsamadan. Dhibaatooyinkee ayay aniga iyo kooxdayda ka caawin doontaa inay xaliyaan?"
  • "Kubernetes wuxuu u muuqdaa mid xiiso leh, laakiin wuxuu leeyahay caqabad aad u sarreeya oo lagu galo. Diyaarinta tusaale fudud ma aha mid adag, laakiin maamulka dheeraadka ah iyo khaladaadka ayaa ah mid adag. Waxaan jeclaan lahayn inaan helno talo lagu kalsoonaan karo oo ku saabsan sida dadku u maamulaan kutlooyinka Kubernetes ee adduunka dhabta ah iyo dhibaatooyinka aan la kulmi karno."
  • "Talada mawduuca ah waxay noqon lahayd mid waxtar leh. Nidaamka deegaanka ee Kubernetes wuxuu siinayaa kooxo cusub fursado badan oo laga dooran karo. Marka ay jiraan dhowr siyaabood oo la mid ah wax la mid ah, sidee ku ogaan kartaa midka ugu fiican? Sidee loo doortaa?

Iyo laga yaabee su'aalaha ugu muhiimsan:

  • "Sideen u isticmaali karaa Kubernetes anigoon carqaladayn shirkaddayda?"

Qoraal. Habaynta iyo walxaha sirta ah

Awoodda lagu kala saaro macquulka ah ee codsiga Kubernetes ka qaabeynta (taas oo ah, wax kasta oo qiyam ah ama goobaha laga yaabo inay isbeddelaan waqti ka dib) waa mid faa'iido leh. Qiimaha habaynta sida caadiga ah waxaa ka mid ah goobaha u gaarka ah deegaanka, adeega cid saddexaad ee adeega DNS, iyo aqoonsiga aqoonsiga.

Dabcan, waxaas oo dhan si toos ah ayaa loo gelin karaa koodhka, laakiin habkani maaha mid dabacsan oo ku filan. Tusaale ahaan, beddelidda qiimaha qaabeynta waxay u baahan doontaa inaad dhisto oo aad geliso koodkaaga mar kale. Xalka aadka ugu wanaagsan wuxuu noqon lahaa in la kala saaro qaabeynta koodka oo laga akhriyo faylka ama doorsoomayaasha deegaanka.

Kubernetes waxay bixisaa dhowr siyaabood oo kala duwan oo lagu maareeyo qaabeynta. Marka hore, waxaad u gudbin kartaa arjiga qiyamka iyada oo loo marayo doorsoomayaasha deegaanka ee lagu qeexay qeexida duubka boodhka (fiiri "Isbeddellada Deegaanka" ee bogga 192). Marka labaad, xogta qaabeynta waxaa si toos ah loogu kaydin karaa Kubernetes iyadoo la isticmaalayo ConfigMap iyo walxaha sirta ah.

Cutubkan, waxaanu si faahfaahsan u baadhaynaa walxahan waxaanu eegnaa habab wax ku ool ah oo lagu maareeyo qaabaynta iyo xogta xasaasiga ah anagoo adeegsanayna codsiga demo.

Cusbooneysiinta qolofyada korka marka qaabeynta isbedelaan

Bal qiyaas inaad ku jirto kooxdaada oo aad rabto inaad wax ka bedesho qiyamka ConfigMapkeeda. Haddii aad isticmaasho jaantuska Helm (eeg "Helm: Package Manager for Kubernetes" ee bogga 102), waxaad si toos ah u ogaan kartaa isbeddel qaabeynta oo aad dib ugu soo shubi kartaa qolofkaaga hal khiyaamo ah. Ku dar sharraxaadda soo socota qeexitaankaaga geynta:

checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") .
       | sha256sum }}

Qaabka geynta hadda waxa uu ka kooban yahay isugeynta cabbirrada qaabeynta: haddii cabbirrada la beddelo, wadarta waa la cusboonaysiin doonaa. Haddii aad socodsiiso cusboonaysiinta koofiyadda, Helm waxa ay ogaan doontaa in qeexitaanku isbeddelay oo uu dib u bilaabi doono dhammaan qolofka.

Xog xasaasi ah oo ku jirta Kubernetes

Waxaan horey u ognahay in shayga ConfigMap uu bixiyo hannaan dabacsan oo lagu kaydiyo laguna galo xogta qaabeynta ee kutlada. Si kastaba ha ahaatee, codsiyada badankoodu waxay leeyihiin macluumaad xasaasi ah oo xasaasi ah, sida furayaasha sirta ah ama API-ga. Waxa kale oo lagu kaydin karaa ConfigMap, laakiin xalkani maaha mid ku habboon.

Taa baddalkeeda, Kubernetes wuxuu bixiyaa shay gaar ah oo loogu talagalay in lagu kaydiyo xogta xasaasiga ah: Sirta. Marka xigta, aan eegno tusaale sida shaygan loogu isticmaali karo codsigayaga demo.

Si aad u bilowdo, u fiirso qoraalka Kubernetes ee shayga sirta ah (eeg hello-secret-env/k8s/secret.yaml):

apiVersion: v1
kind: Secret
metadata:
    name: demo-secret
stringData:
    magicWord: xyzzy

Tusaalahan, furaha gaarka ah ee magicWord waa xyzzy (en.wikipedia.org/wiki/Xyzzy_(computing)). Erayga xyzzy guud ahaan aad buu faa'iido ugu leeyahay aduunka kombiyuutarada. Si la mid ah ConfigMap, waxaad ku kaydin kartaa furayaal badan iyo qiimayaal shay sir ah. Halkan, si fudud, waxaan u isticmaalnaa hal lamaane oo qiimo leh oo kaliya.

U Isticmaalka Walxaha Qarsoon Sida Bey'ada Kala Duwan

Sida ConfigMap, shayga sirta ah waxaa laga heli karaa weelka sida doorsoomayaasha deegaanka ama fayl ahaan saxankiisa. Tusaalaha soo socda, waxaanu ku meelayn doonaa doorsoome deegaan qiimaha sirta:

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-env
          ports:
             - containerPort: 8888
          env:
             - name: GREETING
               valueFrom:
               secretKeyRef:
                  name: demo-secret
                  key: magicWord

Ku socodsii amarka soo socda ee kaydka demo si aad u adeegsato muujinta:

kubectl apply -f hello-secret-env/k8s/
deployment.extensions "demo" configured
secret "demo-secret" created

Sidii hore oo kale, u sii gudbi dekeda deegaanka geynta si aad u aragto natiijada browserkaaga:

kubectl port-forward deploy/demo 9999:8888
Forwarding from 127.0.0.1:9999 -> 8888
Forwarding from [::1]:9999 -> 8888

Marka cinwaanka la furayo localhost: 9999 / waa inaad aragto kuwan soo socda:

The magic word is "xyzzy"

U Qorista Walxaha Qarsoon ee Faylasha

Tusaalahan, waxaanu ku lifaaqi doonaa shayga sirta ah weelka sida fayl ahaan. Koodhku wuxuu ku yaalaa hello-sir-faylka faylka ee kaydka demo.

Si aan ugu xidhno Sirta fayl ahaan, waxaanu isticmaali doonaa soo dirida soo socota:

spec:
   containers:
       - name: demo
          image: cloudnatived/demo:hello-secret-file
          ports:
              - containerPort: 8888
          volumeMounts:
              - name: demo-secret-volume
                mountPath: "/secrets/"
                readOnly: true
   volumes:
      - name: demo-secret-volume
        secret:
           secretName: demo-secret

Sida qaybta hoose "Abuuritaanka faylasha qaabaynta ee walxaha ConfigMap" ee bogga. 240, waxaan abuurnaa mugga (kiiskan demo-sirta-mugga) oo ku dheji weelka qaybta muggaMounts ee qeexitaanka. Goobta mountPath waa sirta, markaa Kubernetes waxay ku abuuri doontaa hal fayl galkan furaha / qiimaha kasta oo lagu qeexay shayga sirta ah.

Tusaalahayaga, waxaan ku qeexnay kaliya hal lamaane oo qiimo leh oo loo yaqaan magicWord, markaa muujintu waxay abuuri doontaa hal fayl / sir/magicWord akhri-kaliya oo leh xog xasaasi ah oo ku jirta weelka.

Haddii aad u codsato caddayntan si la mid ah tusaalihii hore, waa inaad heshaa natiijo la mid ah:

The magic word is "xyzzy"

Akhrinta Walxaha Qarsoon

Qaybtii hore, waxaan u isticmaalnay kubectl sharaxaadda amarka si aan u muujino waxa ku jira ConfigMap. Si la mid ah ma lagu samayn karaa sirta?

kubectl describe secret/demo-secret
Name:          demo-secret

Namespace:      default
Labels:             <none>
Annotations:
Type:               Opaque

Data
====
magicWord: 5   bytes

Fadlan ogow in xogta lafteeda aan la soo bandhigin. Walxaha sirta ah ee Kubernetes waa nooc Opaque ah, taas oo macnaheedu yahay waxa ku jira aan lagu tusin kubectl waxay qeexaan wax soo saarka, galitaanka log, ama terminalka, taas oo ka dhigaysa mid aan suurtagal ahayn in si lama filaan ah loo muujiyo macluumaadka xasaasiga ah.

Si aad u aragto nooca YAML ee xogta xasaasiga ah, isticmaal kubectl heli amarka:

kubectl get secret/demo-secret -o yaml
apiVersion: v1
data:
   magicWord: eHl6enk=
kind: Secret
metadata:
...
type: Opaque

saldhig 64

Waa maxay eHl6enk=, oo gebi ahaanba ka duwan qiimahayagii hore? Tani dhab ahaantii waa shay sir ah, oo lagu matalay codaynta base64. Base64 waa nidaam lagu codeeyo xogta binary-ga ee aan loo meel dayin sida xarfo xarfo ah.

Sababtoo ah xogta xasaasiga ah waxay noqon kartaa binary oo aan la soo saarin (sida kiiska furaha sirta ah ee TLS), walxaha sirta ah ayaa had iyo jeer lagu kaydiyaa qaabka base64.

Qoraalka beHl6enk= waa nooca saldhiga64 ee ku lifaaqan ereygayaga sirta ah xyzzy. Waxaad tan ku xaqiijin kartaa adiga oo socodsiiya amarka base64 β€”decode ee ku jira terminalka:

echo "eHl6enk=" | base64 --decode
xyzzy

Marka, halka Kubernetes uu kaa ilaalinayo inaad si lama filaan ah u soo saarto xogta xasaasiga ah ee ku jirta terminalka ama galalka log, haddii aad akhriday ogolaanshaha walxaha sirta ah ee magac gaar ah, xogtaas waxay noqon kartaa base64ed oo dabadeed la dejin karaa.

Haddii aad u baahan tahay inaad ku qorto base64 qoraal qaar ka mid ah (tusaale, si aad u geliso sir), isticmaal taliska base64 dood la'aan:

echo xyzzy | base64
eHl6enkK

Helitaanka Walxaha Qarsoon

Yaa akhrin kara oo wax ka beddeli kara walxaha sirta ah? Tan waxa go'aamiya RBAC, habka xakamaynta gelitaanka (waxa aanu si faahfaahsan uga hadli doonaa qaybta hoose "Hordhaca Xakamaynta Helitaanka Door ku Salaysan" ee bogga 258). Haddii aad wado koox aan lahayn RBAC ama aan la shaqayn, dhammaan walxahaaga sirta ah waxay diyaar u yihiin isticmaalayaasha iyo weelasha (waxaanu sharixi doonaa hadhow inaadan haysan wax soosaar ah oo aan lahayn RBAC).

Sirin xogta dadban

Ka warran kuwa heli kara xogta iwm ee Kubernetes ku kaydiso dhammaan macluumaadkeeda? Ma akhrin karaan xogta xasaasiga ah iyaga oo aan haysan ogolaansho ay ku akhriyaan walxaha sirta ah API?

Ilaa nooca 1.7, Kubernetes waxay taageertaa sirta xogta dadban. Tani waxay ka dhigan tahay in macluumaadka xasaasiga ah ee gudaha etcd lagu keydiyo si qarsoodi ah diskka oo aysan akhrin karin xitaa kuwa si toos ah u gelaya xogta. Si aad u furto, waxaad u baahan tahay fure uu leeyahay server-ka Kubernetes API oo kaliya. Kutlada si fiican loo habeeyey, sir qarsoodi ah waa in la damciyaa.

Waxaad ku hubin kartaa in sirta dadban ay sidan ugu shaqeyso kooxdaada:

kubectl describe pod -n kube-system -l component=kube-apiserver |grep encryption
        --experimental-encryption-provider-config=...

Haddii aadan arkin tijaabada-encryption-provider-config flag, sir qarsoodi ah lama damcin. Markaad isticmaalayso Google Kubernetes Engine ama adeegyada kale ee maamulka Kubernetes, xogtaada waa sir iyadoo la adeegsanayo hannaan kale, markaa calanku ma jiri doono. Ka hubi iibiyahaaga Kubernetes si aad u aragto in waxa ku jira etcd uu yahay mid sir ah.

Kaydinta xogta sirta ah

Waxaa jira qaar ka mid ah agabyada Kubernetes oo aan waligood laga saarin kutlada, sida walxaha sirta ah ee xasaasiga ah. Waxaad ka ilaalin kartaa kheyraadka in la tirtiro adiga oo isticmaalaya sharraxaad uu bixiyay maareeyaha Helm:

kind: Secret
metadata:
    annotations:
        "helm.sh/resource-policy": keep

Xeeladaha Maareynta Shayga Qarsoon

Tusaalaha qaybta hore, xogta xasaasiga ah waxaa laga ilaaliyay gelitaanka aan la ogolayn isla markiiba ka dib marka lagu kaydiyo kooxda. Laakiin faylalka cad cad waxa loo kaydiyay sidii qoraal cad.

Waa inaadan waligaa gelin macluumaadka sirta ah faylalka ku jira gacanta nooca. Sideed si ammaan ah u maareyn kartaa oo aad u kaydin kartaa macluumaadkan ka hor inta aanad ku darin kutladaada Kubernetes?

Waxaad dooran kartaa qalab kasta ama xeelad kasta oo aad ku maaraynayso xogta xasaasiga ah ee codsiyadaada, laakiin waxaad weli u baahan doontaa inaad ka jawaabto ugu yaraan su'aalaha soo socda.

  • Xagee lagu kaydiyaa xogta xasaasiga ah si ay u noqoto mid aad loo heli karo?
  • Sida loo sameeyo xogta xasaasiga ah oo la heli karo codsiyadaada firfircoon?
  • Maxaa ku dhacaya codsiyadaada marka aad bedesho ama aad wax ka beddesho xogta xasaasiga ah?

Ku saabsan qorayaasha

John Arundel waa lataliye leh 30 sano oo waayo-aragnimo ah oo ku saabsan warshadaha kombiyuutarka. Wuxuu qoray buugaag dhowr ah wuxuuna la shaqeeyaa shirkado badan oo ka kala yimid dalal kala duwan, isaga oo kula talinaya kaabayaasha asalka ah ee daruuraha iyo Kubernetes. Waqtigiisa firaaqada ah, wuxuu ku raaxaystaa dabaasha, waa toogte bastoolad fiican, wuxuuna u ciyaara biyaano sidii hiwaayad ahaan. Waxay ku nooshahay guri sheeko-yaqaan ah oo ku yaal Cornwall, England.

Justin Domingus - Injineer maamulka nidaamyada oo ka shaqeeya deegaanka DevOps oo leh Kubernetes iyo teknoolojiyadda daruuraha. Waxa uu ku raaxaystaa in uu dibadda ku qaato wakhti, kafee cabbitaan, cuncun, iyo fadhiista kombuyuutarka. Waxay ku nooshahay Seattle, Washington, iyada oo leh bisad cajiib ah iyo xaas ka sii yaab badan iyo saaxiibka ugu fiican, Adrienne.

Β» Faahfaahin dheeraad ah oo ku saabsan buugga waxaad ka heli kartaa at website-ka daabacaha
Β» Tusmada
Β» Qoraal

Khabrozhiteley 25% qiimo dhimis iyadoo la isticmaalayo coupon - Kubureteska

Marka la bixiyo nooca warqadda ee buugga, buug elektaroonig ah ayaa lagu soo diri doonaa e-mail.

Source: www.habr.com

Add a comment