nginx-ingress部署+跨命名空间转发
nginx-ingress部署
- 一、环境信息
- 二、k8s环境搭建
- 三、ingress环境搭建
- 3.1 deploy.yaml文件
- 3.2 service-nodeport.yaml文件
- 四、按照业务建立service及ingress
- 4.1 业务信息
- 4.2 建立service
- 4.3 创建ingress
- 五、验证结果
一、环境信息
- k8s集群版本:1.23.6
- ingress版本:1.1.1
- 操作系统版本:CentOS Linux release 7.9.2009 (Core)
- docker服务:Docker version 20.10.21, build baeda1f
- k8s控制节点IP:xxx.xxx.150.14
- 网站地址:xxxops.cn
二、k8s环境搭建
参考链接:K8s 1.23.6版本部署:kubelet-1.23.6+kube-proxy-1.17.6
三、ingress环境搭建
3.1 deploy.yaml文件
1、下载deploy.yaml文件
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
2、替换镜像源,修改为国内源
k8s.gcr.io/ingress-nginx/controller:v1.1.1
替换为
registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.1
k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
替换为
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
sed -i 's/k8s.gcr.io\/ingress-nginx\/controller:v1.1.1\@sha256:0bc88eb15f9e7f84e8e56c14fa5735aaa488b840983f87bd79b1054190e660de/registry.cn-hangzhou.aliyuncs.com\/google_containers\/nginx-ingress-controller:v1.1.1/g' deploy.yaml;
sed -i 's/k8s.gcr.io\/ingress-nginx\/kube-webhook-certgen:v1.1.1\@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660/registry.cn-hangzhou.aliyuncs.com\/google_containers\/kube-webhook-certgen:v1.1.1/g' deploy.yaml;
3、修改负载方式,修改负载方式为NodePort,注释externalTrafficPolicy
sed -i 's/type: LoadBalancer/type: NodePort/g' deploy.yaml;
sed -i 's/externalTrafficPolicy: Local/#externalTrafficPolicy: Local/g' deploy.yaml;
4、执行部署
kubectl apply -f deploy.yaml
5、查看部署结果
kubectl get pod -n ingress-nginx
[root@k8s-master ~]# kubectl get pod -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-2m6cn 0/1 Completed 0 75m
ingress-nginx-admission-patch-x9x2m 0/1 Completed 0 75m
ingress-nginx-controller-74c6bcdc65-425jf 1/1 Running 0 75m
3.2 service-nodeport.yaml文件
1、下载deploy.yaml文件
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml
2、执行deploy.yaml文件
kubectl apply -f service-nodeport.yaml
3、查看执行结果
kubectl get svc -n ingress-nginx
[root@k8s-master ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx NodePort 10.107.28.54 <none> 80:30716/TCP,443:31305/TCP 72m
ingress-nginx-controller NodePort 10.100.159.4 <none> 80:31247/TCP,443:31575/TCP 73m
ingress-nginx-controller-admission ClusterIP 10.106.162.218 <none> 443/TCP 73m
验证
访问xxx.xxx.150.14:31247验证是否可以出现404提示,出现404提示表示部署正常

四、按照业务建立service及ingress
4.1 业务信息
- 前端服务的service名称:xxxops-frontend
- 前端服务所处命名空间名称:xxxops
- 前端服务暴露端口:8080
前端服务service信息图如下

4.2 建立service
1、准备部署文件
这里的service是要引用其他命名空间的服务,所以type是ExternalName
配置文件:xxxops-dashboard.yaml
apiVersion: v1
kind: Service
metadata:name: xxxops-frontend #service的名字namespace: ingress-nginx #ingress-controller所在的namespace
spec:type: ExternalName sessionAffinity: NoneexternalName: xxxops-frontend.xxxops.svc.cluster.local #servicename.namespacename.scv.cluster.local
2、执行部署
kubectl apply -f xxxops-dashboard.yaml
3、检查部署结果
[root@k8s-master ingress-1.1.1]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx NodePort 10.107.28.54 <none> 80:30716/TCP,443:31305/TCP 4h37m
ingress-nginx-controller NodePort 10.100.159.4 <none> 80:31247/TCP,443:31575/TCP 4h37m
ingress-nginx-controller-admission ClusterIP 10.106.162.218 <none> 443/TCP 4h37m
xxxops-frontend ExternalName <none> xxxops-frontend.xxxops.svc.cluster.local <none> 4h36m

4.3 创建ingress
1、准备部署文件
配置文件:xxxops-dashboard-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: xxxops-ingress #ingress名称namespace: xxxops #这里写前端服务运行所在的命名空间名称annotations:kubernetes.io/ingress.class: "nginx"
spec:rules:- host: xxxops.cn #设置域名http:paths:- path: /pathType: Prefix # 前缀匹配backend:service:name: xxxops-frontend #填写上一步service的名称port:number: 8080 #填写服务暴漏的端口
2、执行部署
kubectl apply -f xxxops-dashboard-ingress.yaml
3、检查部署结果
在前端服务业务命名空间内查看ingress
[root@k8s-master ingress-1.1.1]# kubectl get ingress -n xxxops
NAME CLASS HOSTS ADDRESS PORTS AGE
xxxops-ingress <none> xxxops.cn 10.100.159.4 80 4h39m

五、验证结果
本地机器修改host,增加dns
192.168.150.14 xxxops.cn
使用浏览器访问
http://xxxops.cn:31247/

可以访问成功
相关文章:
nginx-ingress部署+跨命名空间转发
nginx-ingress部署一、环境信息二、k8s环境搭建三、ingress环境搭建3.1 deploy.yaml文件3.2 service-nodeport.yaml文件四、按照业务建立service及ingress4.1 业务信息4.2 建立service4.3 创建ingress五、验证结果一、环境信息 k8s集群版本:1.23.6ingress版本&…...
耗时1个月整理的网络安全学习路线,不信还有比这更详细的
首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学习语言上; 2、知识点掌握程度不清楚 对于网络安全…...
ChatGPT进阶-提示词中文版
一、ChatGPT简介 ChatGPT 是 OpenAI 开发的人工智能聊天机器人。该聊天机器人基于 GPT-3.5 语言模型,经过训练可以对用户给出的指令做出详细响应。与其他聊天机器人不同,ChatGPT 可以回答后续问题、求解数学方程式、撰写文本、修复和调试代码以及总结文本…...
Linux 进程:进程状态
目录一、进程状态1.简单分类2.详细分类(1)运行态(2)休眠态[1]可中断休眠态[2]不可中断休眠态(3)停止状态(4)死亡状态(5)僵死状态二、特殊进程1.僵尸进程2.孤儿…...
应用程序性能优化方案,web服务五级缓存优化,服务器性能优化...
winfrom 全局异常捕获WPF 全局异常捕获Asp.Net全局异常捕获MVC 全局异常捕获AspNetNetCore 全局异常捕获一级缓存html/css/js 前端缓存二级缓存Asp.Net MVC AspNetCore 客户端缓存设置三级缓存服务端缓存四级redis 数据库缓存服务端缓存五级sqlserver 数据库缓存设置分布式缓存…...
云计算简介
本文为copy他人编写的文档,由于不确认作者名称,故无法标记来源(实际来源是群pdf文档),暂时发文为原创,因为无法贴出原文链接! 云原生的前世今生 随着公有云和私有云的广泛部署,云计…...
两个适配器网络冲突,限制访问特定网址
两个适配器网络冲突,限制访问特定网址说明命令说明说明 因为工作需要,有线网络访问局域网服务器,限制特别策略访问,如禁止远程。此时如果想要远程,在连接手机热点就可以,但由于两个网络的存在优先级。就出…...
电子科技大学 高级计算机系统结构 考试回忆
首先题量不算小,因此没有太多时间把题都记出来,但是叙述一下题的类型希望能帮到以后选了这门课大家,在网上确实没有搜到这门课有关考试的任何资料,所以我也没啥参考全凭记忆和老师的PPT结合。复习的时候老师给了大纲,就…...
【设计模式】18.观察者模式
概述 定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能…...
软测入门(一)测试理念及基础知识
软测入门理念 软件的分类 按层次划分:系统软件、应用软件按组织划分:商业软件、开源软件按结构划分:单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…...
2022年“网络安全”赛项山东省菏泽市选拔赛任务书
2022年“网络安全”赛项山东省菏泽市选拔赛任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一:Apache安全配置 任务二:数据分析-A 任务三:Windows操作系…...
LeetCode练习四:栈
文章目录一、 堆栈基础知识1.1 简介1.2 堆栈的顺序存储1.2.1 堆栈顺序存储基本描述1.2.2 堆栈顺序存储实现代码1.3 堆栈的链式存储1.3.1 堆栈的链式存储基本描述1.3.2 堆栈的链式存储实现代码二、 堆栈的基础应用2.1 堆栈基础题列表2.2 括号匹配问题2.2.1 有效的括号2.2.2 最长…...
【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
前言 一本本书,是一扇扇窗,为追求知识的人打开认知世界的窗口 一本本书,是一双双翅膀,让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末…...
【数据结构】堆的详解
本章的知识需要有树等相关的概念,如果你还不了解请先看这篇文章:初识二叉树 堆的详解一、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构二、堆的简单实现 (以大堆为例)1、堆的定义2、堆的初始化3、堆的销毁4、堆的打印5、堆的插入6、堆顶元素的获取7…...
New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
最近,来自大洋彼岸那头的ChatGPT科技浪潮席卷而来,微软将chatGPT整合搜索引擎Bing开启内测后,数百万用户蜂拥而至,都想试试这个「百事通」。 赶鸭子上架,“翻车”了? 但短短上线十几天,嵌入了…...
简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…...
chatGPT使用:询问简历和面试相关话题(持续更新中)
chatGPT使用:询问简历和面试相关话题 写一份Java简历,价值2万元包装上面的Java简历面试自我介绍面试简述稿包装简历的方法技巧如何进行良好的自我介绍如何写一份优秀的面试简述稿如何写一份优秀的简历如何写一份优秀的面试讲述稿如何提高面试录取率如何拿到offer写一份Java简…...
Java的 Stream流
Stream流?结合Lambda表达式,用于简化集合和数组操作的API。Stream流的一个小例子:创建一个集合,存储多个姓名,把集合中所有以"张"开头的长度为3的元素存储到一个新的集合并输出。List<String> namesne…...
FL Studio 21 中文正式版发布支持多种超个性化主题
万众期待的 FL Studio 21 版本正式发布上线,目前在紧锣密鼓的安排上线中,届时所有购买正版 FL Studio 的用户,都可以免费升级到21版! 按照惯例,本次新版也会增加全新插件,来帮助大家更好地创作。今天先给大…...
【微信小程序】-- 全局配置 -- window - 导航栏(十五)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...
MySQL技巧(八) :死锁解决与实战案例
在数据库高并发场景下,死锁是一个绕不开的经典难题。两个或多个事务相互持有对方需要的锁,导致都无法继续执行,就像两辆车在狭窄路口互不相让。本文将带你从原理到实战,掌握死锁的排查、解决和预防全流程。一、死锁快速定位当应用…...
Redis未授权访问漏洞实战:从SSH公钥到反弹shell的5种利用方式详解
Redis未授权访问漏洞深度攻防:5种高阶利用与防御方案 Redis作为高性能键值数据库,其未授权访问漏洞长期位居企业安全风险Top 10。本文将突破常规教程框架,从攻击者视角剖析5种实战利用手法,同时提供企业级防御方案。不同于基础复现…...
告别Keil!用VSCode+EIDE插件打造你的STM32开发环境(附ST-LINK V2避坑指南)
从Keil到VSCode:打造高效STM32开发环境的完整指南 在嵌入式开发领域,Keil MDK长期以来一直是STM32开发的主流工具,但它的封闭性、高昂的授权费用和略显陈旧的用户界面让越来越多的开发者开始寻找替代方案。Visual Studio Code(VSC…...
好用还专业!高效论文写作全流程AI论文网站推荐(2026 最新)
论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节,以下工具按环节精准匹配,兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求,覆盖免费/付费、通用/垂直场景。2026年AI论…...
Kali Linux 2026.1 发布 (2026 主题 BackTrack 模式) - 领先的渗透测试发行版
Kali Linux 2026.1 发布 (2026 主题 & BackTrack 模式) - 领先的渗透测试发行版 The most advanced Penetration Testing Distribution 请访问原文链接:https://sysin.org/blog/kali-linux/ 查看最新版。原创作品,转载请保留出处。 作者主页&…...
贝叶斯岭回归实战:用Python搞定金融数据预测(附完整代码)
贝叶斯岭回归实战:用Python搞定金融数据预测(附完整代码) 金融市场的波动性一直是投资者和分析师关注的焦点。在瞬息万变的股票市场中,能够准确预测价格走势意味着巨大的商业价值。传统的时间序列分析方法如ARIMA虽然经典…...
服务器频繁报soft lockup?手把手教你排查高负载进程与内核死锁问题
服务器频繁报soft lockup?手把手教你排查高负载进程与内核死锁问题 最近在运维工作中,你是否遇到过服务器突然弹出"kernel:NMI watchdog: BUG: soft lockup - CPU#X stuck for XXs!"这样的警告信息?这种内核软死锁问题看似不会立即…...
英雄联盟智能助手League Akari:5个必用功能让你的游戏体验翻倍提升
英雄联盟智能助手League Akari:5个必用功能让你的游戏体验翻倍提升 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit Le…...
提示工程架构师经验总结:Agentic AI环保项目从失败到成功的关键转折点
提示工程架构师经验总结:Agentic AI环保项目从失败到成功的关键转折点 一、引言:那些“死在落地路上”的环保AI 你知道吗? 全球每年有800万吨塑料流入海洋,相当于每秒钟往海里倒一辆卡车的垃圾;中国城市生活垃圾年清运量超过3亿吨,但仅有**23%**的垃圾得到规范分拣——…...
为什么你的MoveIt2 Python API总报错?ROS2环境变量与PYTHONPATH的隐藏陷阱
为什么你的MoveIt2 Python API总报错?ROS2环境变量与PYTHONPATH的隐藏陷阱 当你第一次在ROS2中尝试使用MoveIt2的Python API时,那种"ModuleNotFoundError: No module named moveit"的报错信息可能会让你抓狂。这不是因为你做错了什么ÿ…...
