2016-10-15 115 views
2

我正在運行裸機Kubernetes集羣並嘗試使用Load Balancer來公開我的服務。我通常知道負載平衡器是底層公共雲的功能,但最近對Ingress控制器的支持似乎現在應該可以使用nginx作爲自託管負載平衡器。將外部IP分配給節點

到目前爲止,我一直在關注的例子here建立一個nginx的入口控制器,它背後的一些測試服務。但是,我無法按照步驟6顯示運行負載平衡器的節點的外部IP,因爲我的節點在地址部分沒有ExternalIP,只有LegacyHostIP和InternalIP。

我已經在服務的規範指定它試圖手動分配ExternalIP我的集羣。但是,這似乎被映射爲externalID。

如何手動設置我的節點的ExternalIP地址?

+0

我想我可能已經想通了。通過綁定我的複製控制器到一個服務,並暴露出來,nginx Load Balancer的作品。我現在要解決這個問題,儘管如果任何人都可以評論,如果這是建議的解決方法或不。 – KingJ

回答

3

這東西是測試,適用於特定節點上創建一個nginx的服務。

apiVersion: v1 
kind: Service 
metadata: 
    name: nginx 
    namespace: default 
spec: 
    ports: 
    - port: 80 
     protocol: TCP 
     targetPort: 80 
     name: http 
    - port: 443 
     protocol: TCP 
     targetPort: 443 
     name: https 
    externalIPs: 
     - '{{external_ip}}' 
    selector: 
     app: nginx 

假定有一個nginx的部署上游監聽端口80,443 的externalIP是節點的公共IP。

+0

你能否解釋external_ip的模板值來自哪裏?這幾乎是我最終爲我的nginx Ingress RC創建的確切服務定義,但我已對外部IP進行了硬編碼。 – KingJ

+0

經過多一點挖掘,我發現外部和內部IP由Kubernetes運行的特定雲決定。支持因雲而異,[https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/gce/gce.go](例如Google計算引擎的支持)(搜索ExternalIP查看它從哪裏獲取數據)。由於它依賴於單獨的雲提供商,因此似乎支持變化很大。 – KingJ

相關問題