学习利用python写 k8s 第一天笔记

举报
学习使我快乐哇咔咔 发表于 2024/01/28 16:28:53 2024/01/28
【摘要】 import randomfrom kubernetes import client, config, watchtry:    config.load_kube_config('kube_config')    k8s = client.CoreV1Api()    w = watch.Watch()    for event in w.stream(k8s.list_namespaced...

import random

from kubernetes import client, config, watch

try:
    config.load_kube_config('kube_config')
    k8s = client.CoreV1Api()
    w = watch.Watch()
    for event in w.stream(k8s.list_namespaced_pod, namespace='default', timeout_seconds=6000):
        o = event['object']
        # print(str(event))
        # print(o.spec.node_name,o.status.phase)
        # print(k8s.read_namespaced_pod(o.metadata.name, 'default'))

        # print(o.status.phase, o.spec.node_name, type(o.status.phase), type(o.spec.node_name))
        # print(o.status.phase == "Pending" or o.status.phase == "Running", o.spec.node_name is None)
        if (o.status.phase == "Pending" or o.status.phase == "Running") and o.spec.node_name is None:
            # print(o.status.phase, o.spec.node_name, type(o.status.phase), type(o.spec.node_name))
            # print(o.status.phase == "Pending" or o.status.phase == "Running", o.spec.node_name is None)
            # print(o.metadata.name)
            nodes = []
            for i in k8s.list_node().items:
                for n in i.status.conditions:
                    if n.status == 'True' and n.type == 'Ready':
                        nodes.append(i.metadata.name)
            nodes = random.choice(nodes)
            # print(nodes)
            t = client.V1Binding(
                metadata=client.V1ObjectReference(name=o.metadata.name),
                target=client.V1ObjectReference(kind='Node', api_version='v1', name=nodes)
            )
            try:
                resp = k8s.create_namespaced_binding('default', body=t)
                print(str(resp))
            except:
                pass

            print(k8s.read_namespaced_pod(o.metadata.name,'default'))
except Exception as e:
    print('err')
    print(e)
print('end')
print('master')

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。