我正在尝试将我的部署公开到一个端口,我可以通过Minikube通过本地计算机访问该端口。
我尝试了两种YAML配置(一种是负载均衡器,一种只是暴露端口的服务)。 我:http://pastebin.com/gL5ZBZg7
apiVersion: v1
kind: Service
metadata:
name: bot
labels:
app: bot
spec:
type: LoadBalancer
ports:
- port: 8000
targetPort: 8000
protocol: TCP
selector:
app: bot
II:http://pastebin.com/sSuyhzC5
apiVersion: v1
kind: Service
metadata:
name: bot
labels:
app: bot
spec:
ports:
- port: 8000
targetPort: 8000
protocol: TCP
selector:
app: bot
部署和docker容器映像都公开了端口8000,而Pod标记为app:bot。
第一个导致服务的端口永远不会完成,外部IP永远不会被分配。 第二个导致bot的端口:8000 TCP,bot:我的仪表板中的0 TCP,当我尝试“minikube service bot”时没有任何反应。如果我输入“kubectl expose service bot”,也会发生同样的情况。
我在Mac OS X上。
如何正确设置?
答案 0 :(得分:3)
LoadBalancer
服务适用于云提供商,与minikube无关。
在支持外部负载均衡器的云提供商上,将类型字段设置为“LoadBalancer”将为您的服务配置负载均衡器。
使用documentation中提到的Service
类NodePort
(请参阅Networking part of the minikube documentation)是在minikube上公开服务的预期方式。
所以你的配置应该是这样的:
apiVersion: v1
kind: Service
metadata:
name: bot
labels:
app: bot
spec:
type: NodePort
ports:
- port: 8000
targetPort: 8000
nodePort: 30356
protocol: TCP
selector:
app: bot
通过以下方式访问您的申请:
> IP=$(minikube ip)
> curl "http://$IP:30356"
希望有所帮助。
答案 1 :(得分:0)
Minikube现在具有访问服务的服务命令。
使用kubectl service <myservice>
。
这将为您提供一个可用于与服务进行通信的URL。