Hei! Nimeni on Sergey, olen DevOps Surfissa. Surfin DevOps-osaston tavoitteena ei ole vain luoda vuorovaikutusta asiantuntijoiden välille ja integroida työprosesseja, vaan myös aktiivisesti tutkia ja ottaa käyttöön ajankohtaisia teknologioita sekä omassa että asiakkaan infrastruktuurissa.
Alla kerron hieman muutoksista konttien teknologiapinossa, joita kohtasimme tutkiessamme jakelua 8 CentOS ja siitä mikä on LUO SE ja kuinka nopeasti määritetään suoritettava ympäristö Kubernetes.
Miksi Docker ei sisälly CentOS 8:aan?
Kun olet asentanut uusimmat suuret julkaisut RHEL 8 tai 8 CentOS ei voi olla huomaamatta: nämä jakelut ja viralliset arkistot eivät sisällä sovellusta Satamatyöläinen, jotka ideologisesti ja toiminnallisesti korvaavat paketteja podman, Buildah (oletusarvoisesti läsnä jakelussa) ja LUO SE. Tämä johtuu muun muassa Red Hatin osana Open Container Initiative (OCI) -projektia kehittämien standardien käytännön toteutuksesta.
The Linux Foundationiin kuuluvan OCI:n tavoitteena on luoda avoimia teollisuuden standardeja konttiformaateille ja ajonaikaisille, jotka ratkaisevat useita ongelmia kerralla. Ensinnäkin ne eivät olleet ristiriidassa Linuxin filosofian kanssa (esimerkiksi siinä osassa, että jokaisen ohjelman tulee suorittaa yksi toiminto, ja Satamatyöläinen on eräänlainen all-in-one-yhdistelmä). Toiseksi ne voisivat poistaa kaikki ohjelmistossa olevat puutteet Satamatyöläinen. Kolmanneksi ne olisivat täysin yhteensopivia johtavien kaupallisten alustojen liiketoimintavaatimusten kanssa konttisovellusten käyttöönottoa, hallintaa ja palvelua varten (esimerkiksi Red Hat OpenShift).
Rajoitukset Satamatyöläinen ja uuden ohjelmiston edut on jo kuvattu yksityiskohtaisesti tässä artikkelissa, ja yksityiskohtainen kuvaus koko OCI-projektissa tarjotusta ohjelmistopinosta ja sen arkkitehtonisista ominaisuuksista löytyy virallisesta dokumentaatiosta ja Red Hatin itsensä artikkeleista (ei paha artikkeli Red Hat -blogissa) ja kolmannen osapuolen sivustossa arvostelut.
On tärkeää huomata, mitä toimintoja ehdotetun pinon komponenteilla on:
podman — suora vuorovaikutus säiliöiden ja kuvatallennusten kanssa runC-prosessin kautta;
Buildah — kuvien kokoaminen ja lataaminen rekisteriin;
LUO SE — suoritettava ympäristö konttiorkesterijärjestelmille (esimerkiksi Kubernetes).
Uskon, että pinon komponenttien välisen vuorovaikutuksen yleisen kaavion ymmärtämiseksi on suositeltavaa antaa tähän yhteyskaavio Kubernetes c runC ja matalan tason kirjastot käyttävät LUO SE:
LUO SE и Kubernetes noudata samaa julkaisu- ja tukisykliä (yhteensopivuusmatriisi on hyvin yksinkertainen: pääversiot Kubernetes и LUO SE samaan aikaan), ja tämä, kun otetaan huomioon kehittäjien keskittyminen tämän pinon toiminnan täydelliseen ja kattavaan testaukseen, antaa meille oikeuden odottaa maksimaalista saavutettavissa olevaa toiminnan vakautta kaikissa käyttötilanteissa (suhteellinen keveys on myös hyödyllinen tässä LUO SE verrattuna Satamatyöläinen tarkoituksellisen toiminnallisuuden rajoittamisen vuoksi).
Asennettaessa Kubernetes "oikea tapa" (OCI:n mukaan tietysti) käyttäen LUO SE päälle 8 CentOS Kohtasimme pieniä vaikeuksia, jotka kuitenkin onnistuimme voittamaan. Kerron mielelläni kanssasi asennus- ja konfigurointiohjeet, jotka vievät yhteensä noin 10 minuuttia.
Kuinka ottaa Kubernetes käyttöön CentOS 8:ssa CRI-O-kehyksen avulla
Edellytykset: vähintään yksi isäntä (2 ydintä, 4 Gt RAM-muistia, vähintään 15 Gt tallennustilaa) asennettuna 8 CentOS ("Server"-asennusprofiilia suositellaan), samoin kuin sen merkinnät paikallisessa DNS:ssä (viimeisenä keinona voit selviytyä merkinnällä /etc/hosts). Ja älä unohda poista vaihto käytöstä.
Suoritamme kaikki toiminnot isännällä pääkäyttäjänä, ole varovainen.
Ensimmäisessä vaiheessa määritämme käyttöjärjestelmän, asennamme ja määritämme CRI-O:n alustavat riippuvuudet.
Päivitetään käyttöjärjestelmä:
dnf -y update
Seuraavaksi sinun on määritettävä palomuuri ja SELinux. Täällä kaikki riippuu ympäristöstä, jossa isäntämme tai isännämme työskentelevät. Voit joko määrittää palomuurin ohjeiden mukaan dokumentointi, tai jos olet luotetussa verkossa tai käytät kolmannen osapuolen palomuuria, muuta oletusvyöhykkeeksi luotettu tai sammuta palomuuri:
aseta tarvittava versio LUO SE (pääversio LUO SE, kuten jo mainittiin, vastaavat vaadittua versiota Kubernetes), viimeisimmän vakaan version jälkeen Kubernetes tällä hetkellä 1.18:
Kiinnitä huomiota ensimmäiseen vivahteeseen, jonka kohtaamme asennusprosessin aikana: sinun on muokattava kokoonpanoa LUO SE ennen palvelun käynnistämistä, koska vaaditulla yhteisellä komponentilla on eri sijainti kuin määritetty:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Toinen tärkeä vivahde: koska emme käytä demonia Satamatyöläinen, mutta käytämme demonia LUO SE, ennen käynnistystä ja alustusta Kubernetes sinun on tehtävä asianmukaiset asetukset asetustiedostossa /var/lib/kubelet/config.yaml luotuasi ensin haluttu hakemisto:
Kolmas tärkeä kohta, jonka kohtaamme asennuksen aikana: huolimatta siitä, että olemme ilmoittaneet käytetyn ohjaimen c-ryhmä, ja sen konfigurointi välitettyjen argumenttien kautta kuutio on vanhentunut (kuten dokumentaatiossa on nimenomaisesti todettu), meidän on lisättävä tiedostoon argumentteja, muuten klusteriamme ei alusteta:
Muista kirjoittaa muistiin komento liittyäksesi klusteriin “kubeadm join…”, jota sinua pyydetään käyttämään tulosteen lopussa, tai ainakin määritetyt tunnukset.
Asennamme laajennus (CNI) Pod-verkkoon. Suosittelen käyttöä kalikoo. Mahdollisesti suositumpi Flanelli kanssa on yhteensopivuusongelmia nftables, kyllä ja kyllä kalikoo - ainoa hankkeen suosittelema ja täysin testaama CNI-toteutus Kubernetes:
Jos haluat yhdistää työntekijäsolmun klusteriimme, sinun on määritettävä se ohjeiden 1 ja 2 mukaisesti tai käytä käsikirjoitus, suorita sitten komento "kubeadm init..." -tulosta, jonka kirjoitimme muistiin edellisessä vaiheessa:
Tarkistetaan, että klusterimme on alustettu ja alkaa toimia:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Valmis! Voit jo isännöidä hyötykuormia K8s-klusterissasi.
Mikä meitä odottaa edessä
Toivon, että yllä olevat ohjeet auttoivat sinua säästämään aikaa ja hermoja.
Alan prosessien lopputulos riippuu usein siitä, kuinka suurin osa loppukäyttäjistä ja muiden ohjelmistojen kehittäjistä hyväksyy ne vastaavassa markkinarakossa. Vielä ei ole täysin selvää, mihin OCI-aloitteet johtavat muutaman vuoden kuluttua, mutta seuraamme mielellämme. Voit jakaa mielipiteesi nyt kommenteissa.
Pysy kanavalla!
Tämä artikkeli ilmestyi seuraavien lähteiden ansiosta: