一、python通过config文件执行api操作

https://www.cnblogs.com/zhangb8042/p/11444756.html

https://github.com/kubernetes-client/python/tree/master/examples

1)准备环境

cp .kube/config    kubeconfig.yaml
pip install kubernetes

2)获取k8s资源

python调用 k8s的api
from kubernetes import client, config
from os import path
import yaml

class k8sapi:
    def k8s_conn(self):
        config.kube_config.load_kube_config(config_file="kubeconfig.yaml")
        conn = client.CoreV1Api()
        return conn

    def namespaces(self):
        # 列出 namespaces
        conn = self.k8s_conn()
        ret = conn.list_pod_for_all_namespaces(watch=False)
        for i in ret.items:
            print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

    def services(self):
        # 列出所有的services
        conn = self.k8s_conn()
        ret = conn.list_service_for_all_namespaces(watch=False)
        for i in ret.items:
            print("%s \t%s \t%s \t%s \t%s \n" % (
            i.kind, i.metadata.namespace, i.metadata.name, i.spec.cluster_ip, i.spec.ports))

    def pods(self):
        # 列出所有的pod
        conn = self.k8s_conn()
        ret = conn.list_pod_for_all_namespaces(watch=False)
        for i in ret.items:
            print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

    def create(self):
        config.load_kube_config()
        with open(path.join(path.dirname(__file__), "/root/deploy.yaml")) as f:
            dep = yaml.safe_load(f)
            k8s_apps_v1 = client.AppsV1Api()
            resp = k8s_apps_v1.create_namespaced_deployment(
                body=dep, namespace="default")
            print("Deployment created. status='%s'" % resp.metadata.name)
    def delete(self):
        config.load_kube_config()
        k8s_core_v1 = client.CoreV1Api()
        resp = k8s_core_v1.delete_namespaced_pod(namespace="default", name='nginx-pod')
        print("delete Pod ")

if __name__ == '__main__':
    myk8s = k8sapi()
    myk8s.pods()
k8sinfo.py

相关文章: