Mar*_*k W 2 nginx azure kubernetes
我正在 Azure Kubernetes 服务上配置 ingress-nginx 负载均衡器。我已经使用 Helm 安装了负载均衡器,并设置了入口。这是我遇到的行为:
我试图弄清楚为什么当主机包含在我的入口配置中时我无法访问我的服务。有任何想法吗?技术细节如下。
请注意,当前配置仅指向一项服务,但最终需要按主机进行过滤 - 我计划通过此负载均衡器运行具有不同域的多个服务。
入口控制器配置:
helm install --replace ingress-nginx ingress-nginx/ingress-nginx \
--create-namespace \
--namespace $NAMESPACE \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=127.0.0.1 \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-dns-label-name"=$DNS_LABEL \
--set controller.service.loadBalancerIP=$IP \
Run Code Online (Sandbox Code Playgroud)
入口配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt
spec:
ingressClassName: nginx
tls:
- hosts:
- my.host.com
secretName: tls-secret
rules:
- host: my.host.com //Removing this item makes the service reachable
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: xrcfrontend
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
这是我正在运行的curl 命令。在 Pod 内部运行时它会返回正确的结果,在外部运行时会超时。
curl https://my.host.com --insecure
Run Code Online (Sandbox Code Playgroud)
小智 6
如果您使用的是 AKS v>=1.24,请尝试在 nginx 入口控制器安装期间或在 nginx 入口控制器服务中使用路径/healthz而不是127.0.0.1添加以下注释,并使用基于主机的路由和 nginx 入口路由 -
service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"= /healthz
如果上述内容有帮助,那么 为什么它不早点与主机一起工作?
关于更改的 Github 讨论 - https://github.com/Azure/AKS/issues/2903#issuecomment-1115720970
有关安装的更多详细信息 - https://learn.microsoft.com/en-us/azure/aks/ingress-basic?tabs=azure-cli#basic-configuration
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |