kubernetes服务/状态/负载平衡/入口ip的设置值

2024-05-19 07:06:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,在创建类型为loadbalancer的k8s服务之后设置service/status/loadBalance/ingressip(如下一个链接https://kubernetes.io/docs/concepts/services-networking/service/的“类型loadbalancer”部分所示)。你知道吗

我的问题与下面链接(Is it possible to update a kubernetes service 'External IP' while watching for the service?)中描述的问题相似,但找不到答案。你知道吗

提前谢谢


Tags: 方法httpsiodocs类型链接statusservice
1条回答
网友
1楼 · 发布于 2024-05-19 07:06:40

有两种方法。使用json patch或合并修补程序。以下是如何实现后者:

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

现在,您可以在这里看到合并修补程序,您必须创建一个包含所有对象树(从状态开始)的字典,这些对象树需要进行一些更改才能合并。如果您想替换某些东西,那么就必须使用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"
        }
      ]
    }
  }

相关问题 更多 >

    热门问题