Den strategiske sammenslåingen prøver å "gjøre den nøyaktige tingen" når du slår sammen den gitte spesifikasjonen med den nåværende spesifikasjonen. Mer eksplisitt prøver den å slå sammen både matriser og objekter. For eksempel resulterer det å spesifisere en oppdatering som inneholder en enkelt eller ny variabel i en podbeholderspesifikasjon, i den variabelen som blir inkludert i gjeldende variabler, ikke overskrive dem. Å slette et array -element via en strategisk fletteoppdatering er vanskeligere, noe som trenger bruk av sammenslåingsbestillinger.
I likhet med den strategiske tilnærmingen, tar JSON Merge Patch -metoden en delvis Kubernetes -spesifikasjon som input og holder de sammenslåtte objektene. Denne måten er ganske forskjellig fra den ovennevnte tilnærmingen, da den bare støtter erstatning av matriser. Når du bruker denne tilnærmingen, må du streame fulle spesifikasjoner for alle containerne; Hvis du trenger å endre en hvilken.
På den annen side bruker JSON Patch -metoden en JSON -illustrasjon av variasjonene du ønsker å gjøre til en ressurs. JSON Patch er en mer robust og effektiv måte å oppgi endringene du vil gjøre.
Forutsetninger
Vi trenger en Kubernetes -klynge eller en Kubectl CLI -konfigurasjon for å samhandle med klyngen. Hvis du ikke har en klynge, må du generere en ved hjelp av Minikube. Mens vi jobber med patch -kommandoer i Kubernetes, må vi installere Minikube -klyngen på systemet ditt for å kjøre Kubernetes i Linux.
Kubectl Patch -kommando
Kom og la oss illustrere arbeidet med patch -kommandoer ved hjelp av KUBECTL -kommandoer eller instruksjoner.
Fra appsøkelinjen, skriv “Terminal” eller trykk på “Ctrl+Alt+T” tastaturnøkler samtidig. Skriv nå kommandoen "Minikube Start" i terminalen og vent en stund til den kommer i gang.
$ Minikube Start
Mens vi jobber med patch -kommandoer, må vi først generere en distribusjon i Kubernetes. For dette formålet bruker vi berøringsdistribusjon.YAML -kommando for å opprette en fil i Ubuntu 20.04, og berøringsnøkkelordet brukes til å generere en fil.
$ Touch Deployment1.Yaml
Lagre og utfør KUBECTL -kommandofilen. Du vil deretter se filen som er opprettet med hell.
Den under-nevnte distribusjonskonfigurasjonsfilen har to kopier eller kopier, og hver kopi er en pod som inneholder en beholder.
For å opprette distribusjonen bruker vi 'Bruk -f' med filnavnet for å opprette distribusjonen.
$ kubectl gjelder -f distribusjon1.Yaml
For å se informasjonen eller sjekke POD -er som er koblet til distribusjonen din, bruker vi Get Pods -kommandoen akkurat som vi gjorde på skjermbildet nedenfor:
Etter å ha utført kommandoen ovenfor, vil du vise navnet, klar, status, omstart og alder for alle pods som kjører på PC -en.
Husk at navnet spesifiserer de for øyeblikket kjører pods. Etter noen minutter vil du se at disse belgene blir avsluttet og byttet av nye.
$ kubectl få pods
På dette stadiet inneholder hver pod en beholder som utfører Nginx -bildet. Nå, hvis du ønsker at hver pod skal holde to containere: en som utfører Nginx og en som utfører Redis. For vår kommando nedenfor, generer en oppdateringsfil.
$ Touch Patchfile.Yaml
Etter å ha utført denne kommandoen, kan du se patchfile med ".YAML ”-forlengelse.
Etter å ha lagret og åpnet filen, kan du se at "patchfile" inneholder ønsket innhold.
Nå er vårt neste fokus å lappe distribusjonen. Så kommandoen nedenfor er veldig nyttig for å lappe distribusjonen.
For å vise den lappede distribusjonen, må du utføre kommandoen nedenfor. Resultatet viser at podspec i distribusjonen inneholder to containere:
Kommandoen nedenfor viser om belgene er koblet til din lappede distribusjon eller ikke. I denne utgangen har de for øyeblikket kjørte pods endret navn fra belgene som kjørte tidligere. Distribusjonen avsluttet de tidligere belgene og opprettet to andre nye belg som samsvarer med den oppdaterte distribusjonsspesifikasjonen.
$ kubectl få pods
Konklusjon:
Så her i denne artikkelen har vi utdypet begrepet patch -kommando i Kubernetes. Vi brukte Kubectl -lappen for å endre konfigurasjonen av live distribusjonsobjekt. Jeg håper du nå kan forstå hele konseptet med lappen i Kubernetes.