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