2017-08-21 18 views
0

k8sサービスを作成した後でservice/status/loadBalance/ingress-ipを設定する方法を探しています( 'LoadBalancer'次のリンクのセクションhttps://kubernetes.io/docs/concepts/services-networking/service/)。kubernetes service/status/loadBalance/ingress-ipの設定値

私の問題は、次のリンク(Is it possible to update a kubernetes service 'External IP' while watching for the service?)に記載されている問題と同様ですが、答えが見つかりませんでした。

ありがとうございます。

答えて

0

これを行うには2通りの方法があります。 json patchまたはマージパッチを使用します。ここにあなたがマージパッチのために、あなたがマージされるいくつかの変更を必要とするすべてのオブジェクトツリーを(状態から始まる)を含む辞書を作成する必要が見ることができ、今

[[email protected] ~]$ cat patch.json 
{ 
    "status": { 
     "loadBalancer": { 
      "ingress": [ 
       {"ip": "8.3.2.1"} 
      ] 
     } 
    } 
} 

:ここでは後者を行う方法です。何かを置き換えたい場合は、jsonパッチ戦略を使用する必要があります。

我々は要求を送信し、すべてがうまくいけば、我々はすでに適用され、マージしてオブジェクトに成る応答を受信します。このファイルを持っていたら:

[[email protected] ~]$ 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" 
     } 
     ] 
    } 
    } 
関連する問題