Sobes.tech
Middle

Ako zabezpečiť prístup ku klastru?

sobes.tech AI

Odpoveď od AI

Prístup k vnútornej časti klastrera (napríklad Kubernetes) je možné realizovať viacerými spôsobmi, v závislosti od cieľa prístupu (používateľ, aplikácia, údržba).

Hlavné metódy:

  • Ingress: Pre externý HTTP/HTTPS prístup ku službám v klasteri cez doménové meno. Funguje na úrovni L7.
  • NodePort: Otvorí port na všetkých uzloch klastera, ktorý presmerováva prenos na príslušnú službu. Jednoduché, ale zle škálovateľné a vyžaduje znalosti IP adries uzlov.
  • LoadBalancer: Vytvorí externý vyvažovač záťaže v cloude (ak je klaster nasadený v cloude), ktorý smeruje prenos ku službe. Má ďalšie náklady.
  • Port Forwarding: Dočasná metóda na ladenie. Presmeruje port z lokálneho počítača na port v podu v klasteri.
  • kubectl exec: Umožňuje vykonať príkaz vo vnútri bežiaceho kontajnera v podu. Používa sa na interaktívny prístup alebo jednorazové príkazy.
  • VPN alebo bastion server: Vytvorenie zabezpečeného tunela alebo medzihostiteľa na prístup k zdrojom vnútri súkromnej siete klastera.
# Príklad Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: my-service
            port:
              number: 80
# Príklad príkazu kubectl port-forward
# Presmeruje lokálny port 8080 na port 80 podu some-pod
kubectl port-forward some-pod 8080:80

Výber metódy závisí od konkrétneho scenára použitia, požiadaviek na bezpečnosť a infraštruktúry klastera. Pre produkčné prostredia je vhodnejšie používať Ingress a LoadBalancer na prístup ku službám. Pre správu a ladenie sa aktívne používajú kubectl exec a port-forward. Na zabezpečenie bezpečnosti prístupu do vnútornej siete klastera sa často používajú VPN alebo bastion servery.