国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

kubernetes之Python客戶端介紹

IT那活兒 / 2828人閱讀
kubernetes之Python客戶端介紹
點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!

  

Kubernetes(以下簡稱k8s)是一個用于自動化部署、擴展和管理容器化應(yīng)用的開源系統(tǒng)。

k8s在正常運行時的大部分操作都可以通過kubectl命令行接口或類似kubeadm之類的命令行工具進行執(zhí)行,根據(jù)文檔,這些工具背后實際上調(diào)用的是k8s提供的api,這些 api也供應(yīng)用程序和開發(fā)人員調(diào)用其功能,由于k8s的api是基于REST思想設(shè)計的,因此為了使用的不同的操作,可能需要使用不同的HTTP請求。
例如:從k8s獲取信息的話需要使用GET請求,需要在k8s上創(chuàng)建資源的話需要使用POST請求,刪除資源需要使用DELETE請求;同時還需要構(gòu)建完整的HTTP請求,這可能需要占用不少時間。
為了方便快速的調(diào)用k8s的api,官方和社區(qū)維護了多個編程語言的客戶端,在使用這些客戶端時,我們并不需要自己實現(xiàn)API調(diào)用和“請求/響應(yīng)”類型,從而使自己的工作重心落在重要的部分。

圖片來源于網(wǎng)絡(luò)

Python的k8s客戶端是以python包的形式提供的,開源地址(https://github.com/kubernetes-client/python),可以通過pip命令下載安裝。

  • 直接通過 PyPI下載安裝
    pip install kubernetes
  • 從源碼安裝
    git clone –-recursive
    https://github.com /kubernetes-client/python.git cd python python setup.py install

1

配置kubernetes api

//導(dǎo)入包:

from kubernetes import client
from pprint import pprint //優(yōu)化輸出
//配置信息:
k8s_api_url="YOUR_API_URL"
k8s_api_token="YOUR_API_TOKEN"
//初始化客戶端:

k8s_api_conf=kubernetes.client.Configuration()
k8s_api_conf.host=k8s_api_url //配置url
k8s_api_conf.verify_ssl=False //關(guān)閉SSL驗證,可選擇
k8s_api_conf.api_key = {"authorization": "Bearer " + k8s_api_token} //配置token
k8s_api_client=client.ApiClient(k8s_api_conf) //創(chuàng)建客戶端

2

常用資源接口實例化

kubernetes的api接口極為豐富,本次僅介紹常用操作和會涉及到的類和方法,全部的接口文檔可以在官方API文檔(https://github.com/kubernetes-client/python/blob/master/kubernetes/README.md)處找到。

  • namespace、pod、node和service相關(guān),使用CoreV1Api類實例
    k8s_api_client_core=client.CoreV1Api(k8s_api_client

  • deployment相關(guān),使用AppsV1Api類實例
    k8s_api_client_apps=client.AppsV1Api(k8s_api_client

  • ingress相關(guān),使用NetworkingV1beta1Api類實例
    k8s_api_client_networking=client.NetworkingV1beta1Api(k8s_api_client)

3

常用操作

1)查看namespace

  • 使用list_namespace方法

    //可選參數(shù):

    //pretty   str   如果值為"true",則美化輸出

    //limit   int   限制輸出數(shù)量

    //timeout_second    int    超時時間

    try:   

api_response=k8s_api_client_core.list_namespace(pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用read_namespace方法

    //必要參數(shù):

    //name   str   namespace名

    //可選參數(shù):

    //pretty   str   如果值為"true",則美化輸出

    try:   

api_response=k8s_api_client_core.read_namespace(name,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

2)創(chuàng)建namespace

  • //使用create_namespace方法

    //必要參數(shù):

    //body   V1Namespace   創(chuàng)建的namespace描述

    //可選參數(shù):

    //pretty   str   如果值為"true",則美化輸出

    //dry_run   str   如果存在此參所則表示試運行,有效值為"ALL"

    //field_manager    str   該參數(shù)是與進行這些更改的參與者或?qū)嶓w關(guān)聯(lián)的名稱。該值的長度必須小于或等于128個字符,并且僅包含可打印字符

    body=client.V1Namespace()   //創(chuàng)建body

    try:

api_response=k8s_api_client_core.create_namespace(body,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

3)刪除namespace

  • //使用delete_namespace方法
    //必要參數(shù):
    //name   str    刪除的namespace名
    //可選參數(shù):
    //pretty   str   如果值為"true",則美化輸出
    //dry_run   str    如果存在此參所則表示試運行,有效值為"ALL"
    //grace_period_seconds   int    表示延遲多少秒執(zhí)行,非負數(shù),當(dāng)為0時立即執(zhí)行
    try:
api_response=k8s_api_client_core.delete_namespace(name,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

4)查看pod

  • //使用list_namespaced_pod方法

    //必要參數(shù):

    //namespace   str    namespace名

    //可選參數(shù):

    //pretty   str    如果值為"true",則美化輸出

    //limit   int    限制輸出數(shù)量

    //timeout_second    int    超時時間

    try:

api_response=k8s_api_client_core.list_namespaced_pod(namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用list_pod_for_all_namespaces方法
    //可選參數(shù):
    //pretty    str    如果值為"true",則美化輸出
    //limit    int    限制輸出數(shù)量
    //timeout_second    int    超時時間
    try:
api_response=k8s_api_client_core.list_pod_for_all_namespaces(pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用read_namespaced_pod方法
    //必要參數(shù):
    //name   str    pod名
    //namespace    str    namespace名
    //可選參數(shù):
    //pretty   str   如果值為"true",則美化輸出
    try:
api_response=k8s_api_client_core.read_namespaced_pod(name,namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

5)查看node

  • //使用list_node方法

    //可選參數(shù):

    //pretty   str    如果值為"true",則美化輸出

    //limit   int    限制輸出數(shù)量

    //timeout_second    int    超時時間

    try:

api_response=k8s_api_client_core.list_node(pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用read_node方法
    //必要參數(shù):
    //name   str    node名
    //可選參數(shù):
    //pretty   str    如果值為"true",則美化輸出
    try: 
api_response=k8s_api_client_core.read_node(name,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

6)查看deployment

  • //使用list_namespaced_deployment方法
    //必要參數(shù):
    //namespace   str    namespace名
    //可選參數(shù):
    //pretty   str    如果值為"true",則美化輸出
    //limit   int    限制輸出數(shù)量
    //timeout_second    int    超時時間
    try:
api_response=k8s_api_client_apps.list_namespaced_deployment(namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用list_deployment_for_all_namespaces方法
    //可選參數(shù):
    //pretty   str    如果值為"true",則美化輸出
    //limit    int    限制輸出數(shù)量
    //timeout_second    int    超時時間
    try:  
api_response=k8s_api_client_apps.list_deployment_for_all_namespaces(pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)
  • //使用read_namespaced_deployment方法

    //必要參數(shù):

    //name   str    deployment名

    //namespace   str    namespace名

    //可選參數(shù):

    //pretty   str    如果值為"true",則美化輸出

    try: 

api_response=k8s_api_client_apps.read_namespaced_deployment(name,namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

7)刪除deployment

  • //使用delete_namespaced_deployment方法
    //必要參數(shù):
    //name   str    deployment名
    //namespace   str    namespace名
    //可選參數(shù):
    //pretty   str    如果值為"true",則美化輸出
    //dry_run   str    如果存在此參所則表示試運行,有效值為"ALL"
    //grace_period_seconds    int    表示延遲多少秒執(zhí)行,非負數(shù),當(dāng)為0時立即執(zhí)行
    try: 
api_response=k8s_api_client_apps.delete_namespaced_deployment(name,namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

8)刪除pod/重啟pod

  • //使用delete_namespaced_pod方法
    //必要參數(shù):
    //name?    ?str    pod名
    //namespace    str    namespace名
    //可選參數(shù):
    //pretty    str    如果值為"true",則美化輸出
    //dry_run   str    如果存在此參所則表示試運行,有效值為"ALL"
    //grace_period_seconds    int    表示延遲多少秒執(zhí)行,非負數(shù),當(dāng)為0時立即執(zhí)行
    try:
api_response=k8s_api_client_core.delete_namespaced_pod(name,namespace,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)

9)修改deployment配置

  • //使用replace_namespaced_deployment方法
    //必要參數(shù):
    //name    str     deployment名
    //namespace    str    namespace名
    //body     V1Deployment  修改后的配置
    //可選參數(shù):
    //pretty   str   如果值為"true",則美化輸出
    //dry_run    str   如果存在此參所則表示試運行,有效值為"ALL"
    //field_manager   str   該參數(shù)是與進行這些更改的參與者或?qū)嶓w關(guān)聯(lián)的名稱。該值的長度必須小于或等于128個字符,并且僅包含可打印字符
    try:  
//先獲取當(dāng)前的deployment配置
   body=k8s_api_client_apps.read_namespaced_deployment(name,namespace,pretty="true")
   //修改deployment
   some_change()
   //替換deployment配置
   api_response=k8s_api_client_apps.replace_namespaced_deployment(name,namespace,body,pretty="true")
   pprint(api_response)
exception Exceptions as e:
   print(e)


本文作者:李雙修(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129389.html

相關(guān)文章

  • 如何在GO語言中使用Kubernetes API?

    摘要:并且由外部控制器負責(zé)將資源轉(zhuǎn)移到這一狀態(tài)。在最后一個參數(shù),我們傳遞了個回調(diào)函數(shù)和。這些回調(diào)函數(shù)具有實際的邏輯,并且在節(jié)點上的鏡像占用存儲發(fā)生改變時觸發(fā)。一旦啟動,將會開始對和的監(jiān)控,并且調(diào)用回調(diào)函數(shù)。 Rancher Labs首席軟件工程師Alena Prokharchyk受邀在2017年12月6-8日的CNCF主辦的Kubernetes領(lǐng)域頂級盛會KubeCon + CloudNat...

    microelec 評論0 收藏0
  • 系統(tǒng)架構(gòu)

    強力推薦!那些你不能錯過的 GitHub 插件和工具 以代碼托管平臺起家的 GitHub 網(wǎng)站,已然成為全球程序員工作和生活中不可或缺的一份子。從優(yōu)秀的企業(yè),到優(yōu)秀的程序員,都將自己最優(yōu)秀的代碼作品存放在這片開源凈土里,供彼此學(xué)習(xí)交流。 GitHub Trending 欄目甚至已經(jīng)成為 IT 從業(yè)人員的新聞日報,每日必讀。在之前的一… PostgreSQL 數(shù)據(jù)庫的前世今生 編輯:IT大咖說閱讀字...

    Gilbertat 評論0 收藏0
  • 系統(tǒng)架構(gòu)

    強力推薦!那些你不能錯過的 GitHub 插件和工具 以代碼托管平臺起家的 GitHub 網(wǎng)站,已然成為全球程序員工作和生活中不可或缺的一份子。從優(yōu)秀的企業(yè),到優(yōu)秀的程序員,都將自己最優(yōu)秀的代碼作品存放在這片開源凈土里,供彼此學(xué)習(xí)交流。 GitHub Trending 欄目甚至已經(jīng)成為 IT 從業(yè)人員的新聞日報,每日必讀。在之前的一… PostgreSQL 數(shù)據(jù)庫的前世今生 編輯:IT大咖說閱讀字...

    k00baa 評論0 收藏0
  • PHPer書單

    摘要:想提升自己,還得多看書多看書多看書下面是我收集到的一些程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧當(dāng)然,如果你有好的書想分享給大家的或者覺得書單不合理,可以去通過進行提交。講師溫銘,軟件基金會主席,最佳實踐作者。 想提升自己,還得多看書!多看書!多看書!下面是我收集到的一些PHP程序員應(yīng)該看得書單及在線教程,自己也沒有全部看完。共勉吧!當(dāng)然,如果你有好的書想分享給大家的或者...

    jimhs 評論0 收藏0
  • 利用K8S技術(shù)棧打造個人私有云(連載:K8S資源控制)

    摘要:將用戶命令通過接口傳送給,從而進行資源的增刪改等操作。要使用編寫應(yīng)用程序,當(dāng)下大多語言都可以很方便地去實現(xiàn)請求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優(yōu)雅地實現(xiàn)的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術(shù)棧打造個人私有云系列文章目錄】 利用K8S...

    Reducto 評論0 收藏0
  • 利用K8S技術(shù)棧打造個人私有云(連載:K8S資源控制)

    摘要:將用戶命令通過接口傳送給,從而進行資源的增刪改等操作。要使用編寫應(yīng)用程序,當(dāng)下大多語言都可以很方便地去實現(xiàn)請求來操作的接口從而控制和查詢資源,但本文主要是利用已有的客戶端來更加優(yōu)雅地實現(xiàn)的資源控制。 showImg(https://segmentfault.com/img/remote/1460000013517345); 【利用K8S技術(shù)棧打造個人私有云系列文章目錄】 利用K8S...

    Render 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<