# GKE cluster creation and cloud shell access > https://cloud.google.com/kubernetes-engine/docs/quickstart > https://rafay.co/the-kubernetes-current/getting-started-with-google-kubernetes-engine-gke-0/ ## connect with cloud shell, configure the environment ``` tseed@NieX0:~$ gcloud cloud-shell ssh --authorize-session Starting your Cloud Shell machine... Waiting for your Cloud Shell machine to start...done. Warning: Permanently added '[34.76.250.222]:6000' (RSA) to the list of known hosts. Welcome to Cloud Shell! Type "help" to get started. Your Cloud Platform project in this session is set to influenzanet-321116. Use “gcloud config set project [PROJECT_ID]” to change to a different project. toby_n_seed@cloudshell:~ (influenzanet-321116)$ toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config list project [core] project = influenzanet-321116 toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config set project influenzanet-321116 Updated property [core/project]. toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config set compute/zone europe-west2-b Updated property [compute/zone]. ``` ## build quick cluster > API reference > https://cloud.google.com/sdk/gcloud/reference/container/clusters/create > available GKE versions > https://cloud.google.com/kubernetes-engine/versioning > single zone, multi-zone and regional cluster - we will create a single zone cluster for ease > https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster #### Find the default version and default version for a channel for a channel ``` gcloud container get-server-config --format="yaml(defaultClusterVersion)" --zone europe-west2-b gcloud container get-server-config --flatten="channels" --filter="channels.channel=REGULAR" --format="yaml(channels.channel,channels.validVersions)" --zone europe-west2-b ``` #### Find versions in regular channel, there are rapid and stable channels ``` gcloud container get-server-config --flatten="channels" --filter="channels.channel=RAPID" --format="yaml(channels.channel,channels.validVersions)" --zone europe-west2-b ``` #### Find valid image types and default image ``` gcloud container get-server-config --format="yaml(validImageTypes)" --zone europe-west2-b gcloud container get-server-config --format="yaml(defaultImageType)" --zone europe-west2-b ``` #### Find instance types e2-medium is the smallest recommended size for k8s nodes, this is the default. ``` gcloud compute machine-types list --filter="zone:( europe-west2-a europe-west2-b europe-west2-c )" gcloud compute machine-types list --filter="zone:( europe-west2-b )" ``` ### Create the cluster The command is as if you'd created a cluster with defaults in a single zone. It features a smaller ssd disk and only a single node, no scaling by node or pod is enabled. ``` gcloud container clusters create influenzanet \ --release-channel=regular \ --cluster-version=1.20.8-gke.900 \ --image-type=COS \ --num-nodes=1 \ --machine-type=e2-medium \ --disk-size=50GB \ --disk-type=pd-ssd \ --zone=europe-west2-b ``` ### Delete the cluster ``` toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config set compute/zone europe-west2-b Updated property [compute/zone]. toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud container clusters list NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS influenzanet europe-west2-b 1.20.8-gke.900 35.234.142.111 e2-medium 1.20.8-gke.900 1 RUNNING toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud container clusters delete influenzanet The following clusters will be deleted. - [influenzanet] in [europe-west2-b] Do you want to continue (Y/n)? y Deleting cluster influenzanet...⠼ ``` ## Connect to the cluster and test ability to create workload ``` gcloud cloud-shell ssh --authorize-session toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config list project [core] project = influenzanet-321116 toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config set project influenzanet-321116 Updated property [core/project]. toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud container clusters list NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS influenzanet europe-west2-b 1.19.9-gke.1900 34.105.199.155 n1-standard-1 1.19.9-gke.1900 2 RUNNING toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud container clusters describe influenzanet ERROR: (gcloud.container.clusters.describe) One of [--zone, --region] must be supplied: Please specify location. toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud config set compute/zone europe-west2-b Updated property [compute/zone]. #display cluster info toby_n_seed@cloudshell:~ (influenzanet-321116)$ gcloud container clusters describe influenzanet #set as default cluster toby_n_seed@cloudshell:~/cluster-management (influenzanet-321116)$ gcloud config set container/cluster influenzanet Updated property [container/cluster]. #this is where the kubectl json creds file is auto created - very handy toby_n_seed@cloudshell:~/cluster-management (influenzanet-321116)$ gcloud container clusters get-credentials influenzanet Fetching cluster endpoint and auth data. kubeconfig entry generated for influenzanet. #test connectivity with kubectl toby_n_seed@cloudshell:~ (influenzanet-321116)$ kubectl cluster-info Kubernetes control plane is running at https://35.197.223.199 GLBCDefaultBackend is running at https://35.197.223.199/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy KubeDNS is running at https://35.197.223.199/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy Metrics-server is running at https://35.197.223.199/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ```