Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: AKS op Windows Server
Een ingress controller is een Kubernetes-resource die externe toegang tot services binnen het Kubernetes-cluster toestaat. Met Ingress kan een operator een service blootstellen aan verzoeken vanuit externe netwerken, meestal HTTP of HTTPS. U configureert de toegang door een set regels te maken waarmee de binnenkomende verbindingen worden gedefinieerd die specifieke services bereiken.
Een ingress-controller is software die configureerbare verkeersroutering voor Kubernetes-services mogelijk maakt. Kubernetes-ingressresources worden gebruikt om de binnenkomende verkeersregels en routes voor individuele Kubernetes-services te configureren. Met behulp van een ingangscontroller en regels voor inkomend verkeer kunt u één IP-adres gebruiken om verkeer naar meerdere services in een Kubernetes-cluster te routeren.
Nadat u de controller in uw systeem hebt uitgerold, kunt u het ingress-manifest maken en uitrollen. Op dit moment gebruikt u inkomend verkeer in AKS Arc met behulp van de NGINX-ingangscontroller. Zie Installatie met manifesten voor informatie over het installeren, configureren en gebruiken van de NGINX-ingangscontroller.
Ingress verschilt van NodePort en LoadBalancer op een unieke manier en verbetert de routering van verkeer naar uw cluster op een goedkopere manier. Als u NodePort-services definieert, worden er talloze willekeurige poorten gemaakt, en als u LoadBalancer-services definieert, stijgen de kosten voor cloudresources meer dan u misschien zou willen. Wanneer u een ingangscontroller definieert, voegt u de regels voor verkeersroutering samen in één resource die wordt uitgevoerd als onderdeel van uw cluster. Met NodePort en LoadBalancer kunt u een service beschikbaar maken door die waarde op te geven in het type service, terwijl inkomend verkeer een onafhankelijke resource voor de service is. Ingress wordt gedefinieerd, aangemaakt en verwijderd, afzonderlijk van de service.
U kunt ingress op verschillende manieren implementeren, afhankelijk van de gebruikssituatie. Ingress resources worden gebruikt om de configuratie binnen de ingress-controller bij te werken, zodat bepaald kan worden hoe deze functioneert.
Gebruik ingress om services beschikbaar te maken via extern toegankelijke URL's
Een voorbeeld van het gebruik van ingress wordt weergegeven in het volgende YAML-manifest. Het ingress.class
wordt weergegeven in de metagegevens (in dit voorbeeld ingress-nginx
) en met deze instelling kan de NGINX-ingangscontroller weten wat er moet worden bewaakt en bijgewerkt:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
De spec
sectie bevat informatie over wat er is geconfigureerd. In dit voorbeeld wordt een regel (of set regels) gedefinieerd en bevat de volgende items:
- De host waarop de regels worden toegepast.
- Of het verkeer HTTP of HTTPS is.
- Het bewaakte pad.
- De interne service en poort waar het verkeer wordt verzonden.
Gebruik ingress om verkeer te verdelen en te balanceren
In het volgende voorbeeld wordt een ander pad toegevoegd aan het manifest dat taakverdeling tussen verschillende back-ends van een toepassing toestaat. In dit voorbeeld kan de operator verkeer splitsen en verzenden naar verschillende service-eindpunten en implementaties op basis van het beschreven pad. Achter elk pad bevinden zich een implementatie en een service, wat handig is voor eindpunten die meer verkeer ontvangen:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-and-earth
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
- path: /hello-earth
pathType: Prefix
backend:
service:
name: hello-earth
port:
number: 8080
Inkomend verkeer gebruiken om HTTP-verkeer te routeren naar meerdere hostnamen op hetzelfde IP-adres
U kunt voor elke host een andere toegangsbeheerresource gebruiken, waarmee u het verkeer met meerdere hostnamen kunt beheren. Als u een andere bron voor inkomend verkeer wilt gebruiken, wijst u meerdere hostnamen aan op hetzelfde openbare IP-adres dat wordt gebruikt voor de LoadBalancer-service. In het volgende manifestbestand is een productieversie van hello-world
toegevoegd. De hostnaam prod.example.com
wordt gebruikt en verkeer wordt naar de nieuwe service hello-world-prod
verwezen. Verkeer komt binnen via het IP-adres van de load balancer en wordt gerouteerd op basis van de hostnaam en het pad dat u opgeeft:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-prod
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-test
port:
number: 8080
- host: prod.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-prod
port:
number: 8080
Volgende stappen
Zie de volgende koppelingen voor meer informatie: