K8S Ingress 服务配置步骤说明
部署Pod服务
分别使用kubectl run和kubectl apply 部署nginx和tomcat服务
# 快速启动一个nginx服务
kubectl run my-nginx --image=nginx --port=80# 使用yaml创建tomcat服务
kubectl apply -f my-tomcat.yaml
my-tomcat.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: tomcat-deploymentlabels:app: tomcat
spec:replicas: 2selector:matchLabels:app: tomcattemplate:metadata:labels:app: tomcatspec:containers:- name: tomcat-containerimage: tomcat:latestports:- containerPort: 8080
- kubectl run:主要用于快速创建一个新的Pod,通常用于临时或一次性任务
- kubectl apply:跟进yaml文件中定义的资源进行创建或更新,适合管理长期存在的Kubernetes对象
执行成功后,可以看到Pod已经执行起来
[root@master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-nginx 1/1 Running 1 (3h17m ago) 8h
tomcat-deployment-6cc9875b5-krskl 1/1 Running 1 (13m ago) 55m
tomcat-deployment-6cc9875b5-qkk9h 1/1 Running 0 55m
部署service服务
部署nginx service服务
# 使用`kubectl expose`命令基于已有的`my-nginx` Pod 快速生成 Service 的 YAML 文件
kubectl expose pod my-nginx --name=my-nginx-service --port=18080 --target-port=80 --type=NodePort --dry-run=client -o yaml > my-nginx-service.yaml[root@master ~]# kubectl apply -f my-nginx-service.yaml[root@master ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 46h
my-nginx-service NodePort 10.109.146.167 <none> 18080:32192/TCP 6m46s
部署tomcat service服务
kubectl expose deployment tomcat-deployment --name=my-tomcat-service --port=18089 --target-port=8080 --type=NodePort --dry-run=client -o yaml > my-tomcat-service.yaml[root@master ~]# kubectl apply -f my-tomcat-service.yaml
service/my-tomcat-service created[root@master ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
my-nginx-service NodePort 10.109.146.167 <none> 18080:32192/TCP 141m
my-tomcat-service NodePort 10.99.171.11 <none> 18089:31875/TCP 15s
安装ingress controller服务
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.12.0-beta.0/deploy/static/provider/cloud/deploy.yaml# 通过节点的31520/30871 访问nginx controller的80/443端口
[root@master ~]# kubectl get service -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.109.66.157 <pending> 80:31520/TCP,443:30871/TCP 171m
ingress-nginx-controller-admission ClusterIP 10.110.31.148 <none> 443/TCP 171m
使用ingress转发服务
kubectl create ingress my-ingress-nginx --class=nginx --rule="mynginx.com/*=my-nginx-service:18080" --dry-run=client -o yaml > my-nginx-ingress.yamlkubectl create ingress my-ingress-tomcat --class=nginx --rule="mytomcat.com/*=my-tomcat-service:18089" --dry-run=client -o yaml > my-tomcat-ingress.yaml[root@master ~]# kubectl apply -f my-tomcat-ingress.yaml
ingress.networking.k8s.io/my-ingress-tomcat created[root@master ~]# kubectl apply -f my-nginx-ingress.yaml
ingress.networking.k8s.io/my-ingress-nginx created# 两个ingress资源已经被创建
[root@master ~]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
my-ingress-nginx nginx mynginx.com 80 9s
my-ingress-tomcat nginx mytomcat.com 80 6s
通过浏览器,ingress controller地址
配置hosts172.16.15.129 mynginx.com
172.16.15.129 mytomcat.com
访问nginx
http://mynginx.com:31520

访问tomcat
http://mytomcat.com:31520/index.jsp

相关文章:
K8S Ingress 服务配置步骤说明
部署Pod服务 分别使用kubectl run和kubectl apply 部署nginx和tomcat服务 # 快速启动一个nginx服务 kubectl run my-nginx --imagenginx --port80# 使用yaml创建tomcat服务 kubectl apply -f my-tomcat.yamlmy-tomcat.yaml apiVersion: apps/v1 kind: Deployment metadata:n…...
观察者模式(sigslot in C++)
大家,我是东风,今天抽点时间整理一下我很久前关注的一个不错的库,可以支持我们在使用标准C的时候使用信号槽机制进行观察者模式设计,sigslot 官网: http://sigslot.sourceforge.net/ 本文较为详尽探讨了一种观察者模…...
python使用pip进行库的下载
前言 现如今有太多的python编译软件,其库的下载也是五花八门,但在作者看来,无论是哪种方法都是万变不离其宗,即pip下载。 pip是python的包管理工具,无论你是用的什么python软件,都可以用pip进行库的下载。 …...
C#(委托)
一、基本定义 在C#中,委托(Delegate)是一种引用类型,它用于封装一个方法(具有特定的参数列表和返回类型)。可以把委托想象成一个能存储方法的变量,这个变量能够像调用普通方法一样来调用它所存…...
《点点之歌》“意外”诞生记
世界是“点点”的,“点点”是世界的。 (笔记模板由python脚本于2024年12月23日 19:28:25创建,本篇笔记适合喜欢诗文的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 …...
ue5 pcg(程序内容生成)真的简单方便,就5个节点
总结: 前情提示 鼠标单击右键平移节点 1.编辑-》插件-》procedural->勾选两个插件 2.右键-》pcg图表-》拖拽进入场景 3.先看点point 右键-》调试(快捷键d)->右侧设置粒子数 3.1调整粒子数 可以在右侧输入框,使用加减乘除 4.1 表面采样器 …...
32岁前端干了8年,是继续做前端开发,还是转其它工作
前端发展有瓶颈,变来变去都是那一套,只是换了框架换了环境。换了框架后又得去学习,虽然很快上手,但是那些刚毕业的也很快上手了,入门门槛越来越低,想转行或继续卷,该如何破圈 这是一位网友的自述…...
【演化博弈】期望收益函数公式、复制动态方程——化简功能技巧
期望化简 在演化博弈论的研究中,期望收益函数和复制动态方程是核心工具。化简这些公式的功能技巧具有以下几个重要作用: 提高公式的可读性和理解度 复杂的数学表达式可能让人感到困惑。通过化简,公式变得更加简单和易读,使研究者…...
opencv中的各种滤波器简介
在 OpenCV 中,滤波器是图像处理中的重要工具,用于对图像进行平滑、去噪、边缘检测等操作。以下是几种常见滤波器的简单介绍。 1. 均值滤波 (Mean Filter) 功能: 对图像进行平滑处理,减少噪声。 应用场景: 去除图像…...
[Effective C++]条款36-37 两个绝不
本文初发于 “天目中云的小站”,同步转载于此。 条款36 : 绝不重新定义继承而来的non-virtual函数 本条款很容易理解, 援引以前的条款就可以说明为什么 : 条款34中就提到过 : non-virtual函数意味着接口 强制性实现继承, 它不应当被改变. 重新定义继承而来的non-…...
各种网站(学习资源及其他)
欢迎围观笔者的个人博客~ 也欢迎通过RSS网址https://kangaroogao.github.io/atom.xml进行订阅~ 大学指南 上海交通大学生存手册中国科学技术大学人工智能与数据科学学院本科进阶指南USTC不完全入学指南大学生活质量指北科研论 信息搜集 AI信息搜集USTC飞跃网站计算机保研 技…...
docker怎么部署高斯数据库
部署高斯数据库(openGauss)到Docker的步骤如下: 安装Docker: 如果您的系统尚未安装Docker,需要先进行安装。以CentOS为例,可以使用以下命令安装Docker: yum install -y docker拉取镜像ÿ…...
VScode中配置ESlint+Prettier详细步骤(图文详情)
VScode中配置ESlintPrettier详细步骤(图文详情) 前置环境: node 18.19.0 vite 3.2.11 vue 3.2.47 本文将不在演示vue3基础工程创建,如果还没有vue3项目工程请参考文章: Vite创建Vue3工程并引入ElementPlus&#x…...
Leetcode打卡:考场就坐
执行结果:通过 题目: 855 考场就坐 在考场里,有 n 个座位排成一行,编号为 0 到 n - 1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外&am…...
数据库压力测试详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 很多人提到 jmeter 时,只会说到 jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作。个人常用的场景有以下&#…...
项目测试方案流程详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 作为一名软件测试工程师,为项目制作完成的测试方案并执行,是我们日常工作的重要部分,同时,也是一名合格的软件测试工…...
以二进制形式创建gitea仓库
1、官方文档: 数据库准备 | Gitea Documentation 使用二进制文件安装 | Gitea Documentation 2、具体操作 1)创建gitea数据库 2)检查是否安装 Git。要求 Git 版本 > 2.0。 如需升级git请参考以下链接:linux升级git版本-C…...
Spring(七)Spring Cloud----Feign、Zuul和Apollo
文章目录 一、服务调用Feign1.1 Feign的基本使用1.2 Feign的属性配置1.2.1 Ribbon配置1.2.2 Hystrix配置 二、网关服务Zuul2.1 Zuul的基本使用2.1.1 请求路由2.1.2 请求过滤 2.2 路由详解2.2.1 传统路由配置2.2.2 服务路由配置2.2.3 服务路由的默认规则2.2.4 自定义路由映射规则…...
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
选素数 小蓝有一个数 x,每次操作小蓝会选择一个小于 x 的素数 p,然后在 x 成为 p 的倍数前不断将 x 加 1,(如果 x 一开始就是 p 的倍数则 x 不变)。 小乔看到了小蓝进行了 2 次上述操作后得到的结果 n,他想…...
华为云环境下LVS/DR架构的故障诊断优化
本文作者:刘涛 文章目录 前言1.LVS/DR集群的问题2.华为云环境3.问题排查3.1 检查LVS/DR模式配置3.1.1 RS服务器3.1.2 DS服务器 3.2 继续分析抓包结果3.2.1 调整tcpdump抓包过滤条件3.2.2 client向集群VIP发包3.2.3 DS服务器arp消息 3.3 查看丢包3.3.1 监控DS和RS服…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用
中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
