Google Cloud Platform Basis
Introductie
Google Cloud Platform (GCP) vormt de basis voor onze development- en productieomgevingen. Deze handleiding beschrijft de essentiële concepten en tools die nodig zijn om effectief te werken met onze GCP-infrastructuur.
Vereiste Software & Setup
Voordat je begint met GCP, zorg ervoor dat je beschikt over: - Google Cloud SDK - GCP-account met juiste project toegang - Kubernetes command-line tool (kubectl)
Initiële Configuratie
# Installeer Google Cloud SDK (MacOS)
brew install google-cloud-sdk
# Authenticatie
gcloud auth login
gcloud auth application-default login
# Configureer standaard project
gcloud config set project [PROJECT_ID]
Core Concepten
Projects
Projects vormen de fundamentele organisatie-eenheid binnen GCP. Ze bevatten al je resources en services.
# Toon beschikbare projecten
gcloud projects list
# Wissel tussen projecten
gcloud config set project [PROJECT_ID]
Identity and Access Management (IAM)
IAM beheert toegangscontrole en permissies binnen GCP.
Essentiële ontwikkelaarsrollen zijn:
- roles/container.developer - Basis Kubernetes toegang
- roles/storage.objectViewer - Cloud Storage toegang
- roles/logging.viewer - Log inzage permissies
Google Kubernetes Engine (GKE)
Cluster Beheer
# Toon beschikbare clusters
gcloud container clusters list
# Haal credentials op voor kubectl
gcloud container clusters get-credentials [CLUSTER_NAAM] --region [REGIO]
# Bekijk node pools
gcloud container node-pools list --cluster [CLUSTER_NAAM]
Cluster Monitoring
# Bekijk cluster status
gcloud container clusters describe [CLUSTER_NAAM]
# Bekijk node status
kubectl get nodes
kubectl describe node [NODE_NAAM]
Cloud Storage
Cloud Storage biedt object storage voor bestanden, backups en Helm charts.
# Toon buckets
gsutil ls
# Upload bestand
gsutil cp [LOKAAL_BESTAND] gs://[BUCKET_NAAM]/
# Download bestand
gsutil cp gs://[BUCKET_NAAM]/[OBJECT_NAAM] [LOKAAL_BESTAND]
Build
Build wordt gebruikt voor CI/CD pipelines.
Voor meer informatie, zie GitHub Actions.
Logging en Monitoring
Cloud Logging
Implementeer uitgebreide logging queries met de volgende commando's:
# Bekijk logs
gcloud logging read "resource.type=container"
# Filter logs op namespace
gcloud logging read "resource.type=container AND resource.labels.namespace_name=[NAMESPACE]"
# Exporteer logs
gcloud logging read "resource.type=container" --format="csv(timestamp,textPayload)" > logs.csv
Cloud Monitoring
- Toegankelijk via de Google Cloud Console
- Metrics Explorer voor aangepaste queries
- Alerting voor kritieke issues
Kostenbeheer
Budget Alerts
# Maak budget alert aan
gcloud billing budgets create \
--billing-account=[BILLING_ACCOUNT_ID] \
--display-name="Development Budget" \
--budget-amount=1000EUR \
--threshold-rules=percent=90
Kostenoptimalisatie
- Gebruik preemptible nodes waar mogelijk
- Schaal resources af in non-productie omgevingen
- Ruim ongebruikte resources regelmatig op
Troubleshooting
Connectiviteitsproblemen
# Test IAM permissies
gcloud auth list
gcloud projects get-iam-policy [PROJECT_ID]
# Controleer firewall regels
gcloud compute firewall-rules list
GKE Problemen
# Controleer cluster status
gcloud container clusters describe [CLUSTER_NAAM]
# Bekijk cluster events
kubectl get events --sort-by='.lastTimestamp'
Cloud Build Fouten
# Bekijk build geschiedenis
gcloud builds list
# Bekijk build logs
gcloud builds log [BUILD_ID]
Best Practices
Security
- Gebruik service accounts met minimale rechten
- Activeer audit logging
- Roteer credentials regelmatig
- Implementeer netwerk segmentatie
Performance
- Gebruik regionale clusters voor hoge beschikbaarheid
- Implementeer autoscaling
- Optimaliseer container images
- Gebruik Cloud CDN voor statische content
Volgende Stappen
- Verdiep je in Kubernetes Basics
- Leer over onze CI/CD Pipeline
- Verken Monitoring Setup