Ebben a bejegyzésben megtudjuk, hogyan kell használni a Kubernetes bővítményt az Ansible eszközben. Az Ansible-ben nehéz nagyszámú konténer kezelése. De a Kubernetes használata az Ansible-ben hasznos a tárolók kezelése során. Ebből az útmutatóból megtudjuk, mi a Kubernetes készletforrás, és hogyan működik az Ansible-ben.
A Google elindította a könnyen elérhető kezelőszoftvert, a Kubernetes nevű, más néven K8s-t, amely a virtualizált konfigurációk távoli gépcsoporton keresztüli kezelésére szolgál, nulla leállási idejű telepítési funkciókkal, automatizált visszaállítással és méretezhetőséggel, amely a Kubernetes beépülő modul számára rendkívül alkalmazkodó képességet biztosít. építészet az Ansible-ben. A szükséges funkciókhoz rendelkezésre álló REST API-k révén a Kubernetes elsődleges célja, hogy elrejtse a számos konténer vezérlésével kapcsolatos bonyolultságokat.
A Kubernetes konfigurációja a kliens-szerveren alapul. Alapértelmezés szerint azonban csak egy főszerver működik vezérlő gazdagépként. A Kubernetesben több fős vezérlőket is használhatunk a Kubernetes konfigurációjához. A K8s készletforrása időnként szükséges a vezérlőrendszerekhez és a távoli gazdagépen lévő szolgáltatások konfigurálásához a podok vezérléséhez. De nehézségekbe ütközik az erre vonatkozó konkrét utasítások megszerzése. Ennek eredményeként megvalósítjuk ezt az oktatóanyagot arról, hogyan készítsünk Ansible Playbook-ot, amely kibontja a tartományban lévő podokat, és létrehoz egy Kubernetes készletforrást.
A Kubernetes Inventory Source használatának előfeltételei az Ansible-ben
A Kubernetes leltárforrás Ansible-ben való használatához ebben az útmutatóban szakaszos folyamatutasítások vagy parancsok találhatók. Győződjön meg arról, hogy rendelkezik a szükséges felkészültséggel, ha előre szeretne lépni:
- Az Ansible forgatókönyvben való munkához először beállítjuk az Ansible eszközt a szerveren, és meg kell győződni arról, hogy az Ansible 2.11.7-es verziója van, hogy könnyen tudjuk használni a Kubernetes beépülő modult.
- A Kubernetes beépülő modul értékeléséhez szükségünk van egy távoli kiszolgálóeszközre egy beépített Kubernetes-fürttel.
- A távoli gazdagép jelenleg úgy van beállítva, hogy végrehajtsa az Ansible utasításokat és játékkönyveket, valamint egy beépített leltárfájlt. A cél távoli eszköz neve K8s Master Node.
- A Python verziója 3.6 vagy újabb, amelyet telepíteni kell az Ansible vezérlő eszközére. A cél távoli gazdagépen is lehet.
- A Python openshift moduljának verziója 0.6 vagy újabb. Szükségünk van egy 3.11-es vagy újabb verziójú pyYAML modulra is. Mindkét modult be kell állítani a távoli szerver eszközön és a vezérlőeszközön is.
Példa:
Itt van a legelső példa, ahol megvalósítjuk a Kubernetes-t az Ansible-ben. Ehhez bármilyen Ansible-környezetet használunk a Kubernetes készletforrás megvalósításához. A következő felsorolt folyamatok a következő forgatókönyvben hajtódnak végre a Kubernetes Inventory Plugin használatával:
- Az új névtér bevezetése a K8s-fürtben az Ansible-ben.
- Nginx pod létrehozása az Ansible playbook segítségével.
- Az nginx telepítésének létrehozása az Ansible-ben.
A fogalmak és a végrehajtás egyszerű megértése érdekében a példát több lépésben valósítjuk meg.
1. lépés: Valósítsa meg az új névteret a K8s-fürtben az Ansible-ben
Első lépésben elkészítjük a játékkönyvet, hogy az Ansible-ben „.yml” formátumban tudjuk megírni a tartalmat. A játékkönyv létrehozásához a következő parancsot használjuk:
[ gyökér @ mester lehetséges ] # nano nginx_pod.yml
Most elkészült a „pod.yml” játékkönyv, és elindult az Ansible új terminálján. Elkezdjük írni a forgatókönyvet. A játékkönyvben először meghatározzuk az API-verziót, amelyet az Ansible podban használunk, amely „v1”. Az általunk definiált névtér „ansible-namespace”. Ezután felsoroljuk az ansible-namespace metaadatait. A metaadatokban az nginx szoftvert és a címkét használjuk, amely egy szintű érték frontendet tartalmaz. A játékfüzet specifikációjában felsoroljuk a tárolóban tárolt nevet és képet; mindkettő tartalmazza az nginxet.
2. lépés: Hozd létre a manifeszt dokumentumot az Ansible-ben
Most létrehozunk egy másik dokumentumot az Ansible ugyanabban a könyvtárában, amely az „.yml” formátumú telepítési dokumentum. A jegyzékdokumentum létrehozásához használja a következő parancsot az Ansible terminálban:
[ gyökér @ mester lehetséges ] # nano nginx_deployment.yml
A jegyzékdokumentumban először újra meghatározzuk az alkalmazás verzióját, amely „app/v1”. Ezután megmondjuk, hogy milyen fájlról van szó, hogy telepítési fájl-e. Ezután meghatározzuk a névteret, amely ansible-namespace. A megvalósítás felépítéséhez az ansible-namespace-en belül két replika mutatja a pod számát. Az nginx képek 1.14.2-esek, amelyek a podban indulnak el. A matchLabels paraméter biztosítja a címkéket a sorba rendezésekhez és azok specifikációit a spec paraméter alatt. Ha a soron lévő címkék valamilyen módon megegyeznek a konfigurációs információkban megadottakkal, a megvalósítás az Ansible jegyzékdokumentumában történik.
3. lépés: Hozd létre a Kubernetes-implementációs útmutatót az Ansible-ben
Most egy másik játékkönyvet szeretnénk létrehozni az Ansible-ben. Ebben a játékkönyvben a Kubernetes funkcióit valósítjuk meg benne. A játékkönyv létrehozásához használja a következő parancsot:
[ gyökér @ mester lehetséges ] # nano kubernetes_main.yml
A játékkönyv ugyanabban a könyvtárban jön létre, ahol az előző játékkönyv és a jegyzékdokumentum az Ansible alkalmazásban van tárolva. A játékfüzetben először meghatározzuk a játékkönyv megvalósítani kívánt funkcióját. A kapcsolat kiépítéséhez biztosítjuk a távoli gazdagépeket, amelyeket meg akarunk célozni. Itt az „összes” házigazdát célozzuk meg. Ezután definiáljuk a változót a Python értelmező ellenőrzéséhez az Ansible-ben a tárolási útvonal használatával. Most meghatározzuk a feladatokat a füzetben. Először is ellenőrizzük a minikube eszköz állapotát. Ezután létrehozunk egy új Kubernetes névteret a forgatókönyvben. Ezután másolja az nginx_pod.yml és nginx_deployment .yml fájlokat a távoli eszközre.
Ezeken az yml dokumentumokon keresztül építjük fel a pod implementációt a távoli eszközön. Ezután ellenőrizzük, hogy a Kubernetes pod jelen van-e a távoli eszköz megadott helyén.
A playbook befejezése után most felépítjük a leltárfájlt úgy, hogy létrehozzuk a kapcsolatot az Ansible vezérlő és a cél távoli gazdagép között.
Minden:otthont ad:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_password: *******
ansible_connection: ssh
ansible_port: 22
[ gyökér @ mester lehetséges ] # ansible-playbook kubernates_main.yml
Itt van a kívánt kimenet, ahol azt látjuk, hogy a feladatok sikeresen elhelyezve a célgépen:
Miután a feladatot elhelyeztük a célgépen, ellenőrizzük, hogy az „ansible-namespace” a Kubernetes-fürtben van-e vagy sem. A következő „grep” parancsot használjuk:
[ gyökér @ mester lehetséges ] # kubectl get namespace | grep ansible-namespace
Ha ellenőrizni szeretné a létrehozott podot a Kubernetes-fürt névterében, írja be a következő parancsot az ellenőrzéshez:
[ gyökér @ mester lehetséges ] # kubectl get pods --namespace ansible-namespace
Amint az előző kimenetben látható, megkapjuk az eszközön futó podokat. Most ellenőrizzük a Kubernetes-fürtben végrehajtott központi telepítést. Használja a következő utasítást a már végrehajtott telepítések ellenőrzéséhez:
[ gyökér @ mester lehetséges ] # kubectl get deployments --namespace ansible-namespace
Következtetés
Megtudtuk, mi az a Kubernetes készletforrás az Ansible-ben. Megtanultuk továbbá a Kubernetes készlet hasznosítását az Ansible-ben. Ezután megvalósítottunk egy példát, hogy jobban megismerjük a Kubernetes készletforrás működését az Ansible-ben.