Kako obezbediti pristup korisnika aplikaciji koja radi u Kubernetes-u?
sobes.tech АИ
Одговор од АИ
Postoji nekoliko osnovnih načina:
-
Tip Kubernetes usluge: LoadBalancer. Cloud provajder kreira spoljni balansator opterećenja koji usmerava saobraćaj na vaše podove.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer # Ovde se navodi tip LoadBalancer -
Tip Kubernetes usluge: NodePort. Svaki čvor klastera otvara statički port koji preusmerava saobraćaj na servis. Pristup aplikaciji je putem IP adrese bilo kog čvora i tog statičkog porta.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: NodePort # Ovde se navodi tip NodePortOvaj pristup je manje skalabilan i često se ne preporučuje za produkciono okruženje.
-
Ingress. Kubernetes objekat koji upravlja spoljnim pristupom servisima u klasteru. Zahteva prisustvo Ingress kontrolora (npr. Nginx Ingress, Traefik, HAProxy). Ingress omogućava konfiguraciju rutiranja na osnovu domena i putanja.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.mydomain.com # Domeno ime http: paths: - path: / # Putanja pathType: Prefix backend: service: name: my-app-service # Ime servisa port: number: 80 # Port servisa -
Gateway API (moderniji pristup). Evolucija Ingress-a, pruža izražajniji i proširiviji API za upravljanje pristupom. Uključuje resurse GatewayClass, Gateway, HTTPRoute (i druge tipove ruta).
apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: my-app-route spec: parentRefs: - name: my-gateway # Referenca na Gateway resurs hostnames: - "myapp.mydomain.com" rules: - matches: - path: type: Prefix value: / backendRefs: - name: my-app-service # Ime servisa port: 80 # Port servisa
Izbor metode zavisi od zahteva:
- Skalabilnosti
- Složenosti rutiranja
- Bezbednosti (SSL/TLS terminacija)
- Korišćene cloud platforme
- Potrebe za centralizovanim upravljanjem pristupom
Za većinu produkcionih scenarija koriste se LoadBalancer za obezbeđivanje ulazne tačke (često za Ingress kontroler) ili direktno, i Ingress (ili Gateway API) za fleksibilno rutiranje i upravljanje pristupom različitim servisima u klasteru.