目录

前期准备

开始安装

1.下载安装包和helm工具

2. 解压文件并配置helm

3. 修改nginx配置文件(只记录修改的部分)

4. 安装ingress nginx

5. 测试


前期准备

ingress-nginx-4.5.2.tgz:ingress nginx安装包

helm-v3.11.1-linux-amd64.tar.gz: helm 工具

lvs集群

开始安装

1.下载安装包和helm工具

ingress ingress 安装包
github地址:https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.5.2/ingress-nginx-4.5.2.tgz
wget -P /opt/k8s-install/ http://10.120.175.36/ingress-nginx-4.5.2.tgz   #我将安装包放在了内网helm 工具包
wget -P /opt/k8s-install/ http://10.120.175.36/helm-v3.11.1-linux-amd64.tar.gz

2. 解压文件并配置helm

解压并改名
cd /opt/k8s-install/
tar -xf ingress-nginx-4.5.2.tgz
mv ingress-nginx ingress-yidian-inc-nginx1解压helm
tar xf helm-v3.11.1-linux-amd64.tar.gz
mv linux-amd64/helm /bin/ 测试
[root@l-shake-k8s-master1 package]$ helm version
version.BuildInfo{Version:"v3.11.1", GitCommit:"293b50c65d4d56187cd4e2f390f0ada46b4c4737", GitTreeState:"clean", GoVersion:"go1.18.10"} 

3. 修改nginx配置文件(只记录修改的部分)

修改values文件
vim /opt/k8s-install/ingress-nginx/ingress-yidian-inc-nginx1/values.yaml
registry: harbor-sh.yidian-inc.com #修改为自己的私有仓库地址
image: ingress-nginx/controller #镜像路径和名称tag: "v1.6.4" #镜像tag#digest: sha256:15be4666c53052484dd2992efacf2f50ea77a78ae8aa21ccd91af6baaa7ea22f #注释掉hostNetwork: truepriorityClassName: high-priority config: #增加优化配置项,实际有很多参数都有默认参数,根据实际情况进行修改# nginx 与 client 保 持 的 一 个 长 连 接 能 处 理 的 请 求 数 量 , 默 认 100, 高 并 发 场 景 建 议 调 高 。 # 参 考 : https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#keep-alive-requests keep-alive-requests: "10000" # nginx 与 upstream 保 持 长 连 接 的 最 大 空 闲 连 接 数 (不 是 最 大 连 接 数 ), 默 认 32, 在 高 并 发 下 场 景 下 调 大 , 避 免 频 繁 建 连 导 致 TIME_WAIT 飙 升 。 # 参 考 : https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#upstream-keepalive-connections upstream-keepalive-connections: "200" # 每 个 worker 进 程 可 以 打 开 的 最 大 连 接 数 , 默 认 16384。 # 参 考 : https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#max-worker-connections max-worker-connections: "65536" #每 个 work可 以 打 开 的 最 大 文 件 数 , 默 认 0. #参 考 : http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile max-worker-open-files: "655350" #参 考 : http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity worker-cpu-affinity: "auto" #参 考 : http://nginx.org/en/docs/ngx_core_module.html#worker_processes worker-processes: "auto" #参 考 : server-tokens: "false" # http://nginx.org/en/docs/http/ngx_http_core_module.html#default_type default-type: "application/octet-stream" #https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#custom-http-errors #custom-http-errors: "503,504" #log access-log-path: "/var/log/nginx/nginx-access.log" error-log-path: "/var/log/nginx/nginx-error.log" #全 局 禁 用 308重 定 向 ssl-redirect: "false" #禁 用 geoip use-geoip: "false" server-name-hash-bucket-size: "128" client-body-timeout: "60" client-header-buffer-size: "8k" large-client-header-buffers: "4 32k" proxy-body-size: "256m" client-body-buffer-size: "128k" http2-max-concurrent-streams: "64" http2-max-field-size: "16k" keep-alive: "30" proxy-connect-timeout: "15" proxy-send-timeout: "60" proxy-read-timeout: "60" proxy-buffer-size: "128k" proxy-buffers-number: "32" proxy-headers-hash-max-size: "51200" proxy-headers-hash-bucket-size: "6400" proxy-next-upstream: "error timeout http_500 http_502 http_503 http_504" use-gzip: "true" gzip-min-length: "1000" gzip-level: "1" gzip-types: "text/plain application/x-javascript text/css application/xml application/json" ssl-protocols: "TLSv1 TLSv1.1 TLSv1.2" ssl-ciphers: "ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH" ssl-buffer-size: "16k" ssl-session-cache: "true" ssl-session-timeout: "5m" ssl-dh-param: "/etc/nginx/pem/dhparam.pem" log-format-upstream: "$time_local|$hostname|$remote_addr|$upstream_addr|$request_time|$upstream_response_time|$upstream_connect_time|$status|$upstream_status|-|$bytes_sent|$body_bytes_sent|-|$request|$http_user_agent|$http_refere
r|^_^|$scheme|$request_method|$request_id|-|^_^|-|$cookie_jsessionid"dnsPolicy: ClusterFirstWithHostNet #在k8s的网络中解析service nameingressClassResource: # -- Name of the ingressClass name: ingress-yidian-inc-nginx1 #ingress Class名称ingressClass: ingress-yidian-inc-nginx1kind: DaemonSet #DaemonSet方式部署#一定要修改,不然就会出现一个控制器管理多组nginx 代理层,配置都会创建多份(ingress nginx的个数),也会导致controller有瓶颈风险
controllerValue: "k8s.io/ingress-yidian-inc-nginx1"nodeSelector: #设置部署nginx 匹配标签kubernetes.io/os: linux ingress-yidian-inc-nginx1: "true" patch: enabled: true image: registry: harbor-sh.yidian-inc.com image: ingress-nginx/kube-webhook-certgen tag: v1.6.4 #digest: sha256:39c5b2e3310dc4264d638ad28d9d1d96c4cbb2b2dcfb52368fe4e3c63f61e10f #注释掉

设置优先级

nginx-controller-priority.yaml

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:name: high-priority
value: 1000000000
globalDefault: false
description: "This priority class should be used for nginx-ingress-controller service pods only."
kubectl apply -f nginx-controller-priority.yaml

4. 安装ingress nginx

给节点打标签

kubectl  label  node 10.120.129.10 ingress-yidian-inc-nginx1=true
kubectl  label  node 10.120.129.11 ingress-yidian-inc-nginx1=true
安装ingress nginx
helm install ingress-yidian-inc-nginx1  -f values.yaml  -n ingress-yidian-inc-nginx1 .
执行后会出现如下提示
[root@l-shake-k8s-master1 ingress-yidian-inc-nginx1]$ helm install ingress-yidian-inc-nginx1  -f values.yaml  -n ingress-yidian-inc-nginx1 .                                                                                               NAME: ingress-yidian-inc-nginx1
LAST DEPLOYED: Mon Mar  6 11:03:24 2023
NAMESPACE: ingress-yidian-inc-nginx1
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The ingress-nginx controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace ingress-yidian-inc-nginx1 get services -o wide -w ingress-yidian-inc-nginx1-ingress-nginx-controller'                                                                             An example Ingress that makes use of the controller:                                                                                                                                                                                       apiVersion: networking.k8s.io/v1                                                                                                                                                                                                         kind: Ingress                                                                                                                                                                                                                            metadata:                                                                                                                                                                                                                                name: example                                                                                                                                                                                                                          namespace: foo                                                                                                                                                                                                                         spec:                                                                                                                                                                                                                                    ingressClassName: ingress-yidian-inc-nginx1                                                                                                                                                                                            rules:                                                                                                                                                                                                                                 - host: www.example.com                                                                                                                                                                                                              http:                                                                                                                                                                                                                              paths:                                                                                                                                                                                                                           - pathType: Prefix                                                                                                                                                                                                             backend:                                                                                                                                                                                                                     service:                                                                                                                                                                                                                   name: exampleService                                                                                                                                                                                                     port:                                                                                                                                                                                                                    number: 80                                                                                                                                                                                                             path: /                                                                                                                                                                                                                      # This section is only required if TLS is to be enabled for the Ingress                                                                                                                                                                tls:                                                                                                                                                                                                                                   - hosts:                                                                                                                                                                                                                             - www.example.com                                                                                                                                                                                                                  secretName: example-tls                                                                                                                                                                                                            If TLS is enabled for the Ingress, a Secret containing the certificate and key must also be provided:                                                                                                                                      apiVersion: v1                                                                                                                                                                                                                           kind: Secret                                                                                                                                                                                                                             metadata:                                                                                                                                                                                                                                name: example-tls                                                                                                                                                                                                                      namespace: foo                                                                                                                                                                                                                         data:                                                                                                                                                                                                                                    tls.crt:                                                                                                                                                                                                          tls.key:                                                                                                                                                                                                           type: kubernetes.io/tls                                 [root@l-shake-k8s-master1 ingress-yidian-inc-nginx1]$ kubectl  get ingressclasses.networking.k8s.io
NAME                        CONTROLLER             PARAMETERS   AGE
ingress-yidian-inc-nginx1   k8s.io/ingress-nginx          113m   ingress nginx 卸载
helm uninstall ingress-yidian-inc-nginx1 -n ingress-yidian-inc-nginx1

5. 测试

kubectl apply -f nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:                                                                                                                                                                                                                                  name: my-deploy-nginx                                                                                                                                                                                                                    namespace: default
spec:                                                                                                                                                                                                                                      replicas: 2                                                                                                                                                                                                                              selector:                                                                                                                                                                                                                                matchLabels:                                                                                                                                                                                                                           app: mynginx                                                                                                                                                                                                                         template:                                                                                                                                                                                                                                metadata:                                                                                                                                                                                                                              labels:                                                                                                                                                                                                                              app: mynginx                                                                                                                                                                                                                       spec:                                                                                                                                                                                                                                  containers:                                                                                                                                                                                                                          - name: mynginx                                                                                                                                                                                                                      image: harbor-sh.yidian-inc.com/kubernetes-1.26.1/nginx                                                                                                                                                                            ports:                                                                                                                                                                                                                             - containerPort: 80
---
kind: Service
apiVersion: v1
metadata:                                                                                                                                                                                                                                  name: myservice                                                                                                                                                                                                                          namespace: default
spec:                                                                                                                                                                                                                                      ports:                                                                                                                                                                                                                                   - protocol: TCP                                                                                                                                                                                                                        port: 80                                                                                                                                                                                                                             targetPort: 80                                                                                                                                                                                                                       selector:                                                                                                                                                                                                                                app: mynginx                                                                                                                                                                                                                           type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:                                                                                                                                                                                                                                  name: mynginx                                                                                                                                                                                                                            namespace: default        # 指 定 ingress的 命 名 空 间 , 害 怕 与 其 它 Pod IP冲 突
spec:                                                                                                                                                                                                                                      ingressClassName: "ingress-yidian-inc-nginx1"    #在 部 署 ingress-nginx时 , valume.yaml文 件 中 定 义 的                                                                                                                                          rules:                                                                                                                                                                                                                                   - host: sunwenbo-nginx.yidian-inc.com                                                                                                                                                                                                    http:                                                                                                                                                                                                                                  paths:                                                                                                                                                                                                                               - path: /                                                                                                                                                                                                                            pathType: Prefix                                                                                                                                                                                                                   backend:                                                                                                                                                                                                                           service:                                                                                                                                                                                                                         name: myservice                                                                                                                                                                                                                port:                                                                                                                                                                                                                          number: 80

绑定hosts进行访问测试

helm 安装ingress nginx 4.5.2相关推荐

  1. k8s 安装ingress nginx controller 并部署.net core ingress服务

    192.168.28.132 k8smaster 192.168.28.133 k8snode1 192.168.28.134 k8snode2 192.168.28.135 k8snode3 192 ...

  2. kubernetes 安装 helm,ingress

    1.安装helm客户端 [root@cc-k8s01 work]# wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.0-r ...

  3. Helm安装使用总结 (helm 安装nginx 例子)

    Helm安装使用总结 helm安装nginx例子 大纲 概念 安装与基础使用 helm安装nginx 概念 helm 是k8s上的软件安装程序 个人感觉类似 yum apt Helm 的重要概念: h ...

  4. Helm安装Harbor

    前言 文章中用到的harbor存储是hostpath,service的类型是ingress.根据harbor官网提示,需要提前创建pv和pvc,既然选择了hostpath,那么就需要将pod固定到某一 ...

  5. helm安装cert-manager自动化Https(1.8)

    Helm安装cert-manager自动化 HTTPS 查看支持版本 一. 老版本v0.12.0(不推荐,好久没用这个版本了) 1.1 安装CustomResourceDefinition资源 1.2 ...

  6. 使用helm安装jenkin和gitlab

    一.使用服务介绍 存储: 阿里云NAS k8s网络插件: calico k8s版本: 1.15.2 二.helm安装 https://www.cnblogs.com/zhangb8042/p/1020 ...

  7. 网关流控利器:结合 AHAS 实现 Ingress/Nginx 流量控制

    作者:涂鸦 微服务的稳定性一直是开发者非常关注的话题.随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战.应用高可用服务 AHAS ...

  8. helm安装postgres_Helm 入门介绍 Kubernetes 上的包管理软件

    这篇文章介绍一下云原生应用在 Kubernetes 上安装时,经常会用到的一个重要工具,Helm. Helm 是 Kubernetes 的包管理软件.提到包管理软件,很多人都不陌生.Maven.Gra ...

  9. helm安装_Helm部署和体验jenkins

    运行在Kubernetes上的Jenkins 下图来自rancher官方博客,在kubernetes环境下,jenkins任务被交给各个pod执行,这些pod在需要时被创建,任务结束后被销毁,这样既能 ...

  10. 【Linux系列】安装配置Nginx

    [Linux 环境]安装配置Nginx 文章目录 [Linux 环境]安装配置Nginx 前言 一.Nginx是什么? 二.使用Nginx 1.安装nginx 2.配置Nginx 3.配置websoc ...

最新文章

  1. 怎样查看哪些程序占用了swap空间
  2. 三、Ubuntu Server上安装Matlab,利用X11和Putty输出窗口到Windows桌面(补充内容)
  3. ftpClient的连接超时设置(setConnectTimeout,setSoTimeout)
  4. .Net Core下使用KeyDB高可用缓存集群
  5. 机器学习(九)初识BP神经网络
  6. 26-[Boostrap]-全局css样式,组件,控件
  7. maven工程打包老是报错_Maven 项目打包及启动时的报错解决
  8. SQLServer 2016报错Microsoft R Open 和 Microsoft R Server的解决方案
  9. C语言栈括号匹配算法
  10. 小程序 局域网 服务器,微信小程序网络请求request局域网下的开发测试
  11. html 数组动态添加元素,js如何动态添加数组?
  12. 编辑器拓展 CustomEditor
  13. 用matlab进行多项式通分,Matlab控制系统仿真基础
  14. WPF学习笔记--插入本地链接、url链接
  15. CSS-----颜色值的缩写和字体的缩写方法
  16. 微信苹果多开系统官网下载页源码
  17. 融合通讯四大关键词和三个应用场景
  18. java多线程并发之旅-34-性能与可伸缩性
  19. 应用深度学习function-loss-optimization 2020.8.24
  20. 双路微型计算机,十二核心至尊 Intel Xeon E5-2697 v2

热门文章

  1. 2019成都php平均薪资,2019年成都平均工资出炉!这些职业最高薪!你离有钱人还有多远?...
  2. 科学家研发出DNA计算机:未来程序员拿试管“写”代码?
  3. IOS百度地图自定义大头针和气泡
  4. 中西方互联网产品的差异源自底层通讯习惯的差别
  5. 网络连接状态NetInfo:Android平台andIOS平台
  6. 电脑上比较好用的日程提醒软件选择用哪个?
  7. 常见排序算法及其实现
  8. 软件程序如何运行的-简述
  9. Android R 新特性变化,2021Android笔试真题
  10. UVA-1579 Matryoshka