访问在Docker For Desktop中本地运行的Kubernetes服务?

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

我正在使用Docker For Desktop和内置的Kubernetes集群。我已经安装了一个通过HTTP提供资源的Pod,但我不确定如何使用我的浏览器访问它。我有以下ServiceSpec正确路由到Pod的流量:

spec:
  clusterIP: 10.99.132.220
  externalTrafficPolicy: Cluster
  ports:
  - name: myport
    nodePort: 31534
    port: 8037
    protocol: TCP
    targetPort: 80
  type: LoadBalancer

当我用kubectl查询时,我可以看到它的设置:

$ kubectl get service
NAME           TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
myservice   LoadBalancer   10.99.132.220   localhost     8037:31534/TCP   1h

如何使用浏览器访问此服务?

docker kubernetes
2个回答
3
投票

该服务将在您的浏览器http://localhost:8037上提供

请注意,端口8037对应于port对象上的ServiceSpec属性。

如果您无法通过该URL访问该服务,那么它可能是以下几种方式之一,包括但不限于:

  • 您的群集中还有另一个Service声称该端口。删除其他Service,或将port属性更改为无人认领的端口。
  • 你的Pod没有运行准备就绪。检查kubectl get pods

0
投票

对于本地开发,您可能希望使用类型NodePort作为服务(请参阅https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)。这将名称所示的给定nodePort绑定到节点的端口(对于桌面上的docker应该是localhost)。

然后该服务应该是ob http://localhost:31534

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