Sumber Inventori Ansible Kubernetes (K8s).

Sumber Inventori Ansible Kubernetes K8s



Dalam siaran ini, kita belajar cara menggunakan pemalam Kubernetes dalam alat Ansible. Dalam Ansible, sukar untuk menguruskan sejumlah besar kontena. Tetapi menggunakan Kubernetes dalam Ansible sangat membantu semasa menguruskan bekas. Dalam panduan ini, kita akan mempelajari apakah sumber inventori Kubernetes dan cara ia berfungsi dalam Ansible.

Google melancarkan perisian pengurusan mudah diakses yang dipanggil Kubernetes yang juga dikenali sebagai K8s yang digunakan untuk mengurus konfigurasi maya melalui set jauh mesin dengan ciri pemasangan masa henti sifar, pengembalian automatik dan kebolehskalaan yang menyediakan pemalam Kubernetes dengan sangat mudah disesuaikan seni bina dalam Ansible. Melalui ketersediaan API REST untuk fungsi yang diperlukan, matlamat utama Kubernetes adalah untuk menyembunyikan kerumitan yang dikaitkan dengan mengawal beberapa bekas.







Konfigurasi Kubernetes adalah berdasarkan pelayan-klien. Walau bagaimanapun, secara lalai, hanya terdapat satu pelayan utama yang berfungsi sebagai hos kawalan. Dalam Kubernetes, kami juga boleh menggunakan pengawal berbilang utama untuk konfigurasi Kubernetes. Sumber inventori K8s kadangkala diperlukan untuk sistem kawalan dan mengkonfigurasi perkhidmatan pada hos jauh untuk mengawal pod. Tetapi terdapat kesukaran untuk mendapatkan arahan khusus tentang cara berbuat demikian. Hasilnya, kami melaksanakan tutorial ini tentang cara membuat Buku Play Ansible yang mengekstrak pod dalam domain dan menghasilkan sumber inventori Kubernetes.



Prasyarat Menggunakan Sumber Inventori Kubernetes dalam Ansible

Untuk menggunakan sumber inventori Kubernetes dalam Ansible, terdapat arahan atau arahan proses peringkat sepanjang panduan ini. Pastikan anda mempunyai persediaan yang diperlukan jika anda ingin meneruskannya:



  • Untuk bekerja dalam senario Ansible, kami mula-mula menyediakan alat Ansible pada pelayan dan pastikan anda mempunyai versi Ansible 2.11.7 supaya kami boleh menggunakan pemalam Kubernetes dengan mudah.
  • Untuk menilai pemalam Kubernetes, kami memerlukan peranti pelayan jauh dengan kluster Kubernetes terbina dalam.
  • Hos jauh kini dikonfigurasikan untuk melaksanakan arahan dan buku main Ansible, serta fail inventori terbina. Nama peranti jauh sasaran ialah K8s Master Node.
  • Versi Python ialah 3.6 atau lebih tinggi yang mesti dipasang pada peranti pengawal Ansible. Ia juga boleh berada dalam peranti hos jauh sasaran.
  • Versi modul openshift Python ialah 0.6 atau lebih tinggi. Kami juga memerlukan modul pyYAML versi 3.11 atau lebih tinggi. Kedua-dua modul mesti disediakan dalam peranti pelayan jauh serta peranti pengawal.

Contoh:





Berikut ialah contoh pertama di mana kami melaksanakan Kubernetes dalam Ansible. Untuk berbuat demikian, kami menggunakan mana-mana persekitaran Ansible untuk melaksanakan sumber inventori Kubernetes. Proses tersenarai berikut dijalankan dalam senario berikut menggunakan Pemalam Inventori Kubernetes:

  • Pelaksanaan ruang nama baharu dalam kelompok K8 dalam Ansible.
  • Penciptaan pod nginx menggunakan buku main Ansible.
  • Penciptaan penggunaan nginx dalam Ansible.

Untuk menjadikan konsep dan pelaksanaan mudah difahami, kami melaksanakan contoh dalam beberapa langkah.



Langkah 1: Laksanakan Ruang Nama Baharu dalam Kluster K8 dalam Ansible

Dalam langkah pertama, kami mencipta buku main supaya kami boleh menulis kandungan dalam format '.yml' dalam Ansible. Untuk mencipta buku permainan, berikut ialah arahan yang kami gunakan:

[ akar @ tuan ansible ] # nano  nginx_pod.yml

Kini, buku main 'pod.yml' dicipta dan dilancarkan ke terminal baharu Ansible. Kami mula menulis skrip. Dalam buku main, kami mula-mula menentukan versi API yang kami gunakan dalam pod Ansible iaitu 'v1'. Ruang nama yang kami takrifkan ialah 'ruang nama ansible'. Kemudian, kami menyenaraikan metadata ruang nama ansible. Dalam metadata, kami menggunakan perisian nginx dan label yang mengandungi peringkat hadapan nilai di dalamnya. Dalam spesifikasi buku main, kami menyenaraikan nama dan imej yang disimpan dalam bekas; kedua-duanya mengandungi nginx di dalamnya.

Langkah 2: Cipta Dokumen Manifes dalam Ansible

Sekarang, kami mencipta dokumen lain dalam direktori Ansible yang sama iaitu dokumen penempatan dalam format '.yml'. Untuk mencipta dokumen manifes, gunakan arahan berikut dalam terminal Ansible:

[ akar @ tuan ansible ] # nano nginx_deployment.yml

Dalam dokumen manifes, kami mula-mula menentukan sekali lagi versi apl iaitu 'app/v1'. Kemudian, kami memberitahu jenis fail itu, sama ada ia adalah fail penempatan. Kemudian, kami mentakrifkan ruang nama iaitu ruang nama ansible. Untuk membina pelaksanaan, dua replika di dalam ruang nama ansible menunjukkan nombor pod. Imej nginx ialah 1.14.2 yang dilancarkan dalam pod. Parameter matchLabels menyediakan teg untuk pod dan spesifikasinya di bawah parameter spesifikasi. Jika entah bagaimana teg pada pod sepadan dengan yang dinyatakan dalam maklumat konfigurasi, pelaksanaan berlaku dalam dokumen manifes dalam Ansible.

Langkah 3: Cipta Playbook untuk Pelaksanaan Kubernetes dalam Ansible

Sekarang, kami mahu mencipta satu lagi buku main dalam Ansible. Dalam buku main ini, kami melaksanakan kefungsian Kubernetes di dalamnya. Gunakan arahan berikut untuk mencipta buku permainan:

[ akar @ tuan ansible ] # nano kubernetes_main.yml

Buku main dibuat dalam direktori yang sama di mana buku main dan dokumen manifes sebelumnya disimpan dalam Ansible. Dalam buku main, kami mula-mula mentakrifkan kefungsian buku main yang ingin kami laksanakan. Untuk membina sambungan, kami menyediakan hos jauh yang ingin kami sasarkan. Di sini, kami menyasarkan 'semua' hos. Seterusnya, kami mentakrifkan pembolehubah untuk menyemak penterjemah Python dalam Ansible menggunakan laluan di mana ia disimpan. Sekarang, kami mentakrifkan tugasan dalam buku permainan. Mula-mula, kami menyemak status peranti minikube. Seterusnya, kami mencipta ruang nama Kubernetes baharu dalam buku main. Kemudian, salin nginx_pod.yml dan nginx_deployment .yml ke peranti jauh.

Melalui dokumen yml ini, kami membina pelaksanaan pod dalam peranti jauh. Kemudian, kami menyemak sama ada pod Kubernetes hadir atau tidak pada lokasi yang ditentukan dalam peranti jauh.

Selepas penamatan buku permainan, kami kini membina fail inventori supaya kami membuat sambungan antara pengawal Ansible dan hos jauh sasaran.

Semua:
hos:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
kata laluan_ansible: ********
sambungan_ansible: ssh
ansible_port: 22

[ akar @ tuan ansible ] # ansible-playbook kubernate_main.yml

Berikut ialah output yang dikehendaki di mana kita melihat bahawa tugasan berjaya diletakkan pada mesin sasaran:

Selepas tugasan diletakkan pada mesin sasaran, kami menyemak sama ada 'ruang nama-ansible' berada dalam kelompok Kubernetes atau tidak. Kami menggunakan arahan 'grep' berikut:

[ akar @ tuan ansible ] # kubectl dapatkan ruang nama | grep ansible-ruang nama

Jika anda ingin menyemak pod yang dibuat dalam ruang nama gugusan Kubernetes, tulis arahan berikut untuk menyemak:

[ akar @ tuan ansible ] # kubectl dapatkan pod --namespace ansible-namespace

Seperti yang anda lihat dalam output sebelumnya, kami mendapat pod yang sedang berjalan pada peranti. Sekarang, kami menyemak penggunaan yang kami buat dalam kelompok Kubernetes. Gunakan pernyataan berikut untuk menyemak penggunaan yang telah dibuat:

[ akar @ tuan ansible ] # kubectl dapatkan deployments --namespace ansible-namespace

Kesimpulan

Kami mengetahui apakah sumber inventori Kubernetes dalam Ansible. Kami juga mempelajari cara menggunakan inventori Kubernetes dalam Ansible. Kemudian, kami melaksanakan contoh supaya kami akan mengetahui dengan lebih jelas tentang cara kerja sumber inventori Kubernetes dalam Ansible.