Python之K8S API接口大全
  TEZNKK3IfmPf 2023年11月14日 20 0

文章目录

  • 一、常用资源接口类实例化
  • 二、操作Deployment
    • `2.1.创建`
    • `2.2.查询`
    • `2.3.删除`
  • 三、操作Service
    • `3.1.创建`
    • `3.2.查询`
    • `3.3.删除`

 


一、常用资源接口类实例化

core_api = client.CoreV1Api()  		# namespace,pod,service,pv,pvc
apps_api = client.AppsV1Api()  		# deployment
networking_api = client.NetworkingV1beta1Api()  # ingress
storage_api = client.StorageV1Api()  			# storage_class

二、操作Deployment

2.1.创建

namespace = "default"
name = "api-test"
replicas = 3
labels = {
     
       'a':'1', 'b':'2'}  # 不区分数据类型,都要加引号
image = "nginx"
body = client.V1Deployment(
            api_version="apps/v1",
            kind="Deployment",
            metadata=client.V1ObjectMeta(name=name),
            spec=client.V1DeploymentSpec(
                replicas=replicas,
                selector={
     
       'matchLabels': labels},
                template=client.V1PodTemplateSpec(
                    metadata=client.V1ObjectMeta(labels=labels),
                    spec=client.V1PodSpec(
                        containers=[client.V1Container(
                            name="web",
                            image=image
                        )]
                    )
                ),
            )
        )
try:
    apps_api.create_namespaced_deployment(namespace=namespace, body=body)
except Exception as e:
    status = getattr(e, "status")
    if status == 400:
        print(e)
        print("格式错误")
    elif status == 403:
        print("没权限")

2.2.查询

for dp in apps_api.list_deployment_for_all_namespaces().items:
    print(dp.metadata.name)

2.3.删除

namespace = "default"
name = "api-test"
apps_api.delete_namespaced_deployment(namespace=namespace, name=name)

三、操作Service

3.1.创建

namespace = "default"
name = "api-test"
selector = {
     
       'a':'1', 'b':'2'}  # 不区分数据类型,都要加引号
port = 80
target_port = 80
type = "NodePort"
body = client.V1Service(
    api_version="v1",
    kind="Service",
    metadata=client.V1ObjectMeta(
        name=name
    ),
    spec=client.V1ServiceSpec(
        selector=selector,
        ports=[client.V1ServicePort(
            port=port,
            target_port=target_port
        )],
        type=type
    )
)
core_api.create_namespaced_service(namespace=namespace, body=body)

3.2.查询

for svc in core_api.list_namespaced_service(namespace="default").items:
    print(svc.metadata.name)

3.3.删除

core_api.delete_namespaced_service(namespace=namespace, name=name)
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   32   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   25   0   0 python
TEZNKK3IfmPf