2017-03-03 154 views
2

我想暴露我的部署到一個端口,我可以通過我的本地計算機通過Minikube訪問。Kubernetes本地端口部署在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 

部署和泊塢窗容器圖像都暴露端口8000,並且該吊艙標記的應用程序:機器人。

第一個結果是服務端口永遠不會結束,並且外部IP永遠不會被分配。 第二個結果是在我的儀表板中有一個bot:8000 TCP,bot:0 TCP端口,當我嘗試「minikube service bot」時,什麼也沒有發生。如果我輸入「kubectl expose service bot」,也會發生同樣的情況。

我在Mac OS X.

我該如何正確設置它?

回答

3

LoadBalancer服務適用於雲提供商,與minikube無關。

documentation

在支持外部負載均衡雲服務提供商,設置類型字段爲「負載平衡器」將提供爲您服務的負載平衡器。

使用NodePort類型在Networking part of the minikube documentation提到的是minikube公開服務的預期之中(見documentation)的Service

那麼你的配置應該是這樣的:

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" 

希望有所幫助。

0

Minikube現在具有訪問服務的服務命令。使用kubectl service <myservice>

這會給你一個URL,你可以用它來與服務交談。