docker - 使用 Docker For Windows 时如何访问通过 ClusterIP 公开的服务:
问题描述
我在本地工作站(windows 10 pro)上安装了 Docker for windows 和用于开发目的的内置 k8s 单节点集群。
我想知道如何访问托管在此集群上的服务。它没有很好的记录
我没有安装负载均衡器,也不需要 K8s Ingress。如何访问托管在 10.105.245.65:80 的服务。localhost 和 127.0.0.1 不起作用,并且 10.105.245.65 在主机 windows 机器上没有意义。
我可以使用 NodePort (有效),但我想了解如何通过 ClusterIP 访问。
C:\Users\balamuvi>kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 52m
webserver ClusterIP 10.105.245.65 <none> 80/TCP 48m ===> how do I access this service
C:\Users\balamuvi>kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443 =======> resolves to localhost
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
解决方案
无法从集群外部访问 CLusterIP。除了执行到 pod(如 Arghya 所述)之外的其他方法是使用kubectl port-forward
命令。
赶紧跑:
kubectl port-forward pods/<pod-name> <local-port>:<pod-port>
然后你可以访问下面的 podlocalhost:<local-port>
有关端口转发的更多信息,请参阅 kubernetes 文档。
推荐阅读
- python - 访问配置列表元素的前缀以从字典中获取值
- html - css网格无法在下一行显示数据
- r - 从 github 安装包时出错
- javascript - 如何使用 Axios PATCH 为对象中的元素分配新值?
- sap - 测试 BizTalk SAP 安装
- r - 在R中以自定义方式对年月数据进行排序
- python - Python 脚本从输入文件中提取字符串并以 csv 格式输出
- angularjs - 如何使用服务在 angularjs 中显示从个人资料页面到新页面的详细信息?
- linux - 什么是 moby 运行时?
- java - 如何使用 Java Spark 结构化流从 Kafka 主题中正确消费