web-dev-qa-db-ja.com

KubernetesのクラスターIPとは何ですか?

3つのノードのクラスターを作成しました。1つはマスター、2つはミニオンです。 KubernetesでクラスターIPを確認する方法マスターノードのIPですか?

23

ClusterIPは2つのことを意味します。Kubernetesクラスタ内でのみアクセス可能なサービスのタイプ、または内部のコンポーネントの内部(「仮想」)IP Kubernetesクラスタ。クラスターの内部IPの検索について質問しているとすると、3つの方法でアクセスできます( simple-nginxの例 を使用)。

  1. コマンドラインkubectlユーティリティ経由:

    $ kubectl describe service my-nginx
    Name:           my-nginx
    Namespace:      default
    Labels:         run=my-nginx
    Selector:       run=my-nginx
    Type:           LoadBalancer
    IP:         10.123.253.27
    LoadBalancer Ingress:   104.197.129.240
    Port:           <unnamed>   80/TCP
    NodePort:       <unnamed>   30723/TCP
    Endpoints:      10.120.0.6:80
    Session Affinity:   None
    No events.
    
  2. Kubernetes API(ここではkubectl proxy localhostを介してクラスタにルーティングします):

    $ kubectl proxy &
    $ curl -G http://localhost:8001/api/v1/namespaces/default/services/my-nginx
    {
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": <omitted>,
      "spec": {
        "ports": [
          {
            "protocol": "TCP",
            "port": 80,
            "targetPort": 80,
            "nodePort": 30723
          }
        ],
        "selector": {
          "run": "my-nginx"
        },
        "clusterIP": "10.123.253.27",
        "type": "LoadBalancer",
        "sessionAffinity": "None"
      },
      "status": {
        "loadBalancer": {
          "ingress": [
            {
              "ip": "104.197.129.240"
            }
          ]
        }
      }
    }
    
  3. $<NAME>_SERVICE_Host Kubernetesコンテナー内の環境変数(この例ではmy-nginx-yczg9はクラスター内のポッドの名前です):

    $ kubectl exec my-nginx-yczg9 -- sh -c 'echo $MY_NGINX_SERVICE_Host'
    10.123.253.27
    

サービスIPの詳細については Services in Kubernetes のドキュメントを参照してください。前述の simple-nginxの例 は、クラスターの外部でサービスを公開する良い例です。 LoadBalancerサービスタイプ。

25
Tim Allclair

これを実行

$ kubectl cluster-info

KubernetesマスターIPを見ることができるこのような結果を示しています

Kubernetes Cluster IP

15
Abu Shoeb

クラスタIPはサービスにのみ割り当てられ、Kubernetesの内部IPです。

6
jolestar

クラスターIPは、K8によってサービスに割り当てられる仮想IPです。 K8sの内部IPです。

クラスタIPは、Kubernetesクラスタのどのノードからでもアクセスできるようにします。この目的で仮想IPアドレスを使用すると、複数のポッドが同じノードの同じポートを公開できるようになります。これらのポッドはすべて、一意のIPアドレスを介してアクセスできます。

このIPは安定しており、サービスライフサイクルで変更されることはありません(明示的に削除されない限り)。

2つの異なるポッドがこのIPを使用して通信できますが、クラスターDNSサービスの使用をお勧めします。

2
Vaibhav Jain