Netwerken, load balancing en beveiliging

Introductie tot Kubernetes

Frank Heilmann

Platform Architect and Freelance Instructor

Meer over labels en selectors

Labels:

  • Sleutel/waarde-paren die aan Kubernetes-objecten hangen, zoals Pods of Nodes
  • Te gebruiken om subsets van objecten te organiseren
  • Op elk moment aanpasbaar
  • Voorbeelden:
    • environment: prod
    • app: my_cool_app
    • has_GPU: true

Selectors:

  • Identificeren objecten via labels
  • Voorbeelden:

    • ...    
      selector:
          environment: prod
          app: my_cool_app
      ...
      
    • ...
      nodeSelector:
        has_GPU: true
      ...
      
Introductie tot Kubernetes

Netwerken en services

Kubernetes-services

  • Elke Pod krijgt een clusterbrede IP (internetadres)
  • Te gebruiken voor communicatie tussen Pods
  • Niet erg handig: Pods kunnen herstarten en krijgen dan een nieuw IP
  • Services koppelen Pods en bieden stabiele connectiviteit
Introductie tot Kubernetes

Service-manifests

Kubernetes-servicesl

apiVersion: v1
kind: Service
metadata:
  name: Kubernetes_Service_2
spec:
  type: ...
  selector:
    app: app2 
  ...
Introductie tot Kubernetes

Load balancing

Loadbalancing

  • Een load balancer in Kubernetes verdeelt verkeer over Pods
  • Voorkomt scheve belasting, verhoogt efficiëntie en verlaagt responstijd

  • Voorbeeld:

    • een service via meerdere Pods aanbieden
    • load balancer verdeelt verkeer gelijkmatig over Pods
Introductie tot Kubernetes

Load balancing in Kubernetes

apiVersion: v1
kind: Service
metadata:
  name: <service name>
spec:
  type: LoadBalancer
  selector:
    <key1>: <value1>
    <key2>: <value2>
  ...
  • Load balancers zijn meestal vooraf geconfigureerd door de Kubernetes-provider (cloudprovider)
  • Geen extra manifests nodig voor een load balancer – wordt automatisch aangemaakt en aan de service gekoppeld
Introductie tot Kubernetes

Ingress

Kubernetes Ingress

  • Ingress-objecten routeren HTTP- en HTTPS-verkeer van buiten de cluster naar services in de cluster
  • Ingress-regels bepalen welke requests door welke service worden bediend
  • Vaak gebruikt samen met load balancing
Introductie tot Kubernetes

Kubernetes-beveiliging

  • Beveiliging in moderne IT-architecturen is cruciaal, maar complex en veelzijdig
  • Kubernetes heeft alle componenten om apps te beveiligen,

    bijv.:

    • de "Secret"-API voor vertrouwelijke objecten zoals wachtwoorden, tokens, sleutels, enz.
    • tools en API’s voor versleutelde netwerkcommunicatie
    • methoden voor gebruikersauthenticatie
    • role-based en attribute-based access control ("RBAC" en "ABAC")
Introductie tot Kubernetes

Laten we oefenen!

Introductie tot Kubernetes

Preparing Video For Download...