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

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

  • 散热背夹会导致手机内部有水吗(散热背夹会导致手机内部产生冷凝水)

    散热背夹会导致手机内部有水吗(散热背夹会导致手机内部产生冷凝水)

  • 剪映如何添加文字(剪映如何添加文字解说)

    剪映如何添加文字(剪映如何添加文字解说)

  • 苹果11录制视频怎么没声音(苹果11录制视频模糊怎么办)

    苹果11录制视频怎么没声音(苹果11录制视频模糊怎么办)

  • pr导出格式一般用什么(pr导出格式一般选什么)

    pr导出格式一般用什么(pr导出格式一般选什么)

  • 电费异常(电费异常可以报警吗)

    电费异常(电费异常可以报警吗)

  • 系统显示屏蓝屏一片的主要原因是(系统蓝屏原因分析)

    系统显示屏蓝屏一片的主要原因是(系统蓝屏原因分析)

  • 拼多多店铺审核一般多久(拼多多店铺审核秒通过)

    拼多多店铺审核一般多久(拼多多店铺审核秒通过)

  • qq校园扩列匹配频繁怎么办(qq校园扩列为什么显示不出来)

    qq校园扩列匹配频繁怎么办(qq校园扩列为什么显示不出来)

  • id锁了换主板能解决吗(苹果手机id锁换个主板就好了嘛)

    id锁了换主板能解决吗(苹果手机id锁换个主板就好了嘛)

  • ipad a11处理器是哪款(ipada11处理器有哪几款)

    ipad a11处理器是哪款(ipada11处理器有哪几款)

  • 为什么抖音提现一直在受理中(为什么抖音提现成功可是钱没有)

    为什么抖音提现一直在受理中(为什么抖音提现成功可是钱没有)

  • 淘宝值怎么提升(淘宝值怎么提升不了怎么办)

    淘宝值怎么提升(淘宝值怎么提升不了怎么办)

  • 红米k20pro尊享版是ufs3.0吗(红米k20pro尊享版上市时间)

    红米k20pro尊享版是ufs3.0吗(红米k20pro尊享版上市时间)

  • 转转永久封禁影响大吗(转转永久封禁影响微信吗)

    转转永久封禁影响大吗(转转永久封禁影响微信吗)

  • 照片合成用什么软件(照片合成用什么相机)

    照片合成用什么软件(照片合成用什么相机)

  • 魅族16s屏幕尺寸是多少(魅族16屏幕多大尺寸)

    魅族16s屏幕尺寸是多少(魅族16屏幕多大尺寸)

  • 小米6x怎么开启快充(小米6x怎么开启小窗口)

    小米6x怎么开启快充(小米6x怎么开启小窗口)

  • p30pro能否插tf卡(华为p30pro可以插tf卡吗)

    p30pro能否插tf卡(华为p30pro可以插tf卡吗)

  • word不能编辑怎么处理(word不能编辑怎么解除)

    word不能编辑怎么处理(word不能编辑怎么解除)

  • 唯品会登录名是哪个(唯品会的登录名是不是账号)

    唯品会登录名是哪个(唯品会的登录名是不是账号)

  • 苹果前呼吸灯在哪里设置(苹果呼吸灯在哪里设置持续闪烁)

    苹果前呼吸灯在哪里设置(苹果呼吸灯在哪里设置持续闪烁)

  • 华为nova4手机发热(华为nova4手机发烫怎么解决)

    华为nova4手机发热(华为nova4手机发烫怎么解决)

  • qq安全组件异常(qq安全组件异常请重新下载)

    qq安全组件异常(qq安全组件异常请重新下载)

  • Win11打不开英雄联盟怎么办?Win11进不去英雄联盟的解决方法(win11打不开英雄连2)

    Win11打不开英雄联盟怎么办?Win11进不去英雄联盟的解决方法(win11打不开英雄连2)

  • npscheck.exe - npscheck是什么进程 有什么用

    npscheck.exe - npscheck是什么进程 有什么用

  • 小金额收据入账后需要汇算清缴吗
  • 公司汽车上牌费入什么科目
  • 个税手续费返还计入哪个科目
  • 作废的支票银行怎么处理
  • 小规模企业收到专票可以入账吗
  • 异地销售存货如何确定纳税地点
  • 企业所得税的营业成本怎么算
  • 被收购的收入计什么科目
  • 厂房鉴定公司
  • 报关单金额大于合同金额
  • 预缴工程税的帐务处理如何做?
  • 印花税金额不足多少可以不收
  • 企业个人所得税逾期未申报怎么办
  • 个体户上季度未申报能补报吗
  • 资产和负债可以一增一减吗
  • 进料加工可分为
  • 分红个人所得税怎么交
  • 公司车过户给个人流程
  • 货币资金资产处置损益表如何填
  • 土地拍卖资金交到哪里
  • 投资性房地产转换日公允价值大于账面价值
  • url是什么软件
  • 伦索伊斯马拉赫塞斯国家公园
  • 一只棕色
  • php怎么建立数据库mysql
  • 人工智能机器人保姆什么时候实现
  • 超像素和markpage的区别
  • jquery 元素
  • 国内版的chatpdf
  • opencv安装教程vs2019
  • speedtest教程
  • php实现上传图片功能
  • 固定资产一次性折旧账务处理
  • 开具电费发票如何入账
  • 银行账户维护费怎么做账
  • wordpress部署到github
  • python如何合并字典
  • php框架 hyperf
  • 工业企业取得土地收益
  • 为什么费用报销先由主管部门审批在由财务审核
  • 向银行申请银行汇票
  • 母公司与子公司的区别
  • Windows PostgreSQL 安装图文教程
  • CentOS 7下MySQL服务启动失败的快速解决方法
  • sql条件查询语句怎么写
  • 手机里面的发票怎么查
  • 销售人员的销售额是工作绩效的重要指标
  • 销售商品发生的销售退回计入什么科目
  • 车间里停止生产怎么办
  • 预收账款和预付账款都属于负债类科目
  • 房地产业营改增税收政策与企业应对策略课后测试
  • 净资产收益率多少才是好股
  • 软件公司购进软件会计科目
  • 银行贷款信用贷
  • 其他应收款项
  • 跨年度冲红字发票怎么冲
  • 挂靠人员社保缴费分录如何做?
  • 预计销售收入增长率怎么算
  • 什么叫建账
  • 多种不同的 MySQL 的 SSL 配置
  • win10预览版21301bug
  • 让Windows Server 2008系统安全更上一层楼
  • xp双系统怎么设置默认系统
  • mongo 安装
  • 为什么国外程序员比国内厉害
  • win10系统如何清洗打印机喷头
  • 怎么降到windows7
  • win8.1系统激活
  • windows补丁kb3033929
  • win10升级补丁后死机
  • win8系统自带浏览器
  • 批处理文件自动登录远程桌面
  • awk统计文件大小
  • unity动画教程
  • android开发前景
  • javascript中如何获取元素?
  • 天府新区劳动局投诉电话
  • 电子税务局怎么添加开票员
  • 智能财税证书含金量如何
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设