Mad*_*hra 20 kubernetes google-kubernetes-engine kubernetes-networking
我创建了一个由三个节点组成的集群:一个主节点,两个小节点.如何在Kubernetes中检查群集IP?它是主节点的IP吗?
Tim*_*air 24
ClusterIP可以表示两件事:一种只能在Kubernetes集群中访问的服务,或者一个Kubernetes集群内的组件的内部("虚拟")IP.假设您要求查找集群的内部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.
Run Code Online (Sandbox Code Playgroud)通过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"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)通过$<NAME>_SERVICE_HOSTKubernetes容器中的环境变量(在此示例中my-nginx-yczg9是群集中pod的名称):
$ kubectl exec my-nginx-yczg9 -- sh -c 'echo $MY_NGINX_SERVICE_HOST'
10.123.253.27
Run Code Online (Sandbox Code Playgroud)有关服务IP的更多详细信息,请参阅Kubernetes文档中的服务,前面提到的simple-nginx示例是使用LoadBalancer服务类型公开群集外服务的一个很好的示例.
Abu*_*oeb 12
运行这个
$ kubectl cluster-info
Run Code Online (Sandbox Code Playgroud)
它显示了这样的结果,您可以在其中看到Kubernetes主IP
集群IP是K8s分配给一个服务的虚拟IP。是K8s的内部IP。
集群 IP 使其可以从 Kubernetes 集群的任何节点访问。为此目的使用虚拟 IP 地址可以让多个 Pod 在同一节点上公开相同的端口——所有这些 Pod 都可以通过唯一的 IP 地址访问。
这个 IP 是稳定的,在服务生命周期中永远不会改变(除非明确删除)。
2 个不同的 Pod 可以使用此 IP 进行通信,但我建议使用集群 DNS 服务。
| 归档时间: |
|
| 查看次数: |
24096 次 |
| 最近记录: |