Skip to content

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

  1. Gebruik service accounts met minimale rechten
  2. Activeer audit logging
  3. Roteer credentials regelmatig
  4. Implementeer netwerk segmentatie

Performance

  1. Gebruik regionale clusters voor hoge beschikbaarheid
  2. Implementeer autoscaling
  3. Optimaliseer container images
  4. Gebruik Cloud CDN voor statische content

Volgende Stappen

Aanvullende Bronnen