Deckhouse Kubernetes Platform in Google Cloud
Before installation, ensure the following:
- Cloud provider quotas for cluster deployment.
- Compute Engine API enabled.
- The
cloud-initpackage is installed on the VMs. After the VM starts, servicescloud-config.service,cloud-final.service,cloud-init.servicemust be running. - The virtual machine template contains only one disk.
- Firewall rules and security groups allow UDP traffic between cluster nodes. A new cluster uses the Cilium CNI by default with pod traffic tunneling over VXLAN. Cilium requires Linux kernel 5.8 or newer on the nodes, and the list of ports is available in Network interaction of the platform components.
You need to create a service account so that Deckhouse Kubernetes Platform can manage resources in the Google Cloud. The detailed instructions for creating a service account are available in the documentation. Below is a brief sequence of required actions (run them on the personal computer):
List of roles required:
roles/compute.adminroles/iam.serviceAccountUserroles/networkmanagement.admin
Export environment variables:
export PROJECT_ID=sandbox
export SERVICE_ACCOUNT_NAME=deckhouse
Select a project:
gcloud config set project $PROJECT_ID
Create a service account:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
Connect roles to the service account:
for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do \
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com --role=${role}; done
Verify service account roles:
gcloud projects get-iam-policy ${PROJECT_ID} --flatten="bindings[].members" --format='table(bindings.role)' \
--filter="bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"
Create a service account key:
gcloud iam service-accounts keys create --iam-account ${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com \
~/service-account-key-${PROJECT_ID}-${SERVICE_ACCOUNT_NAME}.json