Setup a Google Kubernetes Engine (GKE) cluster

Setup a Google Kubernetes Engine cluster

Prerequisites

Create a new cluster

  1. $ gcloud services enable container.googleapis.com && \
  2. gcloud container clusters create $CLUSTER_NAME \
  3. --zone $ZONE \
  4. --project $PROJECT_ID

For more options refer to the Google Cloud SDK docs, or instead create a cluster through the Cloud Console for a more interactive experience.

For private GKE clusters

Sidecar injection will not work for private clusters without extra steps. An automatically created firewall rule for master access does not open port 4000. This is needed for Dapr sidecar injection.

To review the relevant firewall rule:

  1. $ gcloud compute firewall-rules list --filter="name~gke-${CLUSTER_NAME}-[0-9a-z]*-master"

To replace the existing rule and allow kubernetes master access to port 4000:

  1. $ gcloud compute firewall-rules update <firewall-rule-name> --allow tcp:10250,tcp:443,tcp:4000

Retrieve your credentials for kubectl

  1. $ gcloud container clusters get-credentials $CLUSTER_NAME \
  2. --zone $ZONE \
  3. --project $PROJECT_ID

(optional) Install Helm v3

  1. Install Helm v3 client

Note: The latest Dapr helm chart no longer supports Helm v2. Please migrate from helm v2 to helm v3 by following this guide.

  1. In case you need permissions the kubernetes dashboard (i.e. configmaps is forbidden: User “system:serviceaccount:kube-system:kubernetes-dashboard” cannot list configmaps in the namespace “default”, etc.) execute this command
  1. kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

Last modified November 17, 2021: Updates from adding the Configuration API (9a550c60)