日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

调用Kubernetes API操作Kubernetes

發(fā)布時間:2023/12/13 综合教程 20 生活家
生活随笔 收集整理的這篇文章主要介紹了 调用Kubernetes API操作Kubernetes 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

準備工作

  首先要準備一個1.5+版本的Kubernetes,并且開放了API Server的http訪問端口8080。本文使用的是1.10的版本,沒有環(huán)境的可以參考我上一篇文章《在CentOS 7+ 安裝Kubernetes入門(單Master)》進行安裝。

  使用http://master-ip:8080/apis檢查API是否能正常訪問,這里的master-ip是192.168.132.132。

  

  如果地址無法訪問,需要設置Kubernetes開通http訪問端口8080。

  1. 在Master中進入API Server的啟動腳本目錄:

  cd /etc/kubernetes/manifests/

  2. 修改API Server的腳本文件:kube-apiserver.yaml或者kube-apiserver.json。

  添加或設置--insecure-bind-address=0.0.0.0、--insecure-port=8080。如下:

  

  重啟kubelet:

  systemctl daemon-reload

  systemctl restart kubelet

  3. 打開Swagger(可選)

  在kube-apiserver.yaml或者kube-apiserver.json中添加--enable-swagger-ui=true,重啟kubelet,然后使用http://master-ip:8080/swagger-ui/進行訪問:

  

  更多設置參數(shù)請參考:

  https://kubernetes.io/docs/reference/generated/kube-apiserver/

創(chuàng)建應用

  1. 創(chuàng)建deloyment

  nginx-dep.json:

{
  "apiVersion": "extensions/v1beta1", 
  "kind": "Deployment", 
  "metadata": {
    "name": "nginx", 
    "labels": {
      "app": "nginx"
    }, 
    "namespace": "default"
  }, 
  "spec": {
    "replicas": 1, 
    "template": {
      "metadata": {
        "labels": {
          "app": "nginx"
        }
      }, 
      "spec": {
        "nodeSelector": {
          "kubernetes.io/role": "node"
        }, 
        "containers": [
          {
            "name": "nginx", 
            "image": "nginx:1.13", 
            "ports": [
              {
                "containerPort": 80
              }
            ]
          }
        ]
      }
    }
  }
}

  API:POST http://master-ip:8080/apis/extensions/v1beta1/namespaces/{namespace}/deployments:

  

  kubectl get deployment進行檢查:

  

  2. 創(chuàng)建service

  nginx-svc.json:

{
  "kind": "Service", 
  "apiVersion": "v1", 
  "metadata": {
    "name": "nginx", 
    "labels": {
      "app": "nginx"
    }, 
    "namespace": "default"
  }, 
  "spec": {
    "selector": {
      "app": "nginx"
    }, 
    "type": "NodePort", 
    "ports": [
      {
        "name": "nginx", 
        "nodePort": 30000, 
        "port": 80, 
        "protocol": "TCP", 
        "targetPort": 80
      }
    ]
  }
}

  API:POST http://master-ip:8080/api/v1/namespaces/{namespace}/services:

  

  kubectl get service進行檢查:

  

  使用Node1的地址http://192.168.132.130:30000/進行訪問:

  

補充說明

  Kubernetes高版本其實更建議使用https的協(xié)議來操作API Server,即https://master-ip:6443/,而且默認是開放的:

  

  但是https的認證與授權(quán)當前我還沒有弄清楚,因此,沒有寫在這篇文章,或許后續(xù)會補上。不過,Kubernetes推出了Helm,用Helm可以更方便地操作Kubernetes,我后續(xù)會介紹如何使用Helm。

總結(jié)

以上是生活随笔為你收集整理的调用Kubernetes API操作Kubernetes的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。