kubernetes设置服务/状态/ loadBalance / ingress-ip

时间:2017-08-21 21:36:07

标签: python kubernetes

我正在寻找一种在创建type = loadbalancer的k8s服务后设置服务/状态/ loadBalance / ingress-ip的方法(如下一个链接中的' Type LoadBalancer'部分中所示){ {3}})。

我的问题与以下链接(https://kubernetes.io/docs/concepts/services-networking/service/)中描述的问题类似,但无法找到答案。

提前致谢

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点。使用json patch或合并补丁。以下是你如何做到后者:

[centos@ost-controller ~]$ cat patch.json
{
    "status": {
        "loadBalancer": {
            "ingress": [
                {"ip": "8.3.2.1"}
            ]
        }
    }
}

现在,在这里你可以看到for for merge补丁,你必须创建一个包含所有Object树的字典(从状态开始),需要进行一些更改才能合并。如果你想要替换某些内容,那么你必须使用json补丁策略。

我们收到此文件之后,我们会发送请求,如果一切顺利,我们会收到一个响应,该响应包含已应用合并的对象:

[centos@ost-controller ~]$ curl --request PATCH --data "$(cat patch.json)" -H "Content-Type:application/merge-patch+json" http://localhost:8080/api/v1/namespaces/default/services/kubernetes/status{
  "kind": "Service",
  "apiVersion": "v1",
  "metadata": {
    "name": "kubernetes",
    "namespace": "default",
    "selfLink": "/api/v1/namespaces/default/services/kubernetes/status",
    "uid": "b8ece320-76c1-11e7-b468-fa163ea3fb09",
    "resourceVersion": "2142242",
    "creationTimestamp": "2017-08-01T14:00:06Z",
    "labels": {
      "component": "apiserver",
      "provider": "kubernetes"
    }
  },
  "spec": {
    "ports": [
      {
        "name": "https",
        "protocol": "TCP",
        "port": 443,
        "targetPort": 6443
      }
    ],
    "clusterIP": "10.0.0.129",
    "type": "ClusterIP",
    "sessionAffinity": "ClientIP"
  },
  "status": {
    "loadBalancer": {
      "ingress": [
        {
          "ip": "8.3.2.1"
        }
      ]
    }
  }