Ansible Kubernetes (K8s) készletforrás

Ansible Kubernetes K8s Keszletforras



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.