Pamiętacie, jak opisywałem jak konfigurację NSX Advanced Load Balancer wraz z NSX-t? Nie?! Tak właśnie myślałem. Zatem przypomnę kilka przydatnych artykułów, ale po kolei.
Na początek trochę teorii. Ingress Controller jest komponentem w systemach Kubernetes (k8s), który jest odpowiedzialny za kierowanie ruchu sieciowego do odpowiednich aplikacji działających w klastrze.
W skrócie, Ingress Controller jest odpowiedzialny za obsługę ruchu z zewnątrz klastra do wewnętrznych usług. Kontroler ten obsługuje żądania HTTP i HTTPS i przekierowuje je do odpowiednich aplikacji na podstawie reguł zdefiniowanych w zasobie Ingress.
Narzędzie jest konfigurowane za pomocą reguł Ingress, które definiują reguły routingu dla różnych usług w klastrze Kubernetes. Dzięki temu komponent zapewnia elastyczność i skalowalność w zarządzaniu aplikacjami w klastrze.
W ramach rozwiązania NSX Advanced load balancer mamy do dyspozycji moduł AKO (AVI Kubernetes Operator), a jest to ingress controller dla platform OpenShift, Tanzu, EKS itp. Działa razem z AVI Controller.
Wykorzystując funkcje takie jak:
Powyższe funkcjonalności są dostępne wyłącznie w wersji Enterprise. Natomiast samą licencję Essential dostajemy w ramach Taznu Standard.
Funkcje | Licencja Essentials | Licencja Enterprise |
L4 VS for Load Balancer type k8s service and control plane API | ✓ | ✓ |
L7 VS with SNI for Ingress | X | ✓ |
L7 policies | X | ✓ |
GSLB | X | ✓ |
WAF | X | ✓ |
Tenancy | X | ✓ |
Analytics | Ograniczone do VS statystyk | ✓ |
High Availability | A/S (Legacy) | ✓ |
Co jest potrzebne, aby uruchomić AKO?
Ważnym elementem jest przygotowanie profilu IPAM dla adresów VIP na interfejsie AVI-Data Segment na rysunku. Na tym interfejsie będą wystawiane adresy VIP dla usług.
Zgodnie z dokumentacją do AKO ostatnia wersja wykonujemy polecenie na jump hoście, gdzie mamy helma.
helm repo add ako https://projects.registry.vmware.com/chartrepo/ako
"ako" has been added to your repositories.
Pobranie i modyfikacja pliku Yaml
Wyświetlenie ostatniej wersji AKO
michaliwanczuk$ helm search repo ako
NAME CHART VERSION APP VERSION DESCRIPTION
ako/ako 1.9.2 1.9.2 A helm chart for Avi Kubernetes Operator
Pobranie pliku yaml
michaliwanczuk$ helm show values ako/ako --version 1.9.2 > values.yaml
Modyfikujemy plik zgodnie z naszym środowiskiem:
Plik yaml modyfikujemy w skecjach:
AKOSettings:
clusterName: tkg-cluster # Nazwa naszego Klastra TKG, na ktrorym będzie instalowane
layer7Only: true # Zmieniamy na true, chcemy pracować jako ingress L7
NetworkSettings:
serviceEngineGroupName: as # Nazwa naszej ServiceEngine Group.
controllerVersion: '21.1.3' # Wersja AVI
cloudName: NSX-Cloud # Nazwa Cloud profilu.
controllerHost: '10.0.105.18' # IP adres lub fqdn do AVI Controlera jak jest VIP to ten adres
tenantName: alb-mgmt # Nazwa tenanta w którym będą tworzone VS
avicredentials:
username: 'admin' #user do AVI
password: 'pasdsword' # Hasło dla użytkownika admin
Instalacja z wykorzystaniem Helma AKO na klastrze TKG
Aby wykonać instalację AKO musimy zalogować się do Tanzu, dokładnie do klastra TKG. Następnym krokiem jest wykonanie polecenia:
kubectl vsphere login --server=10.71.169.66 -u miwanczuk@vsphere.local --insecure-skip-tls-verify --tanzu-kubernetes-cluster-namespace tkg --tanzu-kubernetes-cluster-name tkg-cluster
Tworzenie namespace
kubectl create namespace avi-system
Instalacja
helm list -n avi-system
kubectl get pods -n avi-system
Na razie tyle. Zapoznajcie się, przetrwaćie temat, a już niebawem kontynuacja pojawi się w formie demo na naszym kanale YouTube!
Artykuł powstał przy współpracy z dostawcą usługi VMware NSX-t <klik>