最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用Kubernetes API訪問集群

 更新時間:2021年05月30日 09:46:44   作者:落魄運維  
本文主要介紹了Python使用Kubernetes API訪問集群,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

通過將身份認證令牌直接傳給 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)

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

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

python舉例:

目錄結(jié)構(gòu)

配置文件兩種方式

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)

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

相關(guān)文章

  • 一文教你如何使用Python繪制瀑布圖

    一文教你如何使用Python繪制瀑布圖

    什么是瀑布圖?瀑布圖用表達兩個數(shù)值之間的變化過程,過程值為正的時候,向上加,過程值為負的時候向下減。本文就帶大家學習一下如何用Python繪制瀑布圖吧
    2023-04-04
  • python?IO多路復用之epoll詳解

    python?IO多路復用之epoll詳解

    這篇文章主要為大家詳細介紹了python?IO多路復用之epoll,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 詳解python中的json的基本使用方法

    詳解python中的json的基本使用方法

    本篇文章主要介紹了python中的json的基本使用方法,在Python中使用json的時候,主要也就是使用json模塊,json是以一種良好的格式來進行數(shù)據(jù)的交互,有興趣的可以了解一下。
    2016-12-12
  • python中數(shù)字列表轉(zhuǎn)化為數(shù)字字符串的實例代碼

    python中數(shù)字列表轉(zhuǎn)化為數(shù)字字符串的實例代碼

    先前學習過,數(shù)字和字符串都可以存儲到變量當中,下面這篇文章主要給大家介紹了關(guān)于python中數(shù)字列表轉(zhuǎn)化為數(shù)字字符串的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 使用Python將xmind腦圖轉(zhuǎn)成excel用例的實現(xiàn)代碼(一)

    使用Python將xmind腦圖轉(zhuǎn)成excel用例的實現(xiàn)代碼(一)

    這篇文章主要介紹了使用Python將xmind腦圖轉(zhuǎn)成excel用例的實現(xiàn)代碼(一),本文給大家介紹的非常詳細對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • pyv8學習python和javascript變量進行交互

    pyv8學習python和javascript變量進行交互

    這篇文章主要介紹了pyv8學習python和javascript變量進行交互,python取得javascript里面的值、javascript取得python里面的值、python和javascript里面的函數(shù)交互
    2013-12-12
  • python numpy實現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例

    python numpy實現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例

    這篇文章主要介紹了python numpy實現(xiàn)多次循環(huán)讀取文件 等間隔過濾數(shù)據(jù)示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python+Turtle實現(xiàn)繪制可愛的小倉鼠

    Python+Turtle實現(xiàn)繪制可愛的小倉鼠

    肉嘟嘟的小動物很是可愛,這篇文章主要為大家介紹一下如何運用Python中的turtle庫控制函數(shù)繪制小倉鼠,文中的實現(xiàn)方法講解詳細,感興趣的可以嘗試一下
    2022-10-10
  • Python元素集合的列表切片

    Python元素集合的列表切片

    這篇文章主要介紹了Python元素集合的列表切片,列表是元素的集合,列表的這些子集稱為切片,下面違章圍繞Python列表切片得相關(guān)資料展開學習內(nèi)容,需要的朋友可以參考一下,希望對你的學習有所幫助
    2022-02-02
  • 使用Python編寫一個沙箱隔離功能

    使用Python編寫一個沙箱隔離功能

    這篇文章主要為大家詳細介紹了如何通過?Docker?實現(xiàn)一個簡單的沙箱隔離應用,然后提供一個通過?Python?模擬沙箱的例子,感興趣的可以了解下
    2024-12-12

最新評論

梁平县| 三河市| 甘肃省| 汶川县| 惠安县| 淮滨县| 伊宁市| 安远县| 兴义市| 枝江市| 万宁市| 静安区| 南平市| 许昌县| 恭城| 河津市| 蒙阴县| 井冈山市| 桂阳县| 东源县| 池州市| 浪卡子县| 屏东市| 达孜县| 吴川市| 泉州市| 财经| 吉水县| 望奎县| 淮北市| 云林县| 鹤山市| 历史| 乃东县| 苗栗市| 庆城县| 同德县| 尖扎县| 阳春市| 北安市| 封丘县|