Źródło zasobów reklamowych Ansible Kubernetes (K8s).

Zrodlo Zasobow Reklamowych Ansible Kubernetes K8s



W tym poście dowiemy się, jak korzystać z wtyczki Kubernetes w narzędziu Ansible. W Ansible trudno jest zarządzać dużą liczbą kontenerów. Ale wykorzystanie Kubernetes w Ansible jest pomocne przy zarządzaniu kontenerami. W tym poradniku dowiemy się czym jest źródło zasobów Kubernetes i jak funkcjonuje w Ansible.

Google uruchomił łatwo dostępne oprogramowanie do zarządzania o nazwie Kubernetes, znane również jako K8s, które służy do zarządzania zwirtualizowanymi konfiguracjami na zdalnym zestawie maszyn z funkcjami instalacji bez przestojów, automatycznym przywracaniem i skalowalnością, co zapewnia wtyczce Kubernetes niezwykle elastyczne możliwości architektura w Ansible. Dzięki dostępności interfejsów API REST dla niezbędnej funkcjonalności, głównym celem Kubernetes jest ukrycie złożoności związanych z kontrolowaniem wielu kontenerów.







Konfiguracja Kubernetes opiera się na modelu klient-serwer. Jednak domyślnie istnieje tylko jeden serwer główny, który pełni rolę hosta sterującego. W Kubernetes do konfiguracji Kubernetes możemy również wykorzystać kontrolery wielogłówne. Źródło zapasów K8s jest czasami niezbędne do systemów sterowania i konfigurowania usług na zdalnym hoście w celu kontrolowania zasobników. Istnieją jednak trudności w uzyskaniu szczegółowych instrukcji, jak to zrobić. W rezultacie wdrażamy ten samouczek dotyczący tworzenia Ansible Playbook, który wyodrębnia strąki w domenie i tworzy źródło zasobów reklamowych Kubernetes.



Wymagania wstępne korzystania ze źródła zapasów Kubernetes w Ansible

Aby użyć źródła zasobów reklamowych Kubernetes w rozwiązaniu Ansible, w tym przewodniku znajdują się instrukcje lub polecenia procesu etapowego. Upewnij się, że masz niezbędne przygotowanie, jeśli chcesz iść do przodu:



  • Aby pracować w scenariuszu Ansible, najpierw konfigurujemy narzędzie Ansible na serwerze i upewniamy się, że masz wersję Ansible 2.11.7, abyśmy mogli łatwo korzystać z wtyczki Kubernetes.
  • Aby ocenić wtyczkę Kubernetes, potrzebujemy zdalnego urządzenia serwerowego z wbudowanym klastrem Kubernetes.
  • Zdalny host jest obecnie skonfigurowany do wykonywania instrukcji Ansible i podręczników, a także wbudowanego pliku inwentarza. Nazwa docelowego urządzenia zdalnego to K8s Master Node.
  • Wersja Pythona to 3.6 lub wyższa, która musi być zainstalowana na urządzeniu kontrolera Ansible. Może również znajdować się w docelowym zdalnym urządzeniu hosta.
  • Wersja modułu openshift Pythona to 0.6 lub nowsza. Potrzebujemy również modułu pyYAML w wersji 3.11 lub nowszej. Oba moduły muszą być skonfigurowane zarówno w urządzeniu serwera zdalnego, jak iw urządzeniu kontrolera.

Przykład:





Oto pierwszy przykład implementacji Kubernetes w Ansible. W tym celu wykorzystujemy dowolne środowisko Ansible do implementacji źródła zasobów Kubernetes. Następujące wymienione procesy są wykonywane w następującym scenariuszu przy użyciu wtyczki Kubernetes Inventory:

  • Implementacja nowej przestrzeni nazw w klastrze K8s w Ansible.
  • Tworzenie poda nginx przy użyciu podręcznika Ansible.
  • Stworzenie wdrożenia nginx w Ansible.

Aby koncepcje i wykonanie były łatwe do zrozumienia, implementujemy przykład w kilku krokach.



Krok 1: Zaimplementuj nową przestrzeń nazw w klastrze K8s w Ansible

W pierwszym kroku tworzymy playbook, abyśmy mogli napisać treść w formacie „.yml” w Ansible. Aby utworzyć podręcznik, użyjemy następującego polecenia:

[ źródło @ mistrz ansibla ] # nano nginx_pod.yml

Teraz podręcznik „pod.yml” jest tworzony i uruchamiany w nowym terminalu Ansible. Zaczynamy pisać scenariusz. W podręczniku najpierw definiujemy wersję API, której używamy w podeście Ansible, czyli „v1”. Przestrzeń nazw, którą definiujemy, to „przestrzeń nazw ansible”. Następnie podajemy metadane przestrzeni nazw ansible. W metadanych używamy oprogramowania nginx i etykiety, która zawiera interfejs warstwy wartości. W specyfikacji podręcznika podajemy nazwę i obraz przechowywany w kontenerze; oba zawierają w sobie nginx.

Krok 2: Utwórz dokument Manifest w Ansible

Teraz tworzymy kolejny dokument w tym samym katalogu Ansible, który jest dokumentem wdrożenia w formacie „.yml”. Aby utworzyć dokument manifestu, użyj następującego polecenia w terminalu Ansible:

[ źródło @ mistrz ansibla ] # nano nginx_deployment.yml

W dokumencie manifestu najpierw ponownie definiujemy wersję aplikacji, która jest „app/v1”. Następnie mówimy jaki to plik, czy jest to plik wdrożeniowy. Następnie definiujemy przestrzeń nazw, którą jest ansible-namespace. Aby zbudować implementację, dwie repliki wewnątrz przestrzeni nazw ansible pokazują numer poda. Obrazy nginx to 1.14.2, które są uruchamiane w kapsule. Parametr matchLabels udostępnia tagi podów i ich specyfikacje w parametrze spec. Jeśli w jakiś sposób tagi w podach pasują do tych określonych w informacjach konfiguracyjnych, implementacja odbywa się w dokumencie manifestu w Ansible.

Krok 3: Utwórz Podręcznik wdrożenia Kubernetes w Ansible

Teraz chcemy stworzyć kolejny podręcznik w Ansible. W tym poradniku implementujemy w nim funkcjonalność Kubernetes. Użyj następującego polecenia, aby utworzyć podręcznik:

[ źródło @ mistrz ansibla ] # nano kubernetes_main.yml

Playbook jest tworzony w tym samym katalogu, w którym poprzedni podręcznik i dokument manifestu są przechowywane w Ansible. W podręczniku najpierw definiujemy funkcjonalność podręcznika, którą chcemy zaimplementować. Aby zbudować połączenie, udostępniamy zdalne hosty, na które chcemy kierować. Tutaj celujemy w „wszystkich” hostów. Następnie definiujemy zmienną do sprawdzania interpretera Pythona w Ansible przy użyciu ścieżki, w której jest przechowywana. Teraz definiujemy zadania w podręczniku. Najpierw sprawdzamy stan urządzenia minikube. Następnie tworzymy nową przestrzeń nazw Kubernetes w podręczniku. Następnie zduplikuj nginx_pod.yml i nginx_deployment .yml na urządzeniu zdalnym.

Za pomocą tych dokumentów yml budujemy implementację pod na zdalnym urządzeniu. Następnie sprawdzamy, czy pod Kubernetes jest obecny w określonej lokalizacji na zdalnym urządzeniu.

Po zakończeniu playbooka tworzymy teraz plik inwentarza, aby nawiązać połączenie między kontrolerem Ansible a docelowym hostem zdalnym.

Wszystko:
zastępy niebieskie:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: ansible
ansible_hasło: ********
ansible_connection: ssh
ansible_port: 22

[ źródło @ mistrz ansibla ] # ansible-playbook kubernates_main.yml

Oto pożądane dane wyjściowe, w których widzimy, że zadania zostały pomyślnie umieszczone na komputerze docelowym:

Po umieszczeniu zadania na maszynie docelowej sprawdzamy, czy „przestrzeń nazw ansible” znajduje się w klastrze Kubernetes, czy nie. Używamy następującego polecenia „grep”:

[ źródło @ mistrz ansibla ] # kubectl pobierz przestrzeń nazw | grep przestrzeń nazw ansible

Jeśli chcesz sprawdzić utworzony pod w przestrzeni nazw klastra Kubernetes, napisz następującą komendę do sprawdzenia:

[ źródło @ mistrz ansibla ] # kubectl get pods --namespace ansible-namespace

Jak widać na poprzednim wyjściu, otrzymujemy pody działające na urządzeniu. Teraz sprawdzamy wdrożenie, które wykonaliśmy w klastrze Kubernetes. Skorzystaj z następującej instrukcji, aby sprawdzić już wykonane wdrożenia:

[ źródło @ mistrz ansibla ] # kubectl pobierz wdrożenia --namespace ansible-namespace

Wniosek

Dowiedzieliśmy się, czym jest źródło zasobów Kubernetes w Ansible. Dowiedzieliśmy się również, jak wykorzystać zasoby Kubernetes w Ansible. Następnie zaimplementowaliśmy przykład, dzięki któremu dokładniej poznamy działanie źródła zasobów Kubernetes w Ansible.