4.3 KiB
Cluster Install
Fase 1: Ingress Controller Setup
Stap 1: Installeer de NGINX Ingress Controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
Stap 2: Verifieer de Installatie
Kijk of de namespace is aangemaakt
kubectl get namespaces | grep ingress-nginx
Check of de pods worden gestart
kubectl get pods -n ingress-nginx
Check de services (dit is het belangrijkste!)
kubectl get services -n ingress-nginx
Je zou zoiets als dit moeten zien:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.43.xxx.xxx <none> 80:30080/TCP,443:30443/TCP 1m
Watch de pods tot ze ready zijn
kubectl get pods -n ingress-nginx -w
Stop met Ctrl+C als je dit ziet:
ingress-nginx-controller-xxx 1/1 Running 0 2m
Check de NodePorts, dit is cruciaal voor je Scaleway LoadBalancer configuratie:
kubectl get service ingress-nginx-controller -n ingress-nginx -o yaml | grep nodePort
Of een overzichtelijker weergave:
kubectl describe service ingress-nginx-controller -n ingress-nginx
Je zoekt naar iets zoals:
HTTP: Port 80 → NodePort 30080 (of een ander hoog nummer)
HTTPS: Port 443 → NodePort 30443 (of een ander hoog nummer)
Stap 3: Check de scaleway loadbalancer
Er werd normaal gezien automatisch een loadbalancer aangemaakt. Check of dit klopt. Deze is automatisch correct geconfigureerd en kan niet worden aangepast.
Stap 4: Verifieer de firewall rules
- Ga in de console naar Compute - CPU & GPU Instances
- Ga naar de security groups tab
- Klik op de security group voor je cluster (Kapsule Default Security Group)
- Ga naar de rules tab, en check of de poort (3xxxx) is toegevoegd aan de firewall rules, en voeg die toe indien nog niet aanwezig.
- Stel dit eerst in voor de volledige ipv4 range
Stap 4: Test de Basis Setup
Test of de ingress controller intern bereikbaar is (vervang de IP en NodePort door je eigen):
kubectl run test-pod --image=curlimages/curl -it --rm -- curl -H "Host: evie.askeveai.com" http://172.16.16.5:31127
Er moet een 404 boodschap komen (dat is goed! Het betekent dat nginx draait)
Test of de ingress controller extern bereikbaar is (pas IP aan):
curl -H "Host: evie.askeveai.com" http://51.159.204.52
Fase 2: Deploy test applicatie
We hebben een kleine test applicatie geïntegreerd in staging-test-setup.yaml. Installeer deze via:
kubectl apply -f staging-test-setup.yaml
En check met
curl -H "Host: evie-staging.askeveai.com" http://51.159.204.52/verify/
Later Uitbreiden
Wanneer je echte services deploy, uncomment je de relevante ingress paths en deploy je de bijbehorende services. De verify service blijft beschikbaar voor debugging. Deze setup geeft je een professionele staging environment met ingebouwde monitoring en debug capabilities.
Fase 3: Configureer DNS
Maak het juist A-record aan in de DNS zone. Dit moet verwijzen naar de publieke IP van de loadbalancer.
Je kan testen met:
curl http://evie-staging.askeveai.com/verify/
In de browser zal dit waarschijnlijk niet werken, omdat de site nog niet is beveiligd met SSL.
Fase 4: Bunny CDN Setup
Eerst zorg je dat Bunny klaar is om te werken.
- Creëer een Pull zone - evie-staging
- Origin = http://[IP van load balancer]
- Host header = evie-staging.askeveai.com
- Force SSL - Aan
Daarna wijzig je A-record in de DNS zone. (waarschijnlijk verwijderen en CNAME record toevoegen)
Fase 5: Introductie Secure communication
Installatie van SSL Certificaat in de bunny pull zone
- Voeg een hostname toe aan de bunny pull zone (evie-staging.askeveai.com)
- Voeg een SSL certificaat toe aan de bunny pull zone (volg gewoon de instructies)
- Enable Force SSL
Je kan checken met:
curl https://evie-staging.askeveai.com/verify/
Installatie cert-manager in de cluster
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.2/cert-manager.crds.yaml
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.2/cert-manager.yaml
En het cert-manager-setup.yaml manifest toepassen (zorgen dat email adres en domein correct zijn)
kubectl apply -f cert-manager-setup.yaml