Kubernetes本地端口,用于在Minikube部署



我正在尝试将我的部署暴露于可以通过Minikube通过本地计算机访问的端口。

我尝试了两种YAML配置(一种是负载平衡器,一个只是一个服务曝光端口)。I: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从未分配。第二个导致机器人的端口:8000 TCP,bot:0 TCP在我的仪表板中,当我尝试" Minikube Service Bot"时,什么也不会发生。如果我输入" kubectl公开服务bot",也会发生同样的情况。

我在Mac OSX。

我该如何正确设置?

LoadBalancer服务是针对云提供商而与Minikube无关的。

来自文档:

在支持外部负载平衡器的云提供商上,将类型字段设置为" LoadBalancer"将为您的服务提供负载平衡器。

使用NodePort类型的Service(请参阅文档),如Minikube文档的网络部分所述,是在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"

希望会有所帮助。

Minikube现在具有访问服务的服务命令。

使用kubectl service <myservice>

将为您提供一个可以与服务交谈的URL。

最新更新