Python Script to Get GKE Worker Nodes IP
1 min readSep 19, 2020
Pre-requisite: Install required python packages using pip3 install google-cloud-container google-api-python-client
Script:
#pip3 install google-cloud-container google-api-python-client
from google.cloud import container_v1
from googleapiclient import discovery
client = container_v1.ClusterManagerClient()
service = discovery.build('compute', 'v1')
project_id = ''
ip=[]
#response = client.get_cluster(project_id,zone,cluster_name)
response = client.get_cluster(name='projects/<project_name>/locations/<zone>/clusters/<cluster_name>')
instance_group_urls=(list(response.instance_group_urls))
for instance_group in instance_group_urls:
data=instance_group.split('zones')[1].split('/')
compute_zone=data[1]
instance_group_manager=data[3]
request = service.instanceGroups().listInstances(project=project_id, zone=compute_zone, instanceGroup=instance_group_manager)
response = request.execute()
for instance_data in response['items']:
instance_name=instance_data['instance'].split('/')[-1]
instance_ip = service.instances().get(project=project_id,zone=compute_zone,instance=instance_name).execute()['networkInterfaces'][0]['accessConfigs'][0]['natIP']
ip.append(instance_ip)
print(ip)
Note: Specify value for project_id variable and also specify project_name, cluster zone and cluster name in this line of the code:
client.get_cluster(name='projects/<project_name>/locations/<zone>/clusters/<cluster_name>')
Here are the worker nodes created for my GKE cluster.
Now execute the script using python3 gke_worker_node_ip.py command