默认kubernetes服务的目的是什么?

问题描述 投票:2回答:2

当您运行:kubectl get svc -n default时,您将拥有一个类型为ClusterIP的kubernetes服务。

这项服务的目的是什么?任何参考赞赏。

我在Minikube跑步

xyz:Kubernetes _$ kubectl describe svc/kubernetes
Name:              kubernetes
Namespace:         default
Labels:            component=apiserver
               provider=kubernetes
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP:                10.0.0.1
Port:              https  443/TCP
TargetPort:        8443/TCP
Endpoints:         10.0.2.15:8443
Session Affinity:  ClientIP
Events:            <none>

xyz:Kubernetes _$ kubectl cluster-info
Kubernetes master is running at https://192.168.99.100:8443
kubernetes
2个回答
2
投票

AFAIK默认命名空间中的kubernetes服务是一种将请求转发给Kubernetes主服务器的服务(通常是kubernetes API服务器)。

因此,来自群集的对kubernetes.default服务的所有请求都将路由到配置的端点IP。在这种情况下,它的kubernetes主IP

例如

让我们检查kubectl describe svc kubernetes的输出并查看Endpoint IP。

enter image description here

现在让我们检查我们的群集信息

kubectl cluster-info

enter image description here

请注意,kubernetes master与kubernetes.default服务的Endpoints IP运行的IP相同。

希望能帮助到你。


1
投票

这样,群集中的每个Pod都可以向Kubernetes主程序发出API请求,而无需在其中对API URL进行硬编码。你的~/.kube/config可能很好地拥有你的Kubernetes主服务器的“外部”地址,但是对于离开集群然后重新进入可以共同位于同一节点上的Pod的集群的API流量来说,它几乎没有意义。 Pod可以使用kubernetes注入的Service Account凭证,除非每个Pod禁用该服务帐户功能。

您的应用程序也可以自由地使用该功能,如果它愿意 - 例如 - 发现其Pod上的任何注释,或其部署中有多少其他副本,等等。

我想tl; dr是90%的Pod无关紧要,而剩下的10%则非常方便。

© www.soinside.com 2019 - 2024. All rights reserved.