Kubernetes集群部署ingress-nginx
-
软件版本:
kubenetes1.20+
ingress-nginx chart 4.0.9
ingress-nginx1.0.5
Helm安装ingress-nginx
- helm 安装参考helm安装
安装
-
添加ingress-nginx仓库
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
-
查看ingress-nginx
helm search repo ingress-nginx --versions
-
拉取指定版本的chart包
helm pull ingress-nginx/ingress-nginx --version 4.0.9 #如果下载不了,根据提示信息的URL地址,用浏览器手动下载,上传到服务器
-
解压chart包
tar -xzvf ingress-nginx-4.0.9.tgz
-
打开values配置文件
vi ingress-nginx/values.yaml
-
修改如下参数
registry和image是修改镜像仓库和镜像名为阿里云的仓库(该仓库为个人用户仓库),官方镜像国内网络基本拉取不下来,默认配置使用Deployment控制器,副本数为1,你可以修改为DaemonSet,每个节点部署一个pod,此处使用nodeSelector将ingress控制器固定在master上
controller: image: registry: registry.aliyuncs.com/google_containers # 第13行 image: nginx-ingress-controller # 第14行 hostNetwork: true # 第81行,设置使用主机网络,必须的 ingressClassResource: default: true # 第101行,设置ingress-nginx为默认ingressClass控制器,否则使用ingress时需要指定使用nginx tolerations: # 第212行,设置污点容忍度,在该行下面插入,请自行根据master上的污点设置 - key: "node-role.kubernetes.io/master" operator: "Equal" value: "" effect: "NoSchedule" nodeSelector: node-role.kubernetes.io/master: "" # 第286行,选择master节点,需要master上有该标签 admissionWebhooks: patch: image: registry: registry.aliyuncs.com/google_containers # 第600行 image: kube-webhook-certgen # 第601行 defaultBackend: enabled: true # 第721行,启用默认后端,如果不需要,下面2行也不用改 image: registry: registry.aliyuncs.com/google_containers # 第725行 image: defaultbackend # 第726行 tag: "1.4" # 第730行,目前没有同步1.5的镜像,改为1.4
-
创建名称空间
kubectl create namespace ingress-nginx
-
安装ingress-nginx
helm install ingress-nginx ingress-nginx -n ingress-nginx
检查部署
-
查看pod,控制器成功在master上
kubectl get pod -n ingress-nginx -o wide
-
测试
浏览器访问master的ip地址,启用了默认后端则提示default backend - 404,如果没有启用默认后端,则提示nginx的404 Not Found,安装完成。
清理
-
删除chart压缩包
解压出来的文件夹,不建议删除,可用于恢复和更改服务
rm -rf ingress-nginx-4.0.9.tgz