Kuidas tagada kasutajate juurdepääs Kubernetesis töötavale rakendusele?
sobes.tech AI
Vastus AI-lt
On olemas mitu põhimeetodit:
-
Kubernetes teenuse tüüp: LoadBalancer. Pilveteenuse pakkuja loob välise laadijaoturi, mis suunab liikluse teie rakenduse podidele.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: LoadBalancer # Siin määratletakse LoadBalancer tüüp -
Kubernetes teenuse tüüp: NodePort. Igal klastri sõlmel on avatud statiline port, mis suunab liikluse teenusele. Rakendusele pääseb ligi iga sõlme IP-aadressi ja selle statilise pordi kaudu.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 type: NodePort # Siin määratletakse NodePort tüüpSee lähenemine on vähem skaleeritav ja sageli ei soovitata tootmiskeskkonnas.
-
Ingress. Kubernetes objekt, mis haldab välisühendust teenustele klastris. Vajalik on Ingressi kontrollija (näiteks Nginx Ingress, Traefik, HAProxy). Ingress võimaldab seadistada marsruutimist domeeninimede ja teede alusel.
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec: rules: - host: myapp.mydomain.com # Domeeninimi http: paths: - path: / # Tee pathType: Prefix backend: service: name: my-app-service # Teenuse nimi port: number: 80 # Teenuse port -
Gateway API (kaasaegsem lähenemine). Ingressi evolutsioon, mis pakub väljendusrikkamat ja laiendatavat API-d juurdepääsu haldamiseks. Sisaldab GatewayClass, Gateway, HTTPRoute (ja muid marsruutide tüüpe).
apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: my-app-route spec: parentRefs: - name: my-gateway # Viide Gateway ressursile hostnames: - "myapp.mydomain.com" rules: - matches: - path: type: Prefix value: / backendRefs: - name: my-app-service # Teenuse nimi port: 80 # Port
Valik sõltub nõuetest:
- Mastaapsus
- Marsruutimise keerukus
- Turvalisus (SSL/TLS terminatsioon)
- Kasutatav pilveplatvorm
- Vajadus keskse halduse järele
Enamikul tootmistsenaariumidel kasutatakse LoadBalancer sisenemispunkti (tihti Ingressi kontrollija jaoks) või otse, ning Ingress (või Gateway API) paindlikuks marsruutimiseks ja juurdepääsu haldamiseks erinevatele teenustele klastris.