位置: 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相关论文----------持续更新中

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

  • 2016年度网络热词TOP10新鲜出炉!(2016年十大网络流行语)

    2016年度网络热词TOP10新鲜出炉!(2016年十大网络流行语)

  • 笔记本怎么连接无线网络视频教程(笔记本怎么连接无线路由器)(笔记本怎么连接蓝牙耳机)

    笔记本怎么连接无线网络视频教程(笔记本怎么连接无线路由器)(笔记本怎么连接蓝牙耳机)

  • oppo reno 6防水吗(oppo reno 6手机防水吗)

    oppo reno 6防水吗(oppo reno 6手机防水吗)

  • 手机卡欠费不交会注销吗(手机卡欠费不交会一直扣钱吗)

    手机卡欠费不交会注销吗(手机卡欠费不交会一直扣钱吗)

  • 快手可能认识的人关掉怎么弄(快手可能认识的人是根据什么推荐的)

    快手可能认识的人关掉怎么弄(快手可能认识的人是根据什么推荐的)

  • 摄像头物理遮蔽是什么意思(摄像头物理遮蔽了,自己能看到吗)

    摄像头物理遮蔽是什么意思(摄像头物理遮蔽了,自己能看到吗)

  • oppo强制解锁还要锁屏密码怎么办(oppo强制解锁还能找回吗)

    oppo强制解锁还要锁屏密码怎么办(oppo强制解锁还能找回吗)

  • edlal10是什么型号(edl-al10是什么型号的手机)

    edlal10是什么型号(edl-al10是什么型号的手机)

  • 手机嗡嗡响是怎么回事(手机嗡嗡响是怎么回事但是没有显示)

    手机嗡嗡响是怎么回事(手机嗡嗡响是怎么回事但是没有显示)

  • mate30pro无法连接蓝牙耳机(mate30pro无法连接网络)

    mate30pro无法连接蓝牙耳机(mate30pro无法连接网络)

  • excel默认工作簿文件名(Excel默认工作簿文件的扩展名是)

    excel默认工作簿文件名(Excel默认工作簿文件的扩展名是)

  • 迈克菲全方位实时保护可以卸载吗(迈克菲全方位实时保护是电脑自带的吗)

    迈克菲全方位实时保护可以卸载吗(迈克菲全方位实时保护是电脑自带的吗)

  • wechatfiles是什么文件夹(微信file是什么意思)

    wechatfiles是什么文件夹(微信file是什么意思)

  • 笔记本home怎么按(笔记本home怎么设置)

    笔记本home怎么按(笔记本home怎么设置)

  • vivo手机查买了多久(怎么查vivo手机的购买日期)

    vivo手机查买了多久(怎么查vivo手机的购买日期)

  • 手机内存16g有多大(手机内存16g有多少)

    手机内存16g有多大(手机内存16g有多少)

  • 快手怎么看发布时间(快手怎么看发布的作品游览历史记录)

    快手怎么看发布时间(快手怎么看发布的作品游览历史记录)

  • 苹果怎么改蓝牙耳机名(苹果怎么改蓝牙耳机名字)

    苹果怎么改蓝牙耳机名(苹果怎么改蓝牙耳机名字)

  • vivox27在哪里设置刷脸功能(vivox27在哪里设置字体)

    vivox27在哪里设置刷脸功能(vivox27在哪里设置字体)

  • 华为手势锁屏在哪设置(华为手势锁屏在哪设置方法)

    华为手势锁屏在哪设置(华为手势锁屏在哪设置方法)

  • 小度在家1s怎么使用(小度在家1s怎么下载钉钉)

    小度在家1s怎么使用(小度在家1s怎么下载钉钉)

  • app开发商标准有哪些(开发商城app需要什么证件)

    app开发商标准有哪些(开发商城app需要什么证件)

  • 增值税专用发票的税率是多少啊
  • 自查补缴增值税的会计处理
  • 在外地预缴的印花税如何扣除
  • 农产品收购发票使用范围
  • 城建税是什么税率
  • 实验耗材计入什么科目
  • 认缴出资股权转让的法律责任
  • 工业企业生产费用要素一般有哪些
  • 外贸企业视同内销进项可以抵扣吗
  • 员工买了多项东西怎么说
  • 工业混合销售行为如何纳税?
  • 异地设立分公司可以独立核算吗
  • 企业报销发票都需要什么
  • 残保金申报表怎么作废
  • 汇总申报怎么申请
  • 企业筹办费会计处理
  • 固定资产报废需要在固定资产系统中
  • 需要缴纳消费税的委托加工存货,由受托方
  • 发票跨期审计调查报告
  • 挂靠别人的资质进行房屋建筑会计怎样做账?
  • 新公司第一年
  • 实收资本属于会计准则吗
  • 原材料运费可以计入制造费用吗
  • mom.exe是什么进程
  • 企业发给员工的工资要交税吗
  • vue3+vite+typescript出现does not provide an export named ‘xxx‘ 解决方法
  • PHP:getimagesize()的用法_GD库图像处理函数
  • el-tree方法
  • 空调维修费进什么会计科目
  • 奥勒松又叫什么
  • yii2 页面底部加载css和js的技巧
  • 物流公司交保险是骗局吗
  • 全网首发是什么意思
  • transformer中的token
  • 我已经用尽了洪荒之力漫画表情
  • ajax调用php接口
  • phpcms官网打不开
  • 原财政补助结余对应新账
  • 纳税人兼营不同税率
  • 基本生产成本和辅助生产成本区别
  • 固定资产融资租赁是什么意思
  • mysql常见操作
  • sqlserver2008分页查询
  • sqlserver有实例吗
  • 固定资产大修理和更新改造的区别
  • 销售旧固定资产开票编码
  • 车船使用税必须每年都交吗
  • 月末需要计提
  • 事业单位公务员考试条件
  • 其他应付款在贷方表示什么
  • 测绘费如何入账
  • 什么是中型企业
  • 3%税率专票为什么不能抵扣
  • 税控盘领了发票怎么发票读入
  • 数据库语言主要有哪几种
  • windows允许多用户登录
  • ubuntu怎么把软件放到桌面
  • centos安装lvm
  • ubuntu系统自带的截图工具
  • win7语言栏不见了 各种方法都试过了
  • 安装centos7.7
  • 鲁大师安装失败怎么回事
  • centos安装虚拟机教程
  • win10天气预报设置
  • linux如何快速入门
  • 铁嘴大师
  • 简述js和jquery的关系
  • python实现人脸识别代码
  • 谈谈jQuery Ajax用法详解
  • sequelize join
  • 批处理应用实例
  • js的select()方法
  • python3 mongodb
  • jQuery+formdata实现上传进度特效遇到的问题
  • android 动态化方案
  • javascript 代码
  • 销售车位需要交房产税吗
  • 河北电子税务局电话
  • 不予税务行政许可
  • 电子缴款凭证可以用于报销吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设