160 lines
4.3 KiB
Markdown
160 lines
4.3 KiB
Markdown
# 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
|
|
```
|
|
|
|
|
|
|
|
|