3つのノードのクラスターを作成しました。1つはマスター、2つはミニオンです。 KubernetesでクラスターIPを確認する方法マスターノードのIPですか?
ClusterIPは2つのことを意味します。Kubernetesクラスタ内でのみアクセス可能なサービスのタイプ、または内部のコンポーネントの内部(「仮想」)IP Kubernetesクラスタ。クラスターの内部IPの検索について質問しているとすると、3つの方法でアクセスできます( simple-nginxの例 を使用)。
コマンドライン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.
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"
}
]
}
}
}
$<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
サービスタイプ。
クラスタIPはサービスにのみ割り当てられ、Kubernetesの内部IPです。
クラスターIPは、K8によってサービスに割り当てられる仮想IPです。 K8sの内部IPです。
クラスタIPは、Kubernetesクラスタのどのノードからでもアクセスできるようにします。この目的で仮想IPアドレスを使用すると、複数のポッドが同じノードの同じポートを公開できるようになります。これらのポッドはすべて、一意のIPアドレスを介してアクセスできます。
このIPは安定しており、サービスライフサイクルで変更されることはありません(明示的に削除されない限り)。
2つの異なるポッドがこのIPを使用して通信できますが、クラスターDNSサービスの使用をお勧めします。