Kubernetes Ingress je API objekt, který umožňuje jednoduché směrování externího HTTP a HTTPS provozu do služeb v Kubernetes clusteru. Ingress umožňuje uživatelům jednoduše definovat pravidla přístupu k jejich aplikacím bez nutnosti konfigurace externích load balancerů nebo Proxy serverů. V tomto článku se dozvíte, jak krok za krokem nastavit Kubernetes Ingress na CentOS 7, což je populární distribuce Linuxu vhodná pro provozování produkčních Kubernetes clusterů.
Předpoklady
- Funkční Kubernetes cluster na CentOS 7.
- Kubectl nainstalovaný a nakonfigurovaný pro komunikaci s vaším clusterem.
- Administrátorské práva na clusteru.
Krok 1: Instalace Ingress Controlleru
Prvním krokem je instalace Ingress Controlleru, který bude spravovat přístup k aplikacím na základě definovaných pravidel Ingress. Pro tento návod použijeme Nginx Ingress Controller.
-
Přidejte oficiální helm chart repozitář pro Nginx Ingress:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
-
Instalujte Nginx Ingress Controller pomocí Helm:
helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true
Krok 2: Konfigurace Ingress pravidel
Po instalaci Ingress Controlleru je potřeba definovat pravidla Ingress, která určí, jaký provoz bude směrován do kterých služeb.
-
Vytvořte soubor my-ingress.yaml
s následující definicí:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: mojedomena.cz
http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test-service
port:
number: 80
-
Aplikujte konfiguraci:
kubectl apply -f my-ingress.yaml
Krok 3: Testování Ingress
Po konfiguraci Ingress pravidel je dobré otestovat, jestli je provoz směrován správně.
-
Zjistěte externí IP adresu Ingress Controlleru:
kubectl get svc -n ingress-nginx
-
Upravte soubor /etc/hosts
na vašem počítači, aby doména mojedomena.cz
směřovala na zjištěnou IP adresu.
-
Otevřete prohlížeč a přejděte na http://mojedomena.cz/testpath
. Měli byste být přesměrováni na službu test-service
ve vašem clusteru.
Ingress představuje efektivní způsob, jak řídit přístup k aplikacím běžícím v Kubernetes clusteru z externího prostředí. S pomocí Nginx Ingress Controlleru a správně definovaných pravidel Ingress lze snadno dosáhnout požadovaného směrování provozu. Tento návod představil základní postup konfigurace na systému CentOS 7, který lze dále přizpůsobit specifickým potřebám vaší aplikace.