ProHoster > blogg > administration > CRI-O som ersättning för Docker som körtidsmiljö för Kubernetes: installation på CentOS 8
CRI-O som ersättning för Docker som körtidsmiljö för Kubernetes: installation på CentOS 8
Hallå! Jag heter Sergey, jag är DevOps på Surf. DevOps-avdelningen på Surf syftar inte bara till att etablera interaktion mellan specialister och integrera arbetsprocesser, utan också att aktivt forska och implementera aktuella teknologier både i sin egen infrastruktur och i kundens infrastruktur.
Nedan kommer jag att prata lite om förändringarna i teknologistacken för containrar som vi stötte på när vi studerade distributionen 8 CentOS och om vad som är SKAPA DET och hur man snabbt ställer in en körbar miljö för Kubernetes.
Varför ingår inte Docker i CentOS 8?
Efter att ha installerat de senaste större utgåvorna RHEL 8 eller 8 CentOS man kan inte låta bli att lägga märke till: dessa distributioner och officiella arkiv innehåller inte applikationen Hamnarbetare, som ideologiskt och funktionellt ersätter paket poddman, Buildah (finns som standard i distributionen) och SKAPA DET. Detta beror på den praktiska implementeringen av standarder som bland annat utvecklats av Red Hat som en del av projektet Open Container Initiative (OCI).
Målet med OCI, som är en del av The Linux Foundation, är att skapa öppna industristandarder för containerformat och körtider som löser flera problem samtidigt. För det första motsäger de inte Linux-filosofin (till exempel i den delen att varje program ska utföra en åtgärd, och Hamnarbetare är en sorts allt-i-ett-tröska). För det andra skulle de kunna eliminera alla befintliga brister i programvaran Hamnarbetare. För det tredje skulle de vara helt kompatibla med affärskraven för ledande kommersiella plattformar för att distribuera, hantera och betjäna containeriserade applikationer (till exempel Red Hat OpenShift).
Begränsningar Hamnarbetare och fördelarna med den nya mjukvaran har redan beskrivits i detalj i den här artikeln, och en detaljerad beskrivning av hela mjukvarustacken som erbjuds inom OCI-projektet och dess arkitektoniska funktioner finns i den officiella dokumentationen och artiklar från Red Hat själv (inte dåligt artikel i Red Hat-bloggen) och i tredje part recensioner.
Det är viktigt att notera vilken funktionalitet komponenterna i den föreslagna stacken har:
poddman — Direkt interaktion med behållare och bildlagring genom runC-processen.
Buildah — Sammansättning och uppladdning av bilder till registret.
SKAPA DET — En körbar miljö för containerorkestreringssystem (till exempel Kubernetes).
Jag tror att för att förstå det allmänna schemat för interaktion mellan stackens komponenter är det lämpligt att tillhandahålla ett anslutningsdiagram här Kubernetes c runC och lågnivåbibliotek som använder SKAPA DET:
SKAPA DET и Kubernetes följ samma release- och supportcykel (kompatibilitetsmatrisen är mycket enkel: större versioner Kubernetes и SKAPA DET sammanfaller), och detta, med hänsyn till fokus på fullständig och omfattande testning av driften av denna stack av utvecklare, ger oss rätten att förvänta oss den maximala uppnåeliga stabiliteten i drift under alla användningsscenarier (relativ lätthet är också fördelaktigt här SKAPA DET jämfört med Hamnarbetare på grund av avsiktlig begränsning av funktionalitet).
När du installerar Kubernetes "rätt sätt" sätt (enligt OCI, naturligtvis) att använda SKAPA DET på 8 CentOS Vi stötte på några mindre svårigheter, som vi dock lyckades övervinna. Jag delar gärna med mig av installations- och konfigurationsinstruktioner, som totalt tar cirka 10 minuter.
Hur man distribuerar Kubernetes på CentOS 8 med CRI-O-ramverket
Förutsättningar: närvaro av minst en värd (2 kärnor, 4 GB RAM, minst 15 GB lagring) med installerad 8 CentOS (Installationsprofilen “Server” rekommenderas), såväl som poster för den i den lokala DNS (som en sista utväg kan du klara dig med en post i /etc/hosts). Och glöm inte inaktivera swap.
Vi utför alla operationer på värden som rotanvändare, var försiktig.
I det första steget kommer vi att konfigurera operativsystemet, installera och konfigurera preliminära beroenden för CRI-O.
Låt oss uppdatera OS:
dnf -y update
Därefter måste du konfigurera brandväggen och SELinux. Här beror allt på i vilken miljö vår värd eller värdar kommer att arbeta. Du kan antingen sätta upp en brandvägg enligt rekommendationerna från dokumentation, eller, om du är på ett pålitligt nätverk eller använder en brandvägg från tredje part, ändra standardzonen till pålitlig eller stäng av brandväggen:
ställ in önskad version SKAPA DET (huvudversion SKAPA DET, som redan nämnts, matcha den version som krävs Kubernetes), sedan den senaste stabila versionen Kubernetes för närvarande 1.18:
Var uppmärksam på den första nyansen som vi stöter på under installationsprocessen: du måste redigera konfigurationen SKAPA DET innan du startar tjänsten, eftersom den nödvändiga conmon-komponenten har en annan plats än den angivna:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Den andra viktiga nyansen: eftersom vi inte använder en demon Hamnarbetare, men vi använder demonen SKAPA DET, före start och initiering Kubernetes du måste göra lämpliga inställningar i konfigurationsfilen /var/lib/kubelet/config.yaml, efter att först ha skapat den önskade katalogen:
Den tredje viktiga punkten som vi stöter på under installationen: trots att vi har angett vilken drivrutin som används c-grupp, och dess konfiguration genom argumenten som skickas kublett är föråldrad (som uttryckligen anges i dokumentationen), måste vi lägga till argument till filen, annars kommer vårt kluster inte att initieras:
Att anpassa kontrollplan eller arbetstagaren noder på några minuter kan du använda med detta manus.
Det är dags att initiera vårt kluster.
För att initiera klustret, kör kommandot:
kubeadm init --pod-network-cidr=10.244.0.0/16
Var noga med att skriva ner kommandot för att gå med i klustret "kubeadm join ...", som du ombeds använda i slutet av utdata, eller åtminstone de angivna tokens.
Låt oss installera plugin (CNI) för Pod-nätverket. Jag rekommenderar att använda Kalikå. Kanske mer populärt Flanell har kompatibilitetsproblem med nftables, Ja och Kalikå - den enda CNI-implementering som rekommenderas och testas fullständigt av projektet Kubernetes:
För att ansluta en arbetarnod till vårt kluster måste du konfigurera den enligt instruktionerna 1 och 2, eller använda manus, kör sedan kommandot från "kubeadm init..."-utgången som vi skrev ner i föregående steg:
Låt oss kontrollera att vårt kluster är initierat och börjat fungera:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Redo! Du kan redan vara värd för nyttolaster på ditt K8s-kluster.
Vad som väntar oss framåt
Jag hoppas att instruktionerna ovan hjälpte dig att spara lite tid och nerver.
Resultatet av processer som sker i branschen beror ofta på hur de accepteras av huvuddelen av slutanvändare och utvecklare av annan mjukvara i motsvarande nisch. Det är ännu inte helt klart vad OCI-initiativen kommer att leda till om några år, men vi kommer att följa med glädje. Du kan dela din åsikt just nu i kommentarerna.
Håll dig igång!
Den här artikeln dök upp tack vare följande källor: