我正在寻找一种在创建type = loadbalancer的k8s服务后设置服务/状态/ loadBalance / ingress-ip的方法(如下一个链接中的' Type LoadBalancer'部分中所示){ {3}})。
我的问题与以下链接(https://kubernetes.io/docs/concepts/services-networking/service/)中描述的问题类似,但无法找到答案。
提前致谢
答案 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"
}
]
}
}