Ako zabezpečiť prístup používateľov k aplikácii bežiacej v Kubernetes?
sobes.tech AI
Odpoveď od AI
Existuje niekoľko hlavných spôsobov:
-
Typ služby Kubernetes: LoadBalancer. Cloudový poskytovateľ vytvorí externý load balancer, ktorý smeruje prevádzku na vaše pody.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer # Tu sa uvádza typ LoadBalancer -
Typ služby Kubernetes: NodePort. Každý uzol klastru otvorí statický port, ktorý presmerováva prevádzku na službu. Prístup k aplikácii je cez IP adresu ktoréhokoľvek uzla a tento statický port.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: NodePort # Tu sa uvádza typ NodePortTento prístup je menej škálovateľný a často sa neodporúča pre produkčné prostredie.
-
Ingress. Objekt Kubernetes, ktorý riadi externý prístup ku službám v klastre. Vyžaduje prítomnosť Ingress kontroléra (napríklad Nginx Ingress, Traefik, HAProxy). Ingress umožňuje nastaviť smerovanie na základe doménových mien a ciest.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.mydomain.com # Doménové meno http: paths: - path: / # Cesta pathType: Prefix backend: service: name: my-app-service # Názov služby port: number: 80 # Port služby -
Gateway API (modernejší prístup). Evolúcia Ingress, ktorá poskytuje výstižnejšie a rozšíriteľnejšie API na správu prístupu. Zahŕňa zdroje GatewayClass, Gateway, HTTPRoute (a ďalšie typy routov).
apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: my-app-route spec: parentRefs: - name: my-gateway # Odkaz na zdroj Gateway hostnames: - "myapp.mydomain.com" rules: - matches: - path: type: Prefix value: / backendRefs: - name: my-app-service # Názov služby port: 80 # Port služby
Výber metódy závisí od požiadaviek:
- Škálovateľnosti
- Zložitosti smerovania
- Bezpečnosti (SSL/TLS terminácia)
- Používanej cloud platformy
- Nutnosti centralizovaného riadenia prístupu
Pre väčšinu produkčných scenárov sa používajú LoadBalancer na poskytnutie vstupného bodu (často pre Ingress kontrolér) alebo priamo, a Ingress (alebo Gateway API) pre flexibilné smerovanie a správu prístupu k rôznym službám v klastre.