我正在使用Docker For Desktop和内置的Kubernetes集群。我安装了Pod
,通过HTTP提供资源,但我不确定如何使用我的浏览器访问它。我有以下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
如何使用浏览器访问此服务?
答案 0 :(得分:1)
该服务将在您的浏览器http://localhost:8037
中提供请注意,端口8037
对应port
对象上的ServiceSpec
属性。
如果您无法通过该网址访问该服务,那么它可能是以下几项内容之一,包括但不限于:
Service
声明了该端口。删除其他Service
,或将port
属性更改为无人认领的端口。Pod
未正常运行。查看kubectl get pods
。答案 1 :(得分:0)
对于本地开发,您可能需要为服务使用类型NodePort
(请参见https://kubernetes.io/docs/concepts/services-networking/service/#nodeport)。顾名思义,这会将给定的nodePort
绑定到节点的端口(对于docker-on-desktop,该端口应为localhost)。
然后该服务应在http://localhost:31534上可用。
答案 2 :(得分:-1)
首先,两种方式不同:1. MiniKube和2. Docker-desktop。
对于Mac上的Docker-Desktop,您始终可以使用localhost,但下面提供了更好的方法。
如何获取群集的IP。
$ kubectl describe node docker-for-desktop
在下面搜索
Addresses:
InternalIP: 192.168.65.3
Hostname: docker-desktop
使用上述IP,您可以在busybox中运行命令。请注意,您不能直接访问上述IP,但需要先登录该名称空间的群集的任何Pod。