Bastion Machine
Overzicht
De bastion machine is een VPS (Virtual Private Server) die draait als Google Compute Engine VM en fungeert als een beveiligde toegangspoort tot onze cluster infrastructuur. Deze machine heeft directe toegang tot de storage en netwerk subnetten van het cluster, waardoor het een hulpmiddel is voor verschillende beheer- en onderhoudstaken.
Gebruik
De bastion machine wordt gebruikt voor:
- Bestanden kopiëren tussen lokale machine en cluster storage
- Debuggen van cluster componenten en services
- Database dumps maken en beheren
- Netwerk troubleshooting binnen de cluster subnetten
- Veilige toegang tot interne cluster resources
Verbindingsmethoden
Er zijn drie verschillende manieren om verbinding te maken met de bastion machine:
1. Google Cloud Console (Webconsole)
Dit is de snelste methode voor eenmalige toegang zonder lokale installatie:
- Ga naar cloud.google.com
- Navigeer naar Compute Engine > VM instances
- Zoek de "bastion" machine
- Klik op de SSH knop naast de machine
Voordelen: - Geen lokale software installatie vereist - Snel voor eenmalige taken - Werkt vanuit elke browser
Nadelen: - Beperkte terminal functionaliteit - Geen lokale file transfer mogelijkheden
2. gcloud CLI Utility
Voor gebruikers die de gcloud utility geïnstalleerd hebben:
gcloud compute ssh --zone "europe-west4-b" "bastion" --project "gke-tilburg"
Voordelen:
- Volledige terminal functionaliteit
- Eenvoudige file transfer met gcloud compute scp
- Geïntegreerd met Google Cloud authenticatie
Vereisten: - gcloud CLI geïnstalleerd en geconfigureerd - Juiste project permissions
3. SSH met Public Key
Voor directe SSH toegang via het interne netwerk:
- Ga naar cloud.google.com
- Navigeer naar Compute Engine > VM instances
- Klik op de bastion machine naam
- Ga naar het tabblad SSH Keys
- Voeg je SSH public key toe
- Verbind met je Google username (alles voor de @):
ssh [google-username]@10.164.0.55
Voordelen: - Snelste verbinding na setup - Volledige SSH functionaliteit - Eenvoudige integratie met lokale SSH tools
Vereisten: - Actieve WireGuard VPN verbinding (verplicht voor directe SSH toegang) - SSH key pair gegenereerd - Public key toegevoegd aan VM - Toegang tot het interne netwerk via VPN
Toegang tot gedeelde mappen (NFS/PVC)
De bastion machine biedt directe toegang tot gedeelde mappen die door workloads in de Kubernetes cluster worden gebruikt. Deze mappen zijn gemount onder /mnt/nfs/ en bevatten subdirectories die automatisch worden aangemaakt door Persistent Volume Claims (PVCs). Hierdoor kun je eenvoudig bestanden benaderen die in de cluster workloads zijn gemount.
Structuur van gedeelde mappen
- Pad:
/mnt/nfs/ - Subdirectories: Elke PVC creëert een eigen directory, bijvoorbeeld
/mnt/nfs/pvc-1234abcd/ - Inhoud: Bestanden en mappen die door workloads in de cluster worden gebruikt
Bestanden benaderen en bewerken
Via de bastion machine kun je:
- Bestanden bekijken en bewerken met standaard shell tools (
ls,cat,vim, etc.) - Bestanden kopiëren naar je lokale machine of andere systemen
- Data verwerken of back-ups maken
Voorbeeld: Bestand kopiëren naar lokale machine met scp
scp [google-username]@10.164.0.55:/mnt/nfs/pvc-1234abcd/bestand.txt ./bestand.txt
Voorbeeld: Synchroniseren van een map met rsync
rsync -avz [google-username]@10.164.0.55:/mnt/nfs/pvc-1234abcd/ ./lokale-map/
Voorbeeld: Bestand bewerken op de bastion
ssh [google-username]@10.164.0.55
cd /mnt/nfs/pvc-1234abcd/
vim bestand.txt
Security en operationele aandachtspunten
- Toegangsrechten: Alleen gebruikers met bastion toegang kunnen deze mappen benaderen. Controleer altijd de permissies van bestanden en directories.
- Data-integriteit: Bewerk geen bestanden die actief door workloads worden gebruikt om datacorruptie te voorkomen.
- Back-ups: Maak regelmatig back-ups van belangrijke data via de bastion machine.
- Audit: Documenteer wijzigingen en houd bij wie toegang heeft tot gedeelde mappen.
Troubleshooting NFS/PVC toegang
- Map niet zichtbaar: Controleer of de PVC correct is aangemaakt en gekoppeld aan een workload.
- Geen toegang tot bestanden: Controleer permissies op de bastion machine en in de workload.
- NFS mount problemen: Herstart de bastion machine of workload indien mount errors optreden.
- Langzame toegang: NFS performance kan variëren; controleer netwerkverbindingen en workload belasting.
- Permission denied: Controleer of je gebruiker de juiste rechten heeft op de bastion en in de cluster.
Voor verdere problemen, raadpleeg de Kubernetes en NFS logs via de bastion machine of neem contact op met het platformbeheer.
Best Practices
- Gebruik de bastion machine alleen voor cluster-gerelateerde taken
- Sluit SSH sessies af na gebruik
- Bewaar geen gevoelige data permanent op de bastion machine
- Gebruik de webconsole voor snelle checks, gcloud CLI voor regulier gebruik
- Documenteer belangrijke configuratiewijzigingen
Troubleshooting
Verbinding mislukt
- Controleer of je de juiste zone gebruikt:
europe-west4-b - Verificeer project permissions voor
gke-tilburg - Check of de bastion VM actief is in de Google Cloud Console
SSH key problemen
- Zorg dat je public key correct is toegevoegd
- Gebruik de juiste Google username (zonder @domain.com)
- Controleer of de SSH agent je private key heeft geladen
Netwerk toegang
- Bastion machine heeft toegang tot interne cluster subnetten
- Directe SSH toegang vereist WireGuard VPN verbinding
- Bastion machine IP adres:
10.164.0.55 - Voor externe toegang gebruik de juiste firewall regels
- Check security groups en IAM permissions
VPN verbinding problemen
- Zorg dat WireGuard VPN actief is voor directe SSH toegang
- Test VPN verbinding met
ping 10.164.0.55 - Gebruik Google Cloud Console of gcloud CLI als alternatief zonder VPN