好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python使用Kubernetes API訪問集群

Python使用Kubernetes API訪問集群

熱門標簽:小蘇云呼電話機器人 所得系統電梯怎樣主板設置外呼 佛山400電話辦理 朝陽手機外呼系統 北瀚ai電銷機器人官網手機版 地圖標注面積 北京電銷外呼系統加盟 市場上的電銷機器人 儋州電話機器人

通過將身份認證令牌直接傳給 API 服務器,可以避免使用 kubectl 代理,像這樣:
使用 grep/cut 方式:

# 查看所有的集群,因為你的 .kubeconfig 文件中可能包含多個上下文
kubectl config view -o jsonpath='{"Cluster name\tServer\n"}{range .clusters[*]}{.name}{"\t"}{.cluster.server}{"\n"}{end}'

# 從上述命令輸出中選擇你要與之交互的集群的名稱
export CLUSTER_NAME="some_server_name"

# 指向引用該集群名稱的 API 服務器
APISERVER=$(kubectl config view -o jsonpath="{.clusters[?(@.name==\"$CLUSTER_NAME\")].cluster.server}")

# 獲得令牌
TOKEN=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 -d)

# 使用令牌玩轉 API
curl -X GET $APISERVER/api --header "Authorization: Bearer $TOKEN" --insecure

客戶端庫:https://kubernetes.io/zh/docs/reference/using-api/client-libraries/

python舉例:

目錄結構

配置文件兩種方式

1、將集群中的~/.kube/config,重命名為kubeconfig.yaml
代碼:

from kubernetes import  client,config
from kubernetes.stream import stream
import yaml
config_file = r"D:\Users\JackHe\PycharmProjects\JJ\k8s\auth\kubeconfig.yaml"
config.kube_config.load_kube_config(config_file=config_file)
Api_Instance = client.CoreV1Api()
Api_Batch = client.BatchV1Api()

#列出所有的namesapce
for ns in Api_Instance.list_namespace().items:
    print(ns.metadata.name)

#列出所有的nodes
def list_node():
    api_response = 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
nodes = list_node()
print(nodes)

2、使用token形式,獲取命令上文所示。
代碼:

# -*- coding: utf-8 -*-
from kubernetes.client import api_client
from kubernetes.client.apis import core_v1_api
from kubernetes import client,config


class KubernetesTools(object):
    def __init__(self):
        self.k8s_url = 'https://192.168.1.56:6443'

    def get_token(self):
        """
        獲取token
        :return:
        """
        with open(r'D:\Users\JackHe\PycharmProjects\JJ\k8s\auth\token', 'r') as file:
            Token = file.read().strip('\n')
            return Token

    def get_api(self):
        """
        獲取API的CoreV1Api版本對象
        :return:
        """
        configuration = client.Configuration()
        configuration.host = self.k8s_url
        configuration.verify_ssl = False
        configuration.api_key = {"authorization": "Bearer " + self.get_token()}
        client1 = api_client.ApiClient(configuration=configuration)
        api = core_v1_api.CoreV1Api(client1)
        return api

    def get_namespace_list(self):
        """
        獲取命名空間列表
        :return:
        """
        api = self.get_api()
        namespace_list = []
        for ns in api.list_namespace().items:
            # print(ns.metadata.name)
            namespace_list.append(ns.metadata.name)

        return namespace_list

    def get_pod_list(self):
       api = self.get_api()
       print("Listing pods with their IPs:")
       ret = api.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 get_service_list(self):
        api = self.get_api()
        ret = api.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))

if __name__ == '__main__':
    namespace_list = KubernetesTools().get_namespace_list()
    pod_list = KubernetesTools().get_pod_list()
    service = KubernetesTools().get_service_list()
    print(namespace_list)
    print(pod_list)
    print(service)

到此這篇關于Python使用Kubernetes API訪問集群的文章就介紹到這了,更多相關Python Kubernetes API訪問集群內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python3 kubernetes api的使用示例

標簽:云南 定西 龍巖 寧夏 商丘 金融催收 江蘇 酒泉

巨人網絡通訊聲明:本文標題《Python使用Kubernetes API訪問集群》,本文關鍵詞  Python,使用,Kubernetes,API,訪問,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python使用Kubernetes API訪問集群》相關的同類信息!
  • 本頁收集關于Python使用Kubernetes API訪問集群的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 久久久久无码一区二区国产AV| 精品亚洲一区二区三区| 中文字幕在线观看2022| 亚洲国产网址| 亚洲A片无码秘?色多多| 公和我做好爽漫画| 久久九色综合九色99伊人| 国产欧美曰韩一区二区三区| 扒开腿挺进肉蒂抽搐喷潮视频| 色色色色网站| 强漂亮白丝女教师| 再深点灬舒服灬太大视频| 吸乳漫画| 视频亚洲一区| 天天夜夜操| 91国偷自产一区二区三区观看| 男生舔女生胸| 丝瓜视频黄色| 胸片曝光软件2025更新视频| 青青草免费版观看电视剧 | 婚后一百种姿势1v1h| 中国女人freexxxx性老女人| 九色91POPNY丨偷拍| 国产精品久久欠久久久久久九秃 | 99精品网站| 近親國產偷子亂伦XXXXX下载| 窝窝人体艺7777777| 国产精品第页| 99精品国产闺蜜国产在线闺蜜| 久久久久国产精品亚洲AV四虎| 777午夜理论片影院在线播放京东 日本最长69频频14页码69 | 欧美熟妇AV欧差AA片欧米茄| 囯产精品扒幵做爽爽爽的视频| 久久精品无码人妻A级毛片玉甫团| 国产亚洲精品久久久久久无几年桃| 91视频国产高清| 一级丰满老熟女毛片免费观看| 嗯啊娇妻| 成人人免费夜夜视频观看| jZZJIZZ成熟丰满动漫| 丞相闺房床榻粗喘H娇女|