Kubernetes/Helm/Helm部署Nginx-Ingress.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

2.0 KiB

本文作者:丁辉

Helm 部署 Nginx-Ingress

介绍

Nginx-Ingress 是一个基于 Nginx 的 Ingress 控制器,用于管理外部访问 Kubernetes 集群内部服务的路由规则。它实现了一个配置有规则的反向代理负载均衡器,能够将入站 HTTP 和 HTTPS 请求路由到集群内的相应服务上。

开始部署

官方文档

  1. 添加仓库

    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    helm repo update
    
  2. 编写模版文件

    vi ingress-values.yaml
    

    内容如下

    controller:
      # 开启监控
      metrics:
        enabled: true
        serviceMonitor:
          enabled: true
    
      # 配置镜像加速
      image:
        registry: k8s.dockerproxy.com
    
      # 使用主机网络时,利用 Kubernetes 集群内的 DNS 解析服务
      dnsPolicy: ClusterFirstWithHostNet
    
      # 使用本地网络
      hostNetwork: true
    
      # Pod 使用 DaemonSet 方式运行
      kind: DaemonSet
    
      # 只允许调度到具有 ingress="true" 的节点上,[ kubectl label node xxx ingress="true" ]
      nodeSelector:
        kubernetes.io/os: linux
        ingress: "true"
    
      # 禁用后状态字段会报告 Ingress 控制器 Pod 所在节点的 IP 地址或节点列表的 IP 地址
      publishService:
        enabled: false
    
      # 启用 Kubernetes Service
      service:
        enabled: false
    
      # 配置镜像加速
      admissionWebhooks:
        patch:
          image:
            registry: k8s.dockerproxy.com
    
      # 设置为集群默认 ingress 控制器
      ingressClassResource:
        default: true
    
  3. 配置节点标签

    kubectl label node ${node} ingress="true"
    
  4. 部署

    helm install ingress-nginx \
      ingress-nginx/ingress-nginx \
      -f ingress-values.yaml 
    

卸载

helm uninstall ingress-nginx