1.3. fejezet, Ingress
Beküldte pzoli - 2025, április 9 - 8:54de
Service külső elérése (expose deployment) helyett alkalmazható. NodePort használata helyett és LoadBalancer típus helyett belső szolgáltatást készítünk, és a külsö port továbbítást az Ingress végzi a szolgáltatás felé. Útvonal alapú proxy-ként is használható.
Kapcsolódó hivatkozások
- Kubernetes Ingress with NGINX Ingress Controller Example
- How to Get a Kubernetes Ingress
- (nem létező hivatkozás: https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/baremetal/service-nodeport.yaml)
Ingress-Nginx telepítése
helm upgrade --install ingress-nginx ingress-nginx \ --repo https://kubernetes.github.io/ingress-nginx \ --namespace ingress-nginx --create-namespace
dashboard-ingress
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress namespace: kubernetes-dashboard spec: ingressClassName: nginx rules: - host: dashboard.me.local http: paths: - path: / pathType: Prefix backend: service: name: kubernetes-dashboard port: number: 80
IngressController pod végzi a vezérlését. Kiértékeli és feldolgozza az ingress szabályait, az átirányításokat menedzseli. Ajánlott az nginx ingress controller. Telepítése:
minikube addons enable ingress
Telepítés ellenőrzése:
kubectl get pods -n ingress-nginx kubectl get ingress -n kubernetes-dashboard --watch # böngészőben nyissuk meg a /etc/hosts fájlban is beállított címet http://dashboard.me.local
Útvonal és aldomain-ek proxy kiszolgálására is alkalmazható szabályok
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress namespace: kubernetes-dashboard spec: ingressClassName: nginx rules: - host: dashboard.me.local http: paths: - path: /shopping pathType: Prefix backend: service: name: shopping-service port: number: 80 - path: /test pathType: Prefix backend: service: name: testing-service port: number: 80 - host: analytics.dashboard.me.local http: paths: - path: / pathType: Prefix backend: service: name: analytics-service port: number: 80
TLS beállítása HTTPS protokollhoz
apiVersion: v1 kind: Secret metadata: name: myapp-secret-tls namespace: kubernetes-dashboard data: tls.crt: # base64 encoded cert tls.key: # base64 encoded key type: kubernetes.io/tls
A namespace legyen az ingress komponens névterével megegyező. Self-Signed TLS kulcs generálásáról ide kattintva találsz írást.
Secret parancssorból generálva
kubectl create secret tls tls-secret --namespace kubernetes-dashboard --key=cert/key.pem --cert=cert/cert.pem --dry-run=client -o=yaml > tls.yaml
Ingress konfigurálása a TLS kulcsok használatához:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: dashboard-ingress namespace: kubernetes-dashboard spec: tls: - hosts: - dashboard.me.local secretName: myapp-secret-tls ingressClassName: nginx rules: - host: dashboard.me.local http: paths: - path: / pathType: Prefix backend: service: name: kubernetes-dashboard port: number: 80
- A hozzászóláshoz be kell jelentkezni