Skip to Content

Van nul naar productie in 30 minuten

Stap-voor-stap: cluster aanmaken, applicatie deployen en domein koppelen.

Tip

Deze handleiding brengt u van een nieuw account naar een draaiende applicatie in productie. Geschatte leestijd: 12 minuten.

Vereisten

  • Een actief Proxy Platform account (registreer hier )
  • kubectl geïnstalleerd op uw lokale machine
  • Een container image van uw applicatie (bijv. in een registry)

Stap 1: Cluster aanmaken

Log in op de Control Panel

Ga naar platform.proxy.nl  en log in met uw credentials.

Maak een nieuw cluster aan

Navigeer naar Clusters → Nieuw cluster en configureer:

Cluster configuratie
Naam: mijn-productie-cluster Regio: eu-west-1 Kubernetes: 1.30 Control Plane: 3 nodes (HA) Workers: 3x cx41

Wacht op provisioning

Het cluster is binnen 5-8 minuten gereed. De status verandert naar Running.

Stap 2: Kubectl configureren

Download het kubeconfig-bestand en configureer uw lokale omgeving:

Terminal
# Download kubeconfig via Control Panel → Cluster → Kubeconfig downloaden mv ~/Downloads/kubeconfig.yaml ~/.kube/config # Verifieer de verbinding kubectl get nodes

Verwachte output:

Output
NAME STATUS ROLES AGE VERSION server-1 Ready control-plane,etcd,master 5m v1.30.2+rke2r1 server-2 Ready control-plane,etcd,master 4m v1.30.2+rke2r1 server-3 Ready control-plane,etcd,master 4m v1.30.2+rke2r1 worker-1 Ready <none> 3m v1.30.2+rke2r1 worker-2 Ready <none> 3m v1.30.2+rke2r1 worker-3 Ready <none> 3m v1.30.2+rke2r1

Stap 3: Applicatie deployen

Maak een namespace en deploy uw applicatie:

Terminal
kubectl create namespace mijn-app
deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: mijn-app namespace: mijn-app spec: replicas: 3 selector: matchLabels: app: mijn-app template: metadata: labels: app: mijn-app spec: containers: - name: app image: registry.example.com/mijn-org/mijn-app:latest ports: - containerPort: 8080 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 256Mi --- apiVersion: v1 kind: Service metadata: name: mijn-app namespace: mijn-app spec: selector: app: mijn-app ports: - port: 80 targetPort: 8080
Terminal
kubectl apply -f deployment.yaml

Stap 4: Domein koppelen

Hoe ingress en load balancing werken op het platform

Important

U hoeft zelf geen ingress controller (zoals NGINX of Traefik) en geen load balancer te installeren. Beide zijn al onderdeel van uw cluster, maar werken anders dan u wellicht gewend bent:

  • Ingress draait op Cilium. Het platform gebruikt de ingebouwde Cilium ingress controller in plaats van losse NGINX- of Traefik-pods. U vindt daarom géén ingress-nginx- of traefik-pods in uw cluster; dat is met opzet zo. Verwijs in uw Ingress naar de class cilium (zie het voorbeeld hieronder). Zonder de juiste ingressClassName wordt uw Ingress niet opgepakt en blijft hij inactief.
  • De load balancer draait buiten het cluster. Bij het aanmaken van uw cluster maakt het platform automatisch een cloud load balancer aan. Die staat dus niet als pod of service in kubectl, maar op infrastructuurniveau. De load balancer stuurt verkeer door naar de Cilium ingress:
    • poort 443 (HTTPS) en 80 (HTTP) → de ingress in uw cluster
    • poort 6443 → de Kubernetes API

Het IP-adres van de load balancer vindt u in de Control Panel onder Cluster → Netwerk.

Controleer dat de cilium ingress class beschikbaar is:

Terminal
kubectl get ingressclass

Verwachte output:

Output
NAME CONTROLLER PARAMETERS AGE cilium cilium.io/ingress-controller <none> 7d

Configureer vervolgens een Ingress voor uw domein. Let op de regel ingressClassName: cilium:

ingress.yaml
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: mijn-app namespace: mijn-app spec: ingressClassName: cilium rules: - host: app.example.com http: paths: - path: / pathType: Prefix backend: service: name: mijn-app port: number: 80
Terminal
kubectl apply -f ingress.yaml
Note

Vergeet niet een DNS A-record aan te maken dat app.example.com verwijst naar het load balancer IP van uw cluster. Dit vindt u in de Control Panel onder Cluster → Netwerk.

TLS-certificaten (optioneel)

Standaard wordt cert-manager niet meegeleverd in uw cluster. Wilt u automatisch Let’s Encrypt-certificaten, installeer dan eerst cert-manager en een ClusterIssuer, en breid uw Ingress uit met de TLS-configuratie:

ingress.yaml (met TLS)
metadata: annotations: cert-manager.io/cluster-issuer: letsencrypt-prod spec: ingressClassName: cilium tls: - hosts: - app.example.com secretName: mijn-app-tls # ... rules zoals hierboven

Stap 5: Verifiëren

Terminal
# Check of alle pods draaien kubectl get pods -n mijn-app # Check de ingress (kolom CLASS moet 'cilium' tonen) kubectl get ingress -n mijn-app # Test de applicatie curl https://app.example.com
Tip

Werkt uw Ingress niet? Controleer als eerste of de kolom CLASS bij kubectl get ingress op cilium staat. Is die leeg, dan ontbreekt de regel ingressClassName: cilium in uw Ingress en pakt de controller hem niet op.

Volgende stappen

Last updated on