安装helm
https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gztar -xf helm-v3.2.3-linux-amd64.tar.gzcd linux-amd64mv helm /usr/local/bin修改/etc/profile 文件,修改里面内容,然后重新启用export PATH=$PATH:/usr/local/bin/
添加仓库
# 添加仓库
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx# 查看仓库列表
helm repo list# 搜索 ingress-nginx
helm search repo ingress-nginx
下载包
# 下载安装包
helm pull ingress-nginx/ingress-nginx下载指定版本
helm pull ingress-nginx/ingress-nginx --version 4.0.1
配置
# 将下载好的安装包解压
tar xf ingress-nginx-xxx.tgz# 解压后,进入解压完成的目录
cd ingress-nginx# 修改 values.yaml
镜像地址:修改为国内镜像
registry: registry.cn-hangzhou.aliyuncs.com
image: google_containers/nginx-ingress-controller
image: google_containers/kube-webhook-certgen
tag: v1.3.0hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet修改部署配置的 kind: DaemonSet
nodeSelector:ingress: "true" # 增加选择器,如果 node 上有 ingress=true 就部署
将 admissionWebhooks.enabled 修改为 false
将 service 中的 type 由 LoadBalancer 修改为 ClusterIP,如果服务器是云平台才用 LoadBalancer补充:
镜像的 digest 值注释,如果是香港的机器,可以不用注释,直接用谷歌云仓库
hostNetwork 设置为 true
dnsPolicy 设置为 ClusterFirstWithHostNet
NodeSelector 添加 ingress: "true"部署至指定节点
类型更改为 kind: DaemonSet
ingress nginx 设置为默认的 ingressClassingressClassResource:name: nginxenabled: truedefault: truecontrollerValue: "k8s.io/ingress-nginx"刚刚打标签的命令
kubectl label nodes <node-name> ingress=true
创建命名空间
# 为 ingress 专门创建一个 namespace
kubectl create ns ingress-nginx
安装
# 为需要部署 ingress 的节点上加标签
kubectl label node k8s-node1 ingress=true# 安装 ingress-nginx对应目录进行安装
helm install ingress-nginx -n ingress-nginx .
对应目录进行卸载
helm delete ingress-nginx -n ingress-nginx .如果更新了配置文件
helm upgrade ingress-nginx -n ingress-nginx .