python3 kubernetes獲取service、pod、deployment


1、查看
 1 kube_conf = '/root/kubeconfig.yaml'
 2 config.load_kube_config(kube_conf)
 3 api = client.AppsV1Api()
 4 core = client.CoreV1Api()
 5 
 6 
 7 def list_namespace():
 8     ret = []
 9     for ns in core.list_namespace().items:
10         ret.append(ns.metadata.name)
11     return ret
12 
13 
14 def list_services():
15     result = []
16     ret = core.list_service_for_all_namespaces(watch=False)
17     for i in ret.items:
18         info = {'kind': i.kind, 'namespace': i.metadata.namespace, 'name': i.metadata.name, 'ip': i.spec.cluster_ip,
19                 'ports': i.spec.ports}
20         result.append(info)
21     return result
22 
23 
24 def list_pod():
25     result = []
26     ret = core.list_pod_for_all_namespaces(watch=False)
27     for i in ret.items:
28         info = {'pod_ip': i.status.pod_ip, 'namespace': i.metadata.namespace, 'name': i.metadata.name}
29         result.append(info)
30     return result
31 
32 
33 def list_deploy():
34     result = []
35     ret = api.list_deployment_for_all_namespaces(watch=False)
36     for i in ret.items:
37         images = [x.image for x in i.spec.template.spec.containers]
38         info = {'namespace': i.metadata.namespace, 'name': i.metadata.name, 'images': images}
39         result.append(info)
40     return result

2、更新

 1 def upgrade_by_kube(update_image):
 2     # 傳入參數配置
 3     name = 'flaskapp-1' 
 4     namespace = 'default' 
 5 
 6     # read deployment
 7     body = api.read_namespaced_deployment(name, namespace)
 8     # 修改鏡像版本為指定
 9     body.spec.template.spec.containers[0].image = update_image
10     try:
11         api.replace_namespaced_deployment(name, namespace, body)
12         print("\033[0;32m{} 中deployment : {} {}更新完成\033[0m".format(namespace, name, update_image))
13     except ApiException as e:
14         print("Exception when calling AppsV1Api->replace_namespaced_deployment: %s\n" % e)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM