kubernetes中python api的二次封装
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,k8s python api二次封装pip install pprint kubernetesimport urllib3from pprint import pprintfrom kuberne
千家信息网最后更新 2026年11月02日kubernetes中python api的二次封装
k8s python api二次封装
pip install pprint kubernetesimport urllib3from pprint import pprintfrom kubernetes import clientfrom os import pathimport yamlclass K8sApi(object): def __init__(self): # self.config = config.kube_config.load_kube_config() urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) self.configuration = client.Configuration() self.configuration.host = "https://192.168.100.111:6443" self.configuration.api_key[ 'authorization'] = 'Bearer token' self.configuration.verify_ssl = False self.k8s_apps_v1 = client.AppsV1Api(client.ApiClient(self.configuration)) self.Api_Instance = client.CoreV1Api(client.ApiClient(self.configuration)) self.Api_Instance_Extensions = client.ExtensionsV1beta1Api(client.ApiClient(self.configuration)) #################################################################################################################### def list_deployment(self, namespace="default"): api_response = self.k8s_apps_v1.list_namespaced_deployment(namespace) return api_response def read_deployment(self, name="nginx-deployment", namespace="default"): api_response = self.k8s_apps_v1.read_namespaced_deployment(name, namespace) return api_response def create_deployment(self, file="deploy-nginx.yaml"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) resp = self.k8s_apps_v1.create_namespaced_deployment( body=dep, namespace="default") return resp def replace_deployment(self, file="deploy-nginx.yaml", name="nginx-deployment", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) resp = self.k8s_apps_v1.replace_namespaced_deployment(name, namespace, body=dep) return resp def delete_deployment(self, name="nginx-deployment", namespace="default"): api_response = self.k8s_apps_v1.delete_namespaced_deployment(name, namespace) return api_response #################################################################################################################### def list_namespace(self): api_response = self.Api_Instance.list_namespace() return api_response def read_namespace(self, name="default"): api_response = self.Api_Instance.read_namespace(name) return api_response def create_namespace(self, file="pod-nginx.yaml"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.create_namespace(body=dep) return api_response def replace_namespace(self, file="pod-nginx.yaml", name="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.replace_namespace(name, body=dep) return api_response def delete_namespace(self, name="default", namespace="default"): api_response = self.Api_Instance.delete_namespace(name) return api_response #################################################################################################################### def list_node(self): api_response = self.Api_Instance.list_node() data = {} for i in api_response.items: data[i.metadata.name] = {"name": i.metadata.name, "status": i.status.conditions[-1].type if i.status.conditions[ -1].status == "True" else "NotReady", "ip": i.status.addresses[0].address, "kubelet_version": i.status.node_info.kubelet_version, "os_image": i.status.node_info.os_image, } return data def list_pod(self): api_response = self.Api_Instance.list_pod_for_all_namespaces() data = {} for i in api_response.items: data[i.metadata.name] = {"ip": i.status.pod_ip, "namespace": i.metadata.namespace} return data def read_pod(self, name="nginx-pod", namespace="default"): api_response = self.Api_Instance.read_namespaced_pod(name, namespace) return api_response def create_pod(self, file="pod-nginx.yaml", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.create_namespaced_pod(namespace, body=dep) return api_response def replace_pod(self, file="pod-nginx.yaml", name="nginx-pod", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.replace_namespaced_pod(name, namespace, body=dep) return api_response def delete_pod(self, name="nginx-pod", namespace="default"): api_response = self.Api_Instance.delete_namespaced_pod(name, namespace) return api_response #################################################################################################################### def list_service(self): api_response = self.Api_Instance.list_service_for_all_namespaces() return api_response def read_service(self, name="", namespace="default"): api_response = self.Api_Instance.read_namespaced_service(name, namespace) return api_response def create_service(self, file="service-nginx.yaml", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.create_namespaced_service(namespace, body=dep) return api_response def replace_service(self, file="pod-nginx.yaml", name="hequan", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance.replace_namespaced_service(name, namespace, body=dep) return api_response def delete_service(self, name="hequan", namespace="default"): api_response = self.Api_Instance.delete_namespaced_service(name, namespace) return api_response #################################################################################################################### def list_ingress(self): api_response = self.Api_Instance_Extensions.list_ingress_for_all_namespaces() return api_response def read_ingress(self, name="", namespace="default"): api_response = self.Api_Instance_Extensions.read_namespaced_ingress(name, namespace) return api_response def create_ingress(self, file="ingress-nginx.yaml", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance_Extensions.create_namespaced_ingress(namespace, body=dep) return api_response def replace_ingress(self, name="", file="ingress-nginx.yaml", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) api_response = self.Api_Instance_Extensions.replace_namespaced_ingress(name=name, namespace=namespace, body=dep) return api_response def delete_ingress(self, name="hequan", namespace="default"): api_response = self.Api_Instance_Extensions.delete_namespaced_ingress(name, namespace) return api_response ##################################################################################################################### def list_stateful(self): api_response = self.k8s_apps_v1.list_stateful_set_for_all_namespaces() return api_response def read_stateful(self, name="nginx-deployment", namespace="default"): api_response = self.k8s_apps_v1.read_namespaced_stateful_set(name, namespace) return api_response def create_stateful(self, file="deploy-nginx.yaml"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) resp = self.k8s_apps_v1.create_namespaced_stateful_set( body=dep, namespace="default") return resp def replace_stateful(self, file="deploy-nginx.yaml", name="nginx-deployment", namespace="default"): with open(path.join(path.dirname(__file__), file)) as f: dep = yaml.safe_load(f) resp = self.k8s_apps_v1.replace_namespaced_stateful_set(name, namespace, body=dep) return resp def delete_stateful(self, name="nginx-deployment", namespace="default"): api_response = self.k8s_apps_v1.delete_namespaced_stateful_set(name, namespace) return api_response ####################################################################################################################if __name__ == '__main__': def test(): obj = K8sApi() ret = obj.list_deployment() pprint(ret) test()
封装
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融监管科技数据
今日互联网科技
科技互联网政务服务
互联网科技的
科技制造互联网公司
科技服务与互联网
上海挚品互联网科技
互联网女皇 腾讯科技
互联网科技素材视频竖屏
联恩商钥互联网科技有限公司
福州新华互联网科技学校 知乎
成都铂石互联网科技做什么的
荆州市昕露互联网络科技有限公司
青海科技产业互联网发展
本届互联网博览会上的黑科技
互联网在线教育科技创业
广州互联网高科技取餐柜
抖集互联网科技技术咨询
求路客互联网科技电话
第三届互联网大会安防黑科技
广东万易互联网科技有限公司惠州分公司
科技赋能下的互联网金融
互联网 卓越科技
奇士达互联网科技
四川狮子座互联网科技
深圳国际航运科技和互联网
北京大学互联网科技怎么样
张召忠谈中国互联网科技
北京天晋互联网科技有限公司
悟空问答互联网科技