Skip to content

gcloud cli install on macOS

Step-01: Introduction

  • Install gcloud CLI on MacOS
  • Configure kubeconfig for kubectl on your local terminal
  • Verify if you are able to reach GKE Cluster using kubectl from your local terminal

Step-02: Install gcloud cli on MacOS

  • Install gcloud cli
    # Verify Python Version (Supported versions are Python 3 (3.5 to 3.8, 3.7 recommended)
    python3 -V
    
    # Determine your machine hardware 
    uname -m
    
    # Create Folder
    mkdir gcloud-cli-software
    
    # Download gcloud cli based on machine hardware 
    ## Important Note: Download the latest version available on that respective day
    Dowload Link: https://cloud.google.com/sdk/docs/install-sdk#mac
    
    ## As on today the below is the latest version (x86_64 bit)
    curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-418.0.0-darwin-x86_64.tar.gz
    
    # Unzip binary
    ls -lrta
    tar -zxf google-cloud-cli-418.0.0-darwin-x86_64.tar.gz
    
    # Run the install script with screen reader mode on:
    ./google-cloud-sdk/install.sh --screen-reader=true
    

Step-03: Verify gcloud cli version

# Open new terminal
AS PATH is updated, open new terminal

# gcloud cli version
gcloud version

## Sample Output
Kalyans-Mac-mini:gcloud-cli-software kalyanreddy$ gcloud version
Google Cloud SDK 418.0.0
bq 2.0.85
core 2023.02.13
gcloud-crc32c 1.0.0
gsutil 5.20
Kalyans-Mac-mini:gcloud-cli-software kalyanreddy$

Step-04: Intialize gcloud CLI in local Terminal

# Initialize gcloud CLI
./google-cloud-sdk/bin/gcloud init

# gcloud config Configurations Commands (For Reference)
gcloud config list
gcloud config configurations list
gcloud config configurations activate
gcloud config configurations create
gcloud config configurations delete
gcloud config configurations describe
gcloud config configurations rename

Step-05: Verify gke-gcloud-auth-plugin

# Change Directroy
gcloud-cli-software

## Important Note about gke-gcloud-auth-plugin: 
1. Kubernetes clients require an authentication plugin, gke- gcloud-auth-plugin, which uses the Client-go Credential Plugins framework to provide authentication tokens to communicate with GKE clusters

# Verify if gke-gcloud-auth-plugin installed
gke-gcloud-auth-plugin --version

# Install gke-gcloud-auth-plugin
gcloud components install gke-gcloud-auth-plugin

# Verify if gke-gcloud-auth-plugin installed
gke-gcloud-auth-plugin --version

Step-06: Remove any existing kubectl clients

# Verify kubectl version
kubectl version --short
which kubectl 
Observation: 
1. We are not using kubectl from gcloud CLI and we need to fix that. 

# Removing existing kubectl
which kubectl
rm /usr/local/bin/kubectl

Step-07: Install kubectl client from gcloud CLI

# List gcloud components
gcloud components list

## SAMPLE OUTPUT
Status: Not Installed
Name: kubectl
ID: kubectl
Size: < 1 MiB

# Install kubectl client
gcloud components install kubectl

# Verify kubectl version
OPEN NEW TERMINAL AS PATH IS UPDATED
kubectl version --short
which kubectl

Step-08: Fix kubectl client version equal to GKE Cluster version

  • Important Note: You must use a kubectl version that is within one minor version difference of your Kubernetescluster control plane.
  • For example, a 1.24 kubectl client works with Kubernetes Cluster 1.23, 1.24 and 1.25 clusters.
  • As our GKE cluster version is 1.26, we will also upgrade our kubectl to 1.26
    # Verify kubectl version
    OPEN NEW TERMINAL AS PATH IS UPDATED
    kubectl version --short
    which kubectl
    
    # Change Directroy 
    cd /Users/kalyanreddy/Documents/course-repos/gcloud-cli-software/google-cloud-sdk/bin/
    
    # List files
    ls -lrta
    
    # Backup existing kubectl
    cp kubectl kubectl_bkup_1.24
    
    # Copy latest kubectl
    cp kubectl.1.26 kubectl
    
    # Verify kubectl version
    kubectl version --short
    which kubectl
    

Step-09: Configure kubeconfig for kubectl in local desktop terminal

# Clean-Up kubeconfig file (if any older configs exists)
rm $HOME/.kube/config

# Configure kubeconfig for kubectl 
gcloud container clusters get-credentials <GKE-CLUSTER-NAME> --region <REGION> --project <PROJECT>
gcloud container clusters get-credentials standard-public-cluster-1 --region us-central1 --project kdaida123

# Verify Kubernetes Worker Nodes
kubectl get nodes


# Verify System Pod in kube-system Namespace
kubectl -n kube-system get pods

# Verify kubeconfig file
cat $HOME/.kube/config
kubectl config view

References

🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99 $84.99 81% OFF
DEVOPS2026FEB
Enroll Now on Udemy
🎉 Offer