簡體   English   中英

如何配置kubernetes裸機入口控制器來監聽端口80?

[英]How to configure a kubernetes bare-metal ingress controller to listen to port 80?

我有一個kubernetes設置,1個主設備和1個從設備,托管在DigitalOcean Droplets上。 為了公開我的服務,我想使用Ingresses。

由於我有裸機安裝,我必須配置自己的入口控制器。 如何讓它聽取端口443或80而不是30000-32767范圍?

為了設置入口控制器,我使用了本指南: https//kubernetes.github.io/ingress-nginx/deploy/

我的控制器服務看起來像這樣:

apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  type: NodePort
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
    - name: https
      port: 443
      targetPort: 443
      protocol: TCP
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx

現在很明顯,因為NodePort范圍是30000-32767,所以此控制器不會映射到端口80或443:

➜ kubectl get services --all-namespaces
NAMESPACE       NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx   ingress-nginx          NodePort    10.103.166.230   <none>        80:30907/TCP,443:30653/TCP   21m

我同意@Matthew L Daniel,如果你不考慮使用外部負載均衡器,最好的選擇是通過啟用Pods規范中的hostNetwork選項與ingress-nginx Pod共享主機網絡接口:

template:
  spec:
    hostNetwork: true

因此,NGINX Ingress控制器可以將端口80和443直接綁定到Kubernetes節點,而無需將特殊代理端口(30000-32767)映射到嵌套服務。 在此處查找更多信息。

您無法將入口服務綁定到端口80.您可以在主機上運行HAProxy並重定向端口80,443請求入口服務端口號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM