位置: IT常识 - 正文

k8s 部署nginx 实现集群统一配置,自动更新nginx.conf配置文件 总结(k8s部署ingress-nginx)

编辑:rootadmin
k8s 部署nginx 实现集群统一配置,自动更新nginx.conf配置文件 总结 k8s 部署nginx 实现集群统一配置,自动更新nginx.conf配置文件 总结

推荐整理分享k8s 部署nginx 实现集群统一配置,自动更新nginx.conf配置文件 总结(k8s部署ingress-nginx),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:k8s部署实例,k8s部署nexus,k8s的nginx配置文件在哪里,k8s的nginx配置文件在哪里,k8s部署ingress-nginx,k8s nginx ingress,k8s的nginx配置文件在哪里,k8s搭建nginx,内容如对您有帮助,希望把文章链接给更多的朋友!

大纲

1 nginx镜像选择2 创建configmap保存nginx配置文件3 使用inotify监控配置文件变化4 Dockerfile创建5 调整镜像原地址使用阿里云6 创建deploy部署文件部署nginx7 测试使用nginx配置文件同步&nginx自动重启

直接使用https://hub.docker.com/_/nginx nginx镜像有几个问题

1 集群环境下需要手动的配置多个nginx.conf文件2 集群环境下配置文件修改后需要 kubectl exec -it 到多个pod重启nginx

使用k8s configmap统一配置集群下所有nginx的配置,并使用inotify监听配置文件变化后自动重启

nginx镜像选择

nginx镜像地址 https://hub.docker.com/_/nginx 使用 nginx:1.23.3 作为基础镜像

此镜像的配置文件为 /etc/nginx/nginx.conf 可以看到配置文件会include /etc/nginx/conf.d 文件夹下的配置

只需把此文件夹与configmap挂载就可以使用自己的配置信息了

创建configmap

创建一个configmap 用来保存nginx的配置文件

apiVersion: v1kind: ConfigMapmetadata: name: nginx-configdata: nginx.conf: | server { listen 8080; charset utf-8; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } }使用inotify监控配置文件变化

可以使用inotify 实现对配置文件夹的监控,当文件夹内有.conf文件创建,修改,删除后重新启动nginx

可以创建一个脚本,此脚本监控 /etc/nginx/conf.d 下文件的变化

#!/bin/bashconfigfile='.conf$'#监听文件夹修改,删除事件inotifywait -e modify,delete -mr --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w %f %e' /etc/nginx/conf.d | while read day time folder file event;do #判断变化的文件是否是.conf结尾的文件 注意正则判断需要使用[[]] if [[ $file =~ $configfile ]]; then nginx -t # $?返回上一个命令的结束状态 0表示正常 if [ $? == 0 ]; then nginx -s reload fi fi done

再准备一个启动start.sh脚本用于启动nginx以及inotify监控

echo "start nginx"# 启动nginxnginx# 启动监控 需要保持一个前台运行的程序 否则容器运行后就退出./auto_reload.sh

inotify的使用可以参考 《linux-inotify工具监控文件状态变化总结》

Dockerfile创建

Dockerfile 内容如下,可以调整linux镜像源使用阿里云的镜像源

FROM nginx:1.23.3VOLUME ["/data/service/logs","/docker/tmp","/data/service/store"] WORKDIR "/data/service"LABEL base.name="nginx-auto-reload" LABEL base.desc="nginx-auto-reload"#修改操作系统源地址 使用阿里云 可以不修改,但是由于网络原因会比较满#注意 nginx:1.23.3 镜像使用的是debian 11.x (bullseye)#需要使用对应的阿里云 镜像源 https://developer.aliyun.com/mirror/debian?spm=a2c6h.13651102.0.0.3e221b11W40FzdRUN echo "deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >/etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib" >>/etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian-security/ bullseye-security main" >>/etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main" >>/etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >>/etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib" >>/etc/apt/sources.listRUN echo "deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >>/etc/apt/sources.listRUN echo "deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib" >>/etc/apt/sources.listRUN apt-get updateRUN apt-get install inotify-tools -yADD auto_reload.sh auto_reload.shRUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezoneCOPY ["auto_reload.sh","start.sh","./"]RUN chmod 711 auto_reload.sh && chmod 711 start.sh CMD ["./start.sh"]k8s 部署nginx 实现集群统一配置,自动更新nginx.conf配置文件 总结(k8s部署ingress-nginx)

需要使用对应的阿里云 镜像源 https://developer.aliyun.com/mirror/debian?spm=a2c6h.13651102.0.0.3e221b11W40Fzd

创建镜像后推送到阿里云私库,用于后续的使用

docker build -t nginx-auto-reload .docker tag nginx-auto-reload registry.cn-hangzhou.aliyuncs.com/jimliu/nginx-auto-reloaddocker push registry.cn-hangzhou.aliyuncs.com/jimliu/nginx-auto-reload

创建deploy部署文件部署nginx

部署deploy.yaml 内容如下

apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspec: replicas: 1 selector: matchLabels: app: nginx-auto-reload template: metadata: labels: app: nginx-auto-reload spec: # 容器配置 imagePullSecrets: - name: myaliyunsecret hostname: nginx-host subdomain: nginx-inner-domain containers: - image: registry.cn-hangzhou.aliyuncs.com/jimliu/nginx-auto-reload:latest name: nginx-containers # 挂载文件夹 volumeMounts: - mountPath: "/etc/nginx/conf.d/" name: config-volume volumes: - name: config-volume configMap: name: nginx-config---# 外部访问的接口 apiVersion: v1kind: Servicemetadata: name: nginx-auto-reload-service spec: ports: - protocol: TCP port: 18080 targetPort: 8080 nodePort: 18080 name: http8080 #暴露两个接口用于测试 nginx重启 - protocol: TCP port: 18081 targetPort: 8081 nodePort: 18081 name: http8081 selector: app: nginx-auto-reload部署nginx并测试创建configmap

部署nginxkubectl apply -f n-deployment.yaml

此步 nginx部署完成 service创建成功

测试nginx

8080端口访问成功

8081端口还无法访问

修改configmap中nginx配置文件 开放8081端口

等待configmap同步更新nginx pod中的配置文件

本文链接地址:https://www.jiuchutong.com/zhishi/293084.html 转载请保留说明!

上一篇:2023年顶会、顶刊SNN相关论文----------持续更新中

下一篇:前端技术中的几种居中方式(前端的基本知识)

  • 抖音如何搜索群号加入群聊(抖音如何搜索群聊天记录)

    抖音如何搜索群号加入群聊(抖音如何搜索群聊天记录)

  • 微信撤销转账在哪里(微信 撤销 转账)

    微信撤销转账在哪里(微信 撤销 转账)

  • 华为荣耀20pro两张照片怎么合成一张(华为i荣耀20pro)

    华为荣耀20pro两张照片怎么合成一张(华为i荣耀20pro)

  • 钉钉拒收消息怎么回事(钉钉拒收消息怎么消除)

    钉钉拒收消息怎么回事(钉钉拒收消息怎么消除)

  • 央视影音版hd版区别(央视影音hd正式版本)

    央视影音版hd版区别(央视影音hd正式版本)

  • 抖音音乐版权限制是什么意思?(抖音音乐版权限在哪里)

    抖音音乐版权限制是什么意思?(抖音音乐版权限在哪里)

  • qq电话会影响闹钟吗(打qq电话的时候闹铃会响吗)

    qq电话会影响闹钟吗(打qq电话的时候闹铃会响吗)

  • 电脑企业微信打不开(电脑企业微信打不开PPT文件)

    电脑企业微信打不开(电脑企业微信打不开PPT文件)

  • 2080s和2080ti性能差距(2080s和2080ti性能对比)

    2080s和2080ti性能差距(2080s和2080ti性能对比)

  • 同程vip抢票什么意思(同程抢票服务费多少钱)

    同程vip抢票什么意思(同程抢票服务费多少钱)

  • 滴滴一定要按导航走吗(滴滴必须按导航开吗)

    滴滴一定要按导航走吗(滴滴必须按导航开吗)

  • wan在计算机网络中表示(wan在计算机网络中是什么)

    wan在计算机网络中表示(wan在计算机网络中是什么)

  • ps怎么复制路径(ps怎么复制路径旋转)

    ps怎么复制路径(ps怎么复制路径旋转)

  • 怎么下载淘宝网买东西(怎么下载淘宝网店)

    怎么下载淘宝网买东西(怎么下载淘宝网店)

  • 下划线怎么设置一样长(红色下划线怎么设置)

    下划线怎么设置一样长(红色下划线怎么设置)

  • 苹果xr是苹果10吗(苹果xr是什么型号)

    苹果xr是苹果10吗(苹果xr是什么型号)

  • 华为手机分屏怎么用(华为手机分屏怎么变成上下分屏)

    华为手机分屏怎么用(华为手机分屏怎么变成上下分屏)

  • 学信网怎么合并账号(学信网合并后无法查询学历)

    学信网怎么合并账号(学信网合并后无法查询学历)

  • 苹果6能定位华为手机吗(苹果手机能定位华为吗)

    苹果6能定位华为手机吗(苹果手机能定位华为吗)

  • 怎么判断微信是否被删除(怎么判断微信是否被盗号)

    怎么判断微信是否被删除(怎么判断微信是否被盗号)

  • kindle插电脑没反应(kindle插电脑没反应 显示充电)

    kindle插电脑没反应(kindle插电脑没反应 显示充电)

  • 探探怎么打招呼(探探怎么打招呼比较好)

    探探怎么打招呼(探探怎么打招呼比较好)

  • airpods有降噪吗(airpods2有降噪吗)

    airpods有降噪吗(airpods2有降噪吗)

  • 8p3d touch怎么设置(苹果8p怎么设置3d touch)

    8p3d touch怎么设置(苹果8p怎么设置3d touch)

  • 小度蓝牙音箱怎样操作(小度蓝牙音箱怎么开机)

    小度蓝牙音箱怎样操作(小度蓝牙音箱怎么开机)

  • qq上的耳朵是什么(qq上的耳朵是什么意思)

    qq上的耳朵是什么(qq上的耳朵是什么意思)

  • 金税三期怎么合理避税
  • 印花税都有啥
  • 小规模应税行为扣除额如何填
  • 股东投资款给自己发工资如何处理?
  • 小规模季报财务报表怎么填写
  • 固定资产一次扣除政策执行到什么时候?
  • 企业想成为退税商店需具备哪些条件
  • 销售自产设备税率
  • 业务招待费所得税前扣除标准
  • 公司现金支票取现用途怎么填写
  • 年底员工借款如何处理
  • 服务费增值税专用发票税点
  • 企业自有公租房有房产证吗
  • 免税企业以前年收入多少
  • 工程款发票遗失怎么处理
  • 住宿费增值税怎么算
  • 工商年报员工人数怎么算
  • 管理不善存货损失 企业所得税
  • 琥珀销售用语
  • 取得土地的流程
  • 所得税退税会计分录为啥要借贷所得税费用
  • 新版edge浏览器历史记录
  • 桌面图标变成了一张纸
  • 什么是差额征税劳务费
  • 企业会计制度政府补助
  • OS X Yosemite系统怎么样 OS X Yosemite功能介绍
  • 单位银行结算账户属于活期存款账户
  • 股权无偿赠与协议书范本
  • 房产证办理流程图
  • 债权人将长期债务转为投资
  • 往境外支付培训费怎么退
  • 保安行业税率是多少
  • 07. vue3+vite+qiankun搭建微应用前端框架,并接入vue3微应用
  • 共管账户和联名账户
  • vue系列教程
  • ChatGPT 编写模式:如何高效地将思维框架赋予 AI ?
  • 赔偿金需要交税么
  • 发给客户的服装文案
  • 债权转让收益需缴税吗
  • 汇算清缴时期间费用是负数
  • wordpress编辑文章
  • 使用SqlServer CTE递归查询处理树、图和层次结构
  • 错账调整分录
  • 进口关税的计算是以什么为基础
  • mysql多表左连接查询
  • 电梯安装发票税收分类
  • 完税证明和纳税证明一样吗
  • 多计提的工资怎么冲销
  • 中小企业的判定标准
  • 房地产公司项目经理待遇
  • 长期待摊费用每个月摊销多少
  • 分公司分摊比例
  • 费用分摊科目
  • 个别会计报表和合并会计报表
  • 持有待售流动资产减值
  • 制造费用如何结转生产成本
  • 提前支付利息如何计算
  • windows10安装教程u盘安装
  • Windows Server 2003下DHCP服务器的安装与简单配置图文教程
  • windows10指纹用不了
  • 出现早搏就一辈子无法治愈吗
  • win10如何不升级系统
  • 升级win10后东西还在吗
  • win7能装coreldraw2020吗
  • node.js报错
  • jquery jsonview
  • 深入理解新发展理念,推进供给侧结构性改革
  • unity3d添加组件
  • 广度优先搜索输出路径
  • shell 批量改名
  • pythonlist删除指定位置元素
  • 源码讲解
  • java script教程
  • android8.0特性
  • 为什么要征收城乡土地
  • 泰兴市地方税务局
  • 存在未申报记录
  • 台湾大学会计硕士
  • 矿山耕地占用税计入什么科目
  • 发票明细怎么导入开票系统里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设