ingress使用HostNetwork部署

news2024/11/25 16:32:06
1.三种常用的部署模式
1.1 Deployment+LoadBalancer模式的service

用Deployment部署igress-controller,创建一个type为LoadBalancer的service关联这组pod。大部分公有云,都会为LoadBalancer的service自动创建一个负载均衡器,通常还绑定了公网地址。只要把域名解析指向改地址,就实现了集群服务的对外暴露。但是需要购买云服务商的负载均衡, 个人使用比较昂贵。

1.2 Deployment+NodePort模式的service

同样用deployment模式部署ingress-controller,然后创建对应的ingress svc,type为NodePort。这样,ingress就会暴露在集群节点ip的特定端口上。由于nodeport暴露的端口是随机端口,一般会在前面再搭建一套负载均衡器来转发请求。改方式一般用于宿主机是相对固定的环境ip地址不变的场景。
NodePort方式暴露ingress虽然简单方便,但是NodePort多了一层NAT,在请求量级很大时可能对性能会有一定的影响

1.3 DaemonSet+HostNetwork(+nodeSelector)

用DaemonSet 结合nodeselector来部署ingress-controller到特定的Node上,然后使用HostNetwork直接把该pod与宿主机node的网络打通,直接使用宿主机的80/443端口就能访问服务。此方式整个请求链路最简单,性能相对nodeport模式更好。缺点是由于直接利用宿主机节点的网络和端口,一个node只能部署一个ingress-controller pod。比较适合大并发的生产环境使用。

后续使用就使用第三种方案

2.根据k8s版本选择对应ingress版本

ingress-nginx地址 https://github.com/kubernetes/ingress-nginx

SupportedIngress-NGINX versionk8s supported versionAlpine VersionNginx VersionHelm Chart Version
🔄v1.11.11.30, 1.29, 1.28, 1.27, 1.263.20.01.25.54.11.1
🔄v1.11.01.30, 1.29, 1.28, 1.27, 1.263.20.01.25.54.11.0
🔄v1.10.31.30, 1.29, 1.28, 1.27, 1.263.20.01.25.54.10.3
🔄v1.10.21.30, 1.29, 1.28, 1.27, 1.263.20.01.25.54.10.2
🔄v1.10.11.30, 1.29, 1.28, 1.27, 1.263.19.11.25.34.10.1
🔄v1.10.01.29, 1.28, 1.27, 1.263.19.11.25.34.10.0
v1.9.61.29, 1.28, 1.27, 1.26, 1.253.19.01.21.64.9.1
v1.9.51.28, 1.27, 1.26, 1.253.18.41.21.64.9.0
v1.9.41.28, 1.27, 1.26, 1.253.18.41.21.64.8.3
v1.9.31.28, 1.27, 1.26, 1.253.18.41.21.64.8.*
v1.9.11.28, 1.27, 1.26, 1.253.18.41.21.64.8.*
v1.9.01.28, 1.27, 1.26, 1.253.18.21.21.64.8.*
v1.8.41.27, 1.26, 1.25, 1.243.18.21.21.64.7.*
v1.7.11.27, 1.26, 1.25, 1.243.17.21.21.64.6.*
v1.6.41.26, 1.25, 1.24, 1.233.17.01.21.64.5.*
v1.5.11.25, 1.24, 1.233.16.21.21.64.4.*
v1.4.01.25, 1.24, 1.23, 1.223.16.21.19.10†4.3.0
v1.3.11.24, 1.23, 1.22, 1.21, 1.203.16.21.19.10†4.2.5

比如我使用的是1.8.1, 对应地址是

https://github.com/kubernetes/ingress-nginx/blob/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
3.下载后修改以下信息
3.1 ingress-nginx-controller type改为 NodePort

image-20240730151937728

3.2 Deployment 改为 DaemonSet

image-20240730152105927

3.3 有三处镜像改为国内镜像
image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.1

image-20240730152159733

image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407

image-20240730152230992

image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407

image-20240730152320594

4.部署
kubectl apply -f deploy.yaml

建议重启dns解析,我使用的版本安装后出现找不到服务的情况

kubectl rollout restart deployment coredns -n kube-system

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java面试八股之Spring如何解决循环依赖

Spring如何解决循环依赖 在Spring框架中,循环依赖问题通常发生在两个或多个Bean相互依赖的情况下。Spring为了解决循环依赖问题,采用了不同的策略,这些策略主要取决于Bean的作用域以及依赖注入的方式。下面是一些关键点: 单例Be…

护眼灯真的有用吗?护眼灯到底该不该买?

护眼灯真的有用吗?随着科技的发展,生活质量水平的不断提升,大家对于生活的要求也在不断拔高。护眼台灯进入众多家庭里面,成为不可或缺的产品。然而,护眼台灯在市面上,种类颇多,其质量也是参差不…

力扣高频SQL 50题(基础版)第三十三题

文章目录 力扣高频SQL 50题(基础版)第三十三题610.判断三角形题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题(基础版)第三十三题 610.判断三角形 题目说明 表: Triangle ----------------- | Column Name | Typ…

Python入门宝藏《看漫画学Python》,495页漫画带你弄清python知识点!简单易懂 | 附PDF全彩版

华为出品的《看漫画学Python》全彩PDF教程是一本适合Python初学者的学习资料,通过漫画的形式将复杂的Python技术问题简单化,使学习过程更加生动有趣。以下是对该教程的内容简介、本书概要及本书目录的详细解析: 内容简介 《看漫画学Python》…

无线领夹麦哪个品牌音质最好?无线领夹麦克风怎么挑选

在直播行业中,声音质量直接影响着观众的观看体验。一款优质的无线领夹麦克风,能够确保你的声音在直播过程中始终保持清晰、稳定,减少背景噪音的干扰。它不仅方便佩戴,还能让你在移动中自由发挥,无需担心线缆束缚。对于…

数说故事 | 社媒聆听“顶流”红山动物园UGC声量

7月,CASETiFY和南京红山森林动物园联名啦,一个号称“手机壳中的爱马仕”,一个是“动物园顶流”,两大IP梦幻联动,推出了“明星动物”系列手机壳,CASETiFY还解锁“饲养员”身份,认养了酷酷的美洲豹…

某土地市场网JS逆向:debugger脚本限制秒退和webpack hash参数加密

🔍某土地市场网逆向思路 🚫 解决网页反debugger 🔍 网页禁止打开开发者工具 在访问中国土地市场网时,我们会发现网页禁止了开发者工具的使用,包括F12和右键调试。 🔍强制进入开发者工具 窗口关闭并回退 …

IDEA对线上项目远程debug

1、在启动脚本上添加以下配置内容 -agentlib:jdwptransportdt_socket,servery,suspendn,address*:5005 nohup java -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -jar test.jar > misc.out & 2、在IDEA中进行配置 (1)选择远程…

我们的网站被狗爬了!

大家好,我是程序员鱼皮。 世风日下,人心不古。我们的程序员面试刷题网站 《面试鸭》 才刚刚上线了一个多月,就由于过于火爆,被不少同行和小人发起网络攻击。 而且因为我们已经有 4500 多道人工整理的企业高频面试题、100 多个各…

不得不安利的程序员开发神器,太赞了!!

作为一名程序员,你是否常常为繁琐的后端服务而感到头疼?是否希望有一种工具可以帮你简化开发流程,让你专注于创意和功能开发?今天,我要向大家隆重推荐一款绝佳的开发神器——MemFire Cloud。它专为懒人开发者准备&…

【前端】(仅思路)如何在前端实现一个fc手柄,将手机作为游戏手柄设备。

文章目录 背景界面demo原型图(没错,就是它,童年回忆) 遇到的问题最终后端demo(甚至比前端逻辑更简单) 背景 突发奇想,想要在前端实现一个fc游戏手柄,然后控制电脑的nes模拟器玩玩魂斗罗。 思路很简单&…

单细胞|MEBOCOST·细胞间代谢通讯

概述 在代谢活跃的细胞中,表达的代谢酶催化代谢反应生成许多代谢物。这些代谢物中的一些可以扩散到细胞外空间并作为信号分子发挥作用。某些细胞外代谢物可以与空间上邻近细胞的感应蛋白结合。我们将分泌代谢物的细胞称为发送细胞,而表达感应蛋白的细胞称…

开放式耳机稳固吗?音质好吗?四款开放式耳机测评

对于体验过不下50款耳机的我来说,在这么多耳机类型里,我推荐入手开放式耳机。 开放式耳机拥有着舒适的体验。有挂耳式的设计,相比入耳式,开放式耳机不会对耳道造成影响。再加上大部分开放式耳机的挂耳式设计都是人体工学设计&…

Astro 实现TodoList网页应用案例

Astro 是一个现代化的静态站点生成器和前端框架,它具有独特的设计理念:岛屿架构。它允许开发人员使用组件化的方式构建内容优先的网站,将各种技术栈(如React、Vue、Svelte等)的组件无缝集成到同一个项目中。 1、创建项…

STM32高级运动控制系统教程

目录 引言环境准备高级运动控制系统基础代码实现:实现高级运动控制系统 4.1 传感器数据采集模块 4.2 数据处理与运动控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:运动控制与优化问题解决方案与优化收尾与总结 1. 引言 高级运动…

【FCA FineDataLink认证指南】解锁高薪职业新机遇,提升职场竞争力

数据集成作为数字化转型的核心组成部分,正在经历前所未有的增长和创新。随着企业对数据驱动决策的需求日益增长,数据集成领域的人才在各行各业中都备受青睐。而且随着大数据、云计算和人工智能技术的不断发展,数据集成领域的职业机会也在不断…

Springcloud物流配送后台-计算机毕业设计源码69809

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 物流配送后台系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2 数据修改流程 2.2.3 数据…

UE4调试手段:主动崩溃与“.pdb”解析“.dmp”文件

主动崩溃 尝试了一些做法,发现 check(false) 对于Development配置而言,是有效果的,代码如下: // Called when the game starts or when spawned void AMyActor::BeginPlay() {Super::BeginPlay();check(false); // 尝试用这个来…

RAG调研

一 : RAG解决的问题 1.1 LLM 的局限 幻觉 知识过期 推理过程不透明,不可追踪 1.2 RAG介绍 检索增强生成(RAG)是一种使用外部知识库辅助文本生成的技术。它结合了检索与生成,通过访问外部数据库检索得到有关的信息&…

vue的基础知识总结(1)

目录 一.什么是Vue? 二.基于脚手架创建就前端工程: 三.Vue工程结构以及组件: 1.Vue项目结构: 2.Vue组件: 四.Vue基本使用方式: 1.文本插值{{}}: 2.属性绑定v-bind: 3.事件绑…