入口资源主机名

时间:2021-06-11 10:28:34

标签: kubernetes kubernetes-ingress haproxy nginx-ingress

我有 kube 集群,它的控制平面端点是 haproxy。我想使用 haproxy 所在系统的主机名,并将其用作入口资源中的主机名。是否有可能实现这一目标。请求 ha 代理后端配置如下:

frontend k8s_frontend
    bind *:6443
    mode tcp
    default_backend k8s_backend

backend k8s_backend
    mode tcp
    balance roundrobin
    server master1  10.50.8.117:6443
    server master2  10.50.8.118:6443
    server master3  10.50.8.119:6443

frontend http_frontend
    bind :80
    bind :443 ssl crt /com.pem
    default_backend servers

backend servers
    balance roundrobin
    server worker1 10.50.8.120:443 ssl verify none
    server worker2 10.50.8.121:443 ssl verify none

以下是我的入口资源:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  rules:
  - host: "HAPROXY_HOSTNAME"
    http:
      paths:
      - pathType: Prefix
        path: "/k8s"
        backend:
          service:
            name: kubernetes-dashboard
            port:
              number: 443

1 个答案:

答案 0 :(得分:1)

是的,您可以在入口源中提及 HAProxy 的主机名。入口控制器节点可以解析为主机名以及部署和公开回显服务器服务,如下所示。请参阅此document

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 注释: kubernetes.io/ingress.class:haproxy 名称:回声服务器 规格: 规则:

  • 主机:$HOST 网址: 路径:
    • 后端: 服务名称:echoserver 服务端口:8080 小路: / EOF

有关 HAProxy 入口控制器的更多详细信息,请参见 here