<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      python3 kubernetes api 使用

      一、安裝

      github:https://github.com/kubernetes-client/python

      安裝

      pip install kubernetes

       

       

      二、認證

      1、kubeconfig文件認證

      首先引入SDK支持庫。然后將 ~/.kube 的config文件的內容復制到本地目錄,保存為文件kubeconfig.yaml,然后運行下面的python代碼。

      [root@k8s-m ~]# cp .kube/config    kubeconfig.yaml
      
      #使用
      from kubernetes import client, config
      config.kube_config.load_kube_config(config_file="/root/kubeconfig.yaml")

       

       

       

      三、api使用

      1、列出資源信息

      from kubernetes import client, config
      config.kube_config.load_kube_config(config_file="/root/kubeconfig.yaml")
      
      #獲取API的CoreV1Api版本對象
      v1 = client.CoreV1Api()
      
      #列出 namespaces
      for ns in v1.list_namespace().items:
          print(ns.metadata.name)
          
      #列出所有的services
      ret = v1.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 ))
          
      #列出所有的pod
      ret = v1.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))
      
      #列出所有deploy
      ret = v1.list_deployments_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))
          
      ##列出其他資源和以上類似,不懂可以查看(kubectl  api-resources)

       

      2、創建k8s資源對象


      github:https://github.com/kubernetes-client/python/tree/master/examples

      創建資源(提前寫好yaml資源清單)

      #創建deploy
      [root@k8s-m ~]# cat create_deploy.py
      from os import path
      import yaml
      from kubernetes import client, config
      
      def main():
          config.load_kube_config()
      
          with open(path.join(path.dirname(__file__), "/root/deploy.yaml")) as f:
              dep = yaml.safe_load(f)
              k8s_apps_v1 = client.AppsV1Api()
              resp = k8s_apps_v1.create_namespaced_deployment(
                  body=dep, namespace="default")
              print("Deployment created. status='%s'" % resp.metadata.name)
      main()
      
      [root@k8s-m ~]# kubectl get pod 
      NAME                        READY   STATUS    RESTARTS   AGE
      mydeploy-6946c867dc-bgcld   1/1     Running   0          40s
      mydeploy-6946c867dc-rdnvj   1/1     Running   0          40s
      [root@k8s-m ~]# kubectl get deploy
      NAME       READY   UP-TO-DATE   AVAILABLE   AGE
      mydeploy   2/2     2            2           44s
      
      
      #創建pod例子(其它資源得自己查源碼自己找對應的API)
      [root@k8s-m ~]# cat create_pod.py 
      from os import path
      
      import yaml
      
      from kubernetes import client, config
      
      
      def main():
          config.load_kube_config()
      
          with open(path.join(path.dirname(__file__), "/root/pod.yaml")) as f:
              dep = yaml.safe_load(f)
              k8s_core_v1 = client.CoreV1Api()
              resp = k8s_core_v1.create_namespaced_pod(
                  body=dep, namespace="default")
              print("Pod created. status='%s'" % resp.metadata.name)
      
      
      if __name__ == '__main__':
          main()
      
      ##
      [root@k8s-m ~]# python3  create_pod.py 
      Pod created. status='nginx-pod'
      [root@k8s-m ~]# kubectl get pod  nginx-pod
      NAME        READY   STATUS    RESTARTS   AGE
      nginx-pod   1/1     Running   0          8s

       

       

      3、刪除資源(我這里展示pod例子,其它資源刪除差不多)

      參考地址:/usr/local/python3/lib/python3.6/site-packages/kubernetes/client/

      [root@k8s-m ~]# cat  dp.py
      from os import path
      import yaml
      from kubernetes import client, config
      
      def main():
          config.load_kube_config()
          k8s_core_v1 = client.CoreV1Api()
          resp = k8s_core_v1.delete_namespaced_pod(namespace="default",name='nginx-pod')
          print("delete Pod ")
      
      [root@k8s-m ~]# python3 dp.py
      delete Pod 

       

      4、查看資源(類似kubectl get pod xxx -o json)

      #查看(read)
      
      [root@k8s-m ~]# cat  rp.py 
      from os import path
      import yaml
      from kubernetes import client, config
      
      def main():
          config.load_kube_config()
          k8s_core_v1 = client.CoreV1Api()
          resp = k8s_core_v1.read_namespaced_pod(namespace="default",name='nginx-pod')
          print("read Pod ")
          #詳細信息
          print(resp)
          #指定信息
          print(resp.spec.containers[0].image)
      
      if __name__ == '__main__':
          main()
      
      [root@k8s-m ~]# python3   rp.py  |tail
                  'host_ip': '172.31.250.229',
                  'init_container_statuses': None,
                  'message': None,
                  'nominated_node_name': None,
                  'phase': 'Running',
                  'pod_ip': '10.244.167.134',
                  'qos_class': 'BestEffort',
                  'reason': None,
                  'start_time': datetime.datetime(2019, 8, 30, 9, 13, 49, tzinfo=tzutc())}}
      nginx

       

      5、修改

      [root@k8s-m ~]# cat  pp.py 
      from os import path
      import yaml
      from kubernetes import client, config
      
      def main():
          config.load_kube_config()
          k8s_core_v1 = client.CoreV1Api()
          old_resp = k8s_core_v1.read_namespaced_pod(namespace="default",name='nginx-pod')
          old_resp.spec.containers[0].image = "nginx:alpine"
          #修改鏡像
          new_resp = k8s_core_v1.patch_namespaced_pod(namespace="default",name='nginx-pod',body=old_resp)
          print(new_resp.spec.containers[0].image)
      if __name__ == '__main__':
          main()
      
      [root@k8s-m ~]# python3 pp.py 
      nginx:alpine

       

      posted @ 2019-09-02 09:24  巽逸  閱讀(23344)  評論(14)    收藏  舉報
      主站蜘蛛池模板: 3d无码纯肉动漫在线观看| 丰满高跟丝袜老熟女久久| 日韩人妻无码一区二区三区99| 在线无码免费的毛片视频| 久久久久青草线蕉亚洲| 亚洲精品一区二区三区小| 成人午夜视频一区二区无码 | 久久a级片| 精品无码久久久久国产电影| 色窝窝免费播放视频在线| 亚洲AV乱码毛片在线播放| japanese无码中文字幕| 粉嫩av蜜臀一区二区三区| 国产免费丝袜调教视频| 日韩av一区二区三区不卡| av中文字幕在线二区| 人妻日韩精品中文字幕| 亚洲女同精品久久女同| 亚洲成av人片无码不卡播放器| 亚洲女人天堂成人av在线| 精品人妻无码一区二区三区性| 高清无码爆乳潮喷在线观看| 国产欧美精品aaaaaa片| 开心激情站开心激情网六月婷婷| 91一区二区三区蜜桃臀| 亚洲国产精品日韩在线| 国产69精品久久久久人妻刘玥 | 天天爽夜夜爱| 国产精品乱码一区二区三| 国产女人在线视频| 一区二区三区午夜福利院| av在线播放国产一区| 人妻少妇偷人一区二区| 男女激情一区二区三区| 美女内射无套日韩免费播放| 中文字幕有码日韩精品| 未满十八18禁止免费无码网站 | 大伊香蕉精品一区二区| 国产超高清麻豆精品传媒麻豆精品 | 亚洲av片在线免费观看| 人妻精品动漫H无码中字|