首页 > 解决方案 > 关于Kubernetes中Consul Ingress-Gateway的问题

问题描述

我希望在我的 Kubernetes 集群中设置一个领事服务网格,并且需要启用入口网关。我的计划是将入口网关作为 ClusterIP 服务和 Kubernetes 入口(Nginx 入口)运行以将流量引导到该入口。我一直在阅读 Consul.io 上有关 Ingress Gateway 的教程,并且对某些事情感到困惑。掌舵图有一个gateways:带有名称的列表。

例子:

$ cat myingress.hcl
Kind = "ingress-gateway"
# does the following Name need to match kubernetes service
Name = "ingress-gateway"
Listeners = [
  Port = 8080
  ......
]

$ kubectl get services
NAME                          TYPE               CLUSTER-IP      EXTERNAL-IP   PORT(S) 
consul-ingress-gateway        ClusterIP          <blah>          <blah>        8080/TCP,8443/TCP
......

标签: kubernetesconsulservicemesh

解决方案


配置条目中的Name字段必须与在 Consul 中注册的服务名称匹配。默认情况下,Helm 图表使用名称“ingress-gateway”(https://www.consul.io/docs/k8s/helm#v-ingressgateways-gateways-name)。

您可以使用name必须为ingressGateways.gatewaysHelm 图表的值文件中的数组下列出的每个入口网关定义的字段来自定义它。例如:

---
ingressGateways:
  gateways:
    - name: ingress-gateway
      service: LoadBalancer
      ports:
        - 8080
    - name: nonprod-gateway
      service: LoadBalancer
      ports:
        - 9000

推荐阅读