ProHoster > Log > administrasjon > CRI-O som erstatning for Docker som et kjørbart miljø for Kubernetes: oppsett på CentOS 8
CRI-O som erstatning for Docker som et kjørbart miljø for Kubernetes: oppsett på CentOS 8
Hallo! Jeg heter Sergey, jeg er DevOps hos Surf. DevOps-avdelingen hos Surf har som mål ikke bare å etablere interaksjon mellom spesialister og integrere arbeidsprosesser, men også å aktivt undersøke og implementere aktuelle teknologier både i egen infrastruktur og i kundens infrastruktur.
Nedenfor vil jeg snakke litt om endringene i teknologistabelen for containere som vi møtte mens vi studerte distribusjonen 8 CentOS og om hva det er LAG DET og hvordan du raskt setter opp et kjørbart miljø for Kubernetes.
Hvorfor er ikke Docker inkludert i CentOS 8?
Etter å ha installert de siste store utgivelsene RHEL 8 eller 8 CentOS man kan ikke unngå å legge merke til: disse distribusjonene og offisielle depotene har ikke applikasjonen Docker, som ideologisk og funksjonelt erstatter pakker Podman, Buildah (tilstede i distribusjonen som standard) og LAG DET. Dette skyldes den praktiske implementeringen av standarder utviklet blant annet av Red Hat som en del av prosjektet Open Container Initiative (OCI).
Målet til OCI, som er en del av The Linux Foundation, er å lage åpne industristandarder for containerformater og kjøretider som løser flere problemer samtidig. For det første var de ikke i strid med Linux-filosofien (for eksempel i den delen at hvert program skulle utføre én handling, og Docker er en slags alt-i-ett-tresker). For det andre kunne de eliminere alle eksisterende mangler i programvaren Docker. For det tredje vil de være fullt kompatible med forretningskravene til ledende kommersielle plattformer for distribusjon, administrasjon og betjening av containeriserte applikasjoner (for eksempel Red Hat OpenShift).
Begrensninger Docker og fordelene med den nye programvaren er allerede beskrevet i detalj i denne artikkelen, og en detaljert beskrivelse av hele programvarestabelen som tilbys i OCI-prosjektet og dets arkitektoniske funksjoner kan finnes i den offisielle dokumentasjonen og artiklene fra Red Hat selv (ikke en dårlig artikkel i Red Hat-bloggen) og i tredjepart anmeldelser.
Det er viktig å merke seg hvilken funksjonalitet komponentene i den foreslåtte stabelen har:
Podman — direkte interaksjon med beholdere og bildelagring gjennom runC-prosessen;
Buildah – sette sammen og laste opp bilder til registeret;
LAG DET – et kjørbart miljø for containerorkestreringssystemer (for eksempel Kubernetes).
Jeg tror at for å forstå det generelle skjemaet for interaksjon mellom komponentene i stabelen, er det tilrådelig å gi et koblingsdiagram her Kubernetes c runC og lavnivåbiblioteker som bruker LAG DET:
LAG DET и Kubernetes følg den samme utgivelsen og støttesyklusen (kompatibilitetsmatrisen er veldig enkel: hovedversjoner Kubernetes и LAG DET sammenfaller), og dette, tatt i betraktning fokuset på fullstendig og omfattende testing av driften av denne stabelen av utviklere, gir oss rett til å forvente maksimal oppnåelig stabilitet i drift under alle bruksscenarier (relativ letthet er også fordelaktig her LAG DET sammenlignet med Docker på grunn av formålsbegrensning av funksjonalitet).
Når du installerer Kubernetes "riktig vei" måte (i henhold til OCI, selvfølgelig) ved hjelp av LAG DET på 8 CentOS Vi møtte noen mindre vanskeligheter, som vi imidlertid klarte å overvinne. Jeg deler gjerne installasjons- og konfigurasjonsinstruksjoner med deg, som totalt vil ta ca. 10 minutter.
Hvordan distribuere Kubernetes på CentOS 8 ved å bruke CRI-O-rammeverket
Forutsetninger: tilstedeværelse av minst én vert (2 kjerner, 4 GB RAM, minst 15 GB lagring) med installert 8 CentOS («Server»-installasjonsprofilen anbefales), samt oppføringer for den i den lokale DNS (som en siste utvei kan du klare deg med en oppføring i /etc/hosts). Og ikke glem deaktiver bytte.
Vi utfører alle operasjoner på verten som root-bruker, vær forsiktig.
I det første trinnet vil vi konfigurere OS, installere og konfigurere foreløpige avhengigheter for CRI-O.
La oss oppdatere OS:
dnf -y update
Deretter må du konfigurere brannmuren og SELinux. Her avhenger alt av miljøet der verten eller vertene våre skal jobbe. Du kan enten sette opp en brannmur i henhold til anbefalingene fra dokumentasjon, eller, hvis du er på et klarert nettverk eller bruker en tredjeparts brannmur, endre standardsonen til klarert eller slå av brannmuren:
angi ønsket versjon LAG DET (hovedversjon LAG DET, som allerede nevnt, samsvarer med den nødvendige versjonen Kubernetes), siden den siste stabile versjonen Kubernetes nå 1.18:
Vær oppmerksom på den første nyansen som vi møter under installasjonsprosessen: du må redigere konfigurasjonen LAG DET før du starter tjenesten, siden den nødvendige conmon-komponenten har en annen plassering enn den spesifiserte:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Den andre viktige nyansen: siden vi ikke bruker en demon Docker, men vi bruker demonen LAG DET, før lansering og initialisering Kubernetes du må gjøre de riktige innstillingene i konfigurasjonsfilen /var/lib/kubelet/config.yaml, etter først å ha opprettet ønsket katalog:
Det tredje viktige punktet som vi møter under installasjonen: til tross for at vi har angitt driveren som brukes cgruppe, og dens konfigurasjon gjennom argumentene som ble sendt kubelet er utdatert (som det er eksplisitt angitt i dokumentasjonen), må vi legge til argumenter til filen, ellers vil ikke klyngen vår initialiseres:
Å tilpasse kontroll-plan eller arbeidstaker noder på minutter, kan du bruke med dette manuset.
Det er på tide å initialisere klyngen vår.
For å initialisere klyngen, kjør kommandoen:
kubeadm init --pod-network-cidr=10.244.0.0/16
Husk å skrive ned kommandoen for å bli med i klyngen "kubeadm join ...", som du blir bedt om å bruke på slutten av utdataene, eller i det minste de angitte tokenene.
La oss installere plugin (CNI) for Pod-nettverket. Jeg anbefaler å bruke Calico. Muligens mer populært Flanell har kompatibilitetsproblemer med nftablerog ja Calico - den eneste CNI-implementeringen anbefalt og fullstendig testet av prosjektet Kubernetes:
For å koble en arbeidsnode til klyngen vår, må du konfigurere den i henhold til instruksjoner 1 og 2, eller bruke manus, kjør deretter kommandoen fra "kubeadm init..."-utgangen som vi skrev ned i forrige trinn:
La oss sjekke at klyngen vår er initialisert og begynte å fungere:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Klar! Du kan allerede være vert for nyttelast på K8s-klyngen.
Hva som venter oss fremover
Jeg håper at instruksjonene ovenfor hjalp deg med å spare tid og nerver.
Resultatet av prosesser som skjer i bransjen avhenger ofte av hvordan de blir akseptert av hoveddelen av sluttbrukere og utviklere av annen programvare i den tilsvarende nisjen. Det er ennå ikke helt klart hva OCI-initiativene vil føre til om noen år, men vi vil følge med glede. Du kan dele din mening akkurat nå i kommentarfeltet.
Følg med!
Denne artikkelen dukket opp takket være følgende kilder: