ProHoster > Blog > Adminisztráció > CRI-O a Docker helyettesítőjeként a Kubernetes futtatható környezeteként: beállítás CentOS 8 rendszeren
CRI-O a Docker helyettesítőjeként a Kubernetes futtatható környezeteként: beállítás CentOS 8 rendszeren
Helló! A nevem Sergey, DevOps vagyok a Surfnál. A Surf DevOps részlegének célja nem csak a szakemberek közötti interakció kialakítása és a munkafolyamatok integrálása, hanem a jelenlegi technológiák aktív kutatása és bevezetése mind saját infrastruktúrájában, mind az ügyfél infrastruktúrájában.
Az alábbiakban beszélek egy kicsit a konténerek technológiai veremében bekövetkezett változásokról, amelyekkel a disztribúció tanulmányozása során találkoztunk 8 CentOS és arról, hogy mi van LÉTREHOZNI és hogyan lehet gyorsan végrehajtani a futtatható környezetet Kubernetes.
Miért nem szerepel a Docker a CentOS 8-ban?
A legújabb főbb kiadások telepítése után rhel 8 vagy 8 CentOS Nem lehet nem észrevenni: ezek a disztribúciók és hivatalos tárolók nem tartalmazzák az alkalmazást Dokkmunkás, amelyek ideológiailag és funkcionálisan helyettesítik a csomagokat Podman, Buildah (alapértelmezés szerint jelen van a disztribúcióban) és LÉTREHOZNI. Ez többek között a Red Hat által az Open Container Initiative (OCI) projekt részeként kidolgozott szabványok gyakorlati megvalósításának köszönhető.
A The Linux Foundation részét képező OCI célja nyílt iparági szabványok létrehozása a konténerformátumokhoz és futtatókörnyezetekhez, amelyek egyszerre több problémát is megoldanak. Először is, nem mondanak ellent a Linux filozófiájának (például abban, hogy minden programnak egy műveletet kell végrehajtania, és Dokkmunkás egyfajta all-in-one kombájn). Másodszor, kiküszöbölhetik a szoftver összes meglévő hiányosságát Dokkmunkás. Harmadszor, teljes mértékben kompatibilisek lennének a konténeres alkalmazások telepítésére, kezelésére és kiszolgálására vonatkozó vezető kereskedelmi platformok (például Red Hat OpenShift) üzleti követelményeivel.
Korlátozások Dokkmunkás és az új szoftver előnyeit már részletesen leírtuk ezt a cikket, valamint az OCI projektben kínált teljes szoftververem és annak építészeti jellemzőinek részletes leírása megtalálható a hivatalos dokumentációban és magának a Red Hatnek a cikkeiben (nem rossz cikk a Red Hat blogban) és harmadik féltől vélemények.
Fontos megjegyezni, hogy a javasolt verem összetevői milyen funkciókkal rendelkeznek:
Podman — közvetlen interakció a tárolókkal és a képtárral a runC folyamaton keresztül;
Buildah — képek összeállítása és feltöltése a nyilvántartóba;
LÉTREHOZNI — végrehajtható környezet konténer-hangszerelési rendszerek számára (például Kubernetes).
Úgy gondolom, hogy a verem összetevői közötti interakció általános sémájának megértéséhez célszerű itt megadni egy kapcsolódási diagramot Kubernetes c runC és alacsony szintű könyvtárak segítségével LÉTREHOZNI:
LÉTREHOZNI и Kubernetes ugyanazt a kiadási és támogatási ciklust tartsa be (a kompatibilitási mátrix nagyon egyszerű: főbb verziók Kubernetes и LÉTREHOZNI egybeesik), és ez, figyelembe véve, hogy a fejlesztők a verem működésének teljes és átfogó tesztelésére összpontosítanak, jogot ad számunkra, hogy bármilyen felhasználási forgatókönyv esetén a maximálisan elérhető működési stabilitást várjuk el (itt a relatív könnyűség is előnyös LÉTREHOZNI összehasonlítva Dokkmunkás a funkcionalitás szándékos korlátozása miatt).
Telepítéskor Kubernetes "helyes út" módon (természetesen az OCI szerint) használatával LÉTREHOZNI on 8 CentOS Kisebb nehézségekbe ütköztünk, amelyeket azonban sikeresen leküzdöttünk. Szívesen megosztom Önnel a telepítési és konfigurációs utasításokat, amelyek összesen körülbelül 10 percet vesznek igénybe.
A Kubernetes telepítése CentOS 8 rendszeren a CRI-O keretrendszer használatával
Előfeltételek: legalább egy gazdagép megléte (2 mag, 4 GB RAM, legalább 15 GB tárhely) telepített 8 CentOS (a „Server” telepítési profil ajánlott), valamint a helyi DNS-ben található bejegyzések (végső lehetőségként az /etc/hosts bejegyzéssel is meg lehet oldani). És ne felejtsd el csere letiltása.
Minden műveletet root felhasználóként hajtunk végre a gazdagépen, legyen óvatos.
Az első lépésben konfiguráljuk az operációs rendszert, telepítjük és beállítjuk a CRI-O előzetes függőségeit.
Frissítsük az operációs rendszert:
dnf -y update
Ezután be kell állítania a tűzfalat és a SELinuxot. Itt minden attól függ, hogy a házigazdánk vagy házigazdáink milyen környezetben fognak dolgozni. Beállíthat egy tűzfalat a webhely ajánlásai szerint dokumentáció, vagy ha megbízható hálózaton van, vagy harmadik féltől származó tűzfalat használ, módosítsa az alapértelmezett zónát megbízhatóra, vagy kapcsolja ki a tűzfalat:
állítsa be a kívánt verziót LÉTREHOZNI (fő verzió LÉTREHOZNI, mint már említettük, megfeleljen a kívánt verziónak Kubernetes), a legújabb stabil verzió óta Kubernetes jelenleg 1.18:
Ügyeljen az első árnyalatra, amellyel a telepítés során találkozunk: szerkesztenie kell a konfigurációt LÉTREHOZNI a szolgáltatás elindítása előtt, mivel a szükséges közös összetevő a megadotttól eltérő helyen található:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Most aktiválhatja és elindíthatja a démont LÉTREHOZNI:
A második fontos árnyalat: mivel nem használunk démont Dokkmunkás, de a démont használjuk LÉTREHOZNI, indítás és inicializálás előtt Kubernetes el kell végeznie a megfelelő beállításokat a /var/lib/kubelet/config.yaml konfigurációs fájlban, miután először létrehozta a kívánt könyvtárat:
A harmadik fontos pont, amellyel a telepítés során találkozunk: annak ellenére, hogy feltüntettük a használt illesztőprogramot cgroup, és konfigurációja az átadott argumentumokon keresztül kubelet elavult (ahogy a dokumentációban kifejezetten szerepel), argumentumokat kell hozzáadnunk a fájlhoz, különben a fürt nem inicializálódik:
A testreszabáshoz irányító-sík vagy munkás csomópontokat percek alatt használhatja ezzel a forgatókönyvvel.
Ideje inicializálni a klaszterünket.
A fürt inicializálásához futtassa a következő parancsot:
kubeadm init --pod-network-cidr=10.244.0.0/16
Feltétlenül írja le a „kubeadm join…” fürthöz való csatlakozás parancsát, amelyet a kimenet végén kell használnia, vagy legalább a megadott tokeneket.
Telepítsük a bővítményt (CNI) a Pod hálózathoz. Javaslom a használatát Karton. Esetleg népszerűbb Flanel kompatibilitási problémái vannak nftables, igen és Karton - a projekt által ajánlott és teljes körűen tesztelt egyetlen CNI implementáció Kubernetes:
Ahhoz, hogy egy dolgozó csomópontot fürtünkhöz csatlakoztasson, be kell állítania az 1. és 2. utasítás szerint, vagy forgatókönyv, majd futtassa a parancsot a „kubeadm init...” kimenetből, amelyet az előző lépésben írtunk le:
Ellenőrizzük, hogy a klaszterünk inicializálva van-e, és elkezdett-e működni:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Kész! Már tárolhat hasznos terheket a K8s-fürtön.
Mi vár ránk előttünk
Remélem, hogy a fenti utasítások segítségével időt és idegeket takarított meg.
Az iparágban lezajló folyamatok kimenetele gyakran attól függ, hogy a végfelhasználók és a megfelelő résbe tartozó egyéb szoftverek fejlesztői hogyan fogadják azokat. Egyelőre nem teljesen világos, hogy néhány év múlva mihez vezetnek az OCI-kezdeményezések, de örömmel figyeljük. Most megoszthatja véleményét a megjegyzésekben.
Maradjon velünk!
Ez a cikk a következő forrásoknak köszönhetően jelent meg: