如何使服务可以通过 kubernetes 中 master 的服务代理 运行 访问

How to make a service can access via the service proxy running at the master in kubernetes

如何在 kubernetes 的 master 上通过服务代理 运行 访问服务? 例如 kube-ui 或 fluentd-elasticsearch 的服务。可以访问 url: http://[masterIP:post]/api/v1/proxy/namespaces/kube-system/services/kube-ui/

当我在名为 myweb 的测试命名空间中创建服务时,我无法访问 http://[masterIP:post]/api/v1/proxy/namespaces/test/services/myweb

那怎么办?

如果您尝试从集群中的 pod 运行 访问它,最好直接访问该服务。在集群内使用 DNS 提供服务。如果您的 pod 与服务位于相同的命名空间中,您应该能够简单地使用它的名称来访问它,例如在本例中为 myweb。如果您的 pod 在不同的命名空间中,您可以在 pod-name.namespace 处点击它,例如myweb.test 在这种情况下。

如果您尝试从集群外部访问它,那么您不需要执行与默认服务不同的任何操作。如果您无法以同样的方式访问它,则可能是您的服务没有任何 pods 支持,或者那些 pods 无法正常工作。您可以使用 kubectl get endpoints myweb --namespace=test 检查哪些 pods 正在支持您的服务。如果那是空的,那么你应该确保你已经安排了用于实施服务的 pods,如果是这样,它们的标签是正确的。

您可能会发现 documentation on services 有用。