阿里云负载均衡对 K8s Nginx Ingress 的健康检查问题

2020-01-29 22:28发布

问题:

我们的 k8s 集群最前端用的是阿里云七层负载均衡,SLB 转发请求到 nginx ingress ,再由 nginx 转发到对应的 service 。配置阿里云负载均衡监听时需要添加健康检查地址,请问如何实现对 nginx ingress 进行健康检查?

回答1:

在 Nginx Ingress Controller 的 ConfigMap 中添加下面的 http-snippets 配置解决了。

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
  namespace: nginx-ingress
data:
  http-snippets: |
    server {
      listen 80;
      server_name nginx-ingress;
      access_log  off;
      return 200 'Hello, World! - nginx\n';
    }

通过下面的命令可以查看生效的 nginx 配置:

kubectl exec -t daemonset/nginx-ingress -n nginx-ingress \
cat /etc/nginx/nginx.conf

对应的阿里云负载均衡健康检查配置:

域名:nginx-ingress
检查路径:/