多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 支持版本表 ingress-nginx 项目支持的版本意味着我们已经完成了 E2E 测试,并且它们正在通过列出的版本。 Ingress-Nginx 版本可能适用于旧版本,但该项目不做出这种保证。 github地址:https://github.com/kubernetes/ingress-nginx?tab=readme-ov-file#supported-versions-table Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version :--: | :--: | :--: | :--: | :--: v1.9.6 | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1* v1.8.4 | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* v1.7.1 | 1.27, 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 | 4.4.* v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† | 4.3.0 v1.3.1 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.2 | 1.19.10† | 4.2.5 v1.2.1 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.6 | 1.19.10† v1.1.3 | 1.23, 1.22, 1.21, 1.20, 1.19 | 3.14.4 | 1.19.10† v1.0.5 | 1.22, 1.21, 1.20, 1.19 | 3.14.2 | 1.19.9† v0.49.0 | 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 v0.48.1 | 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 v0.47.0 | 1.21, 1.20, 1.19 | 3.13.5 | 1.20.1 v0.46.0 | 1.21, 1.20, 1.19 | 3.13.2 | 1.19.6 旧版本支持情况,引用官方文档 [kubernetes 早于 1.19 版本运行](https://kubernetes.github.io/ingress-nginx/deploy/#running-on-kubernetes-versions-older-than-119) 文档。旧版本的 Kubernetes(1.18 或更早版本),则必须使用 Ingress-Nginx 控制器的 0.X 版本(例如 0.49 版本); helm 使用的 version < 4 版本 ![](https://img.kancloud.cn/ba/2a/ba2ac26d641651225f0d7f2824a40500_892x665.png) # 安装ingress-nginx ## 添加 ingress-nginx repo源 ```shell helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx ``` ## 下载ingress-nginx文件 ```shell helm pull ingress-nginx/ingress-nginx --untar --untardir /etc/kubernetes/addons --version 4.5.2 ``` >[info] 参数说明: > `--untar`: 解压压缩包 > `--untardir`: 指定解压目录存放路径。 ## 安装ingress-nginx参数 ```shell cat <<"EOF" | tee /etc/kubernetes/addons/ingress-nginx-values.yml > /dev/null controller: # ingress-nginx部署模式 kind: Deployment # 镜像地址;默认是registry.k8s.io,需要科学上网 image: registry: k8s.ketches.cn image: ingress-nginx/controller tag: "v1.6.4" digest: "" admissionWebhooks: patch: image: registry: k8s.ketches.cn image: ingress-nginx/kube-webhook-certgen tag: v20220916-gd32f8c343 digest: "" # deployment副本数 replicaCount: 3 # 使用主机网络 hostNetwork: true dnsPolicy: ClusterFirstWithHostNet # pod反亲和性 affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: topologyKey: kubernetes.io/hostname labelSelector: matchExpressions: - key: app.kubernetes.io/name operator: In values: - ingress-nginx - key: app.kubernetes.io/component operator: In values: - controller # 滚动更新 # 先停止后新建, 否则会先端口占用的情况 updateStrategy: type: RollingUpdate rollingUpdate: maxSurge: 0 maxUnavailable: 1 # 节点选择器 nodeSelector: kubernetes.io/ingress: ingress # 资源限制 resources: requests: cpu: 100m memory: 90Mi # 开启metrics指标 metrics: enabled: true port: 10254 EOF ``` >[info] 查看查看详细的配置项目 > 1. 在线查看 `helm show values ingress-nginx/ingress-nginx --version 4.5.2` > 2. 把项目下载的话,查看 `ingress-nginx/values.yaml` ## 节点打标签 ```shell kubectl label node <k8s_name> --overwrite kubernetes.io/ingress=ingress ``` ## 安装/更新ingress-nginx ```shell helm upgrade --install -n kube-system ingress-nginx -f /etc/kubernetes/addons/ingress-nginx-values.yml /etc/kubernetes/addons/ingress-nginx ```