文章目录
 
  
 
 
安装helm
 
 https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gz
 tar -xf helm-v3.2.3-linux-amd64.tar.gz
 cd linux-amd64
 mv 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.0
hostNetwork: 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 设置为默认的 ingressClass
 ingressClassResource:
    name: nginx
    enabled: true
    default: true
    controllerValue: "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 .
 
