kubernetes给service动态增加服务端口
根据kubernetes官方文档的说明,service的ports规则支持merge操作:
ports
ServicePort array
patch strategy: merge
patch merge key: portThe list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
Kubernetes API Reference Docs
我们进行以下实验:
一、创建service:
nginx-svc.yaml:
apiVersion: v1
kind: Service
metadata:name: nginx
spec:type: NodePortselector:app: nginxports:- protocol: TCPnodePort: 30080port: 8080targetPort: 80name: my80externalTrafficPolicy: Local
创建:
kubectl apply -f nginx-svc.yaml
查看svc定义:
[work@el7 minikube]$ kubectl get svc nginx -o yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"spec":{"externalTrafficPolicy":"Local","ports":[{"name":"my80","nodePort":30080,"port":8080,"protocol":"TCP","targetPort":80}],"selector":{"app":"nginx"},"type":"NodePort"}}
creationTimestamp: "2024-10-18T01:46:39Z"
name: nginx
namespace: default
resourceVersion: "104596"
uid: 5dad10d6-f60d-4870-948a-e009066bfef3
spec:
clusterIP: 10.108.12.23
clusterIPs:
- 10.108.12.23
externalTrafficPolicy: Local
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: my80
nodePort: 30080
port: 8080
protocol: TCP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
访问node的30080端口正常:
[work@el7 minikube]$ curl '192.168.49.3:30080'
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
二、启动压测脚本访问30080端口:
1、压测现有端口30080:
sh curl-press-30080.sh > 30080.log
并发访问30080端口,在日志记录返回的状态码。
2、压测即将新增的端口30081:
sh curl-press-30081.sh > 30081.log
并发访问30081端口,在日志记录返回的状态码。
3、创建到30080的长连接:
telnet 192.168.49.3 30080
观察长连接是否会断开。
三、patch给服务新增端口30081:
nginx-svc-patch.yaml:
spec:ports:- protocol: TCPnodePort: 30081port: 8081targetPort: 8001name: my8001
增加端口:
kubectl patch svc nginx --patch "`cat ./nginx-svc-patch.yaml`"
查看svc定义:
[work@el7 minikube]$ kubectl get svc nginx -o yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"nginx","namespace":"default"},"spec":{"externalTrafficPolicy":"Local","ports":[{"name":"my80","nodePort":30080,"port":8080,"protocol":"TCP","targetPort":80}],"selector":{"app":"nginx"},"type":"NodePort"}}
creationTimestamp: "2024-10-18T01:46:39Z"
name: nginx
namespace: default
resourceVersion: "104725"
uid: 5dad10d6-f60d-4870-948a-e009066bfef3
spec:
clusterIP: 10.108.12.23
clusterIPs:
- 10.108.12.23
externalTrafficPolicy: Local
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: my8001
nodePort: 30081
port: 8081
protocol: TCP
targetPort: 8001
- name: my80
nodePort: 30080
port: 8080
protocol: TCP
targetPort: 80
selector:
app: nginx
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
四、查看压测脚本和长连接的情况:
1、30081.log,在某个时间点http状态码由异常转为200。
2、30080.log,未出现非200状态码。
3、telnet长连接未断开。
五、增加后想删除怎么办?
找到新增端口在/spec/ports/里的索引位置,比如上面新增的my8001在第一个位置,索引为0,那删除操作如下:
kubectl patch svc nginx --type json --patch='[{"op":"remove","path":"/spec/ports/0"}]'
--end--
相关文章:
kubernetes给service动态增加服务端口
根据kubernetes官方文档的说明,service的ports规则支持merge操作: portsServicePort arraypatch strategy: mergepatch merge key: portThe list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-…...
如何将 html 渲染后的节点传递给后端?
问题 现在我有一个动态的 html 节点,我想用 vue 渲染后,传递给后端保存 思路 本来想给html的,发现样式是个问题 在一个是打印成pdf,然后上传,这个操作就变多了 最后的思路是通过 html2canvas 转化成 canvas 然后变成…...
ubuntu24 finalshell 无法连接ubuntu服务器, 客户端无法连接ubuntu, 无法远程连接ubuntu。
场景: 虚拟机新创建一个最小化的ubuntu服务器,使用finalshell连接服务,发现连接不上。 1. 查看防火墙ufw 是否开启,22端口是否放行 2. 查看是否安装openssh server, 并配置 我的问题是安装了openssh server 但是没有配置root可…...
牛客编程初学者入门训练——BC19 牛牛的对齐
BC19 牛牛的对齐 描述 读入 3 个整数,牛牛尝试以后两个数字占 8 个空格的宽度靠右对齐输出。 输入描述: 输入三个整数,用空格隔开。 输出描述: 输出 3 个整数以第二三个数字占 8 个空格靠右对齐输出 示例1 输入:…...
log file sync 内部执行过程
通常oracle的log file sync执行大致印象是等待cpu、log file parallel write、等待cpu,遇到问题主要考虑lgwr自适应模式参数要关闭、io性能、cpu瓶颈、归档数量和大小等,但是内部执行内容其实很多,尤其是有ADG了以后。 log file sync主要执行…...
【动手学深度学习】7.5 批量规范化(个人向笔记)
训练深层神经网络是十分困难的,特别是在较短的时间内使它们收敛更加棘手。而本节的批量规范化(batch normalization) 可以持续加速深层网络的收敛速度结合下节会介绍道德残差块,批量规范化使得研究人员能够训练100层以上的网络 1.…...
111 - exercise 5
一 public class Dummy {private static int a 3;private static int b 5;private static int c 7;public static void main(String... arguments) {int a 1, b 2;System.out.println("" a (a - b) c);} }这个Java程序中有两个a和b变量,一个是类…...
第二十五:IP网络层的数据,IP数据报
在数据链路层传输的数据叫帧,帧是数据链路层的传输单元。 那么在IP网络层的数据也有一个叫法IP数据报。 IP数据报 IP数据报首部 数据。 数据是传输层传递过来的报文;IP数据报首部格式如下: IP 报头的最小长度为 20 字节,上图…...
三菱FX3UPLC机械原点回归- DSZR/ZRN指令
机械原点回归用指令的种类 产生正转脉冲或者反转脉冲后,增减当前值寄存器的内容。可编程控制器的定位指令,可编程控制器的电源0FF后,当前值寄存器清零,因此上电后,请务必使机械位置和当前值寄存器的位置相吻合…...
网络通信与并发编程(三)粘包现象解决方案、socketserver实现并发
粘包现象解决方案、socketserver实现并发 文章目录 粘包现象解决方案、socketserver实现并发一、粘包现象解决方案1.发送数据大小2.发送数据信息 二、socketserver实现并发1.tcp版的socketserver并发2.udp版的socketserver并发 一、粘包现象解决方案 1.发送数据大小 有了上一…...
使用Uniapp开发微信小程序实现一个自定义的首页顶部轮播图效果?
在Uniapp中开发微信小程序,并实现自定义首页顶部轮播图的效果,可以通过使用Uniapp的组件如swiper和swiper-item来完成。这是一个常见的需求,下面是一个完整的示例代码,展示如何实现一个简单的自定义轮播图效果。 创建页面结构 首…...
软硬连接及动静态库
目录 一、理解文件系统在磁盘中的存储 (1)inode是什么 (2)硬链接 (3)软链接 二、动静态库 (1)静态库 二、动态库 三、在链接动静态库的时候如何不用指定路径 一、理解文件系统…...
vue3.0 + vite:中使用 sass
1、安装依赖 npm i sass sass-loader --save-dev 在项目的src/assets文件夹下新建style/index.scss 文件 2、在 vite.config.ts 中加: resolve: {alias: {: fileURLToPath(new URL(./src, import.meta.url))} }, css: {// 配置 SCSS 支持preprocessorOptions: {s…...
搭建`mongodb`副本集-开启权限认证 mongo:7.0.5
搭建mongodb副本集-开启权限认证 mongo:7.0.5 1.5.1、创建文件 创建配置文件保存目录和数据保存目录 mkdir -p /data/mongodb/{/conf,/data,/logs}生成和设置权限 这个文件一定要在一个服务里面生成然后复制到其它服务器,所有服务器的这个key一定是相同的。 op…...
智能工厂的软件设计 由“原力“篇引发的思考: 回顾、展望和本位 之2 修订稿之2
Q15、《“工厂”篇》其前的《“公共逻辑”》篇 提出的三个专门工厂(抽象/项目/产品)以及 再之前 讨论的各自的“专项运作逻辑”(辩证/数理/形式)之间协作的“整体概念运作”“概念模式”给出一个标准的“公共逻辑”的“语言模板”…...
2025选题推荐|基于SpringBoot的幼儿园智能管理与监控系统的设计与实现
作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...
mqtt客户端订阅一直重复连接?
文章 前言错误场景问题分析解决方案后言 前言 ✨✨ 他们是天生勇敢的开发者,我们创造bug,传播bug,毫不留情地消灭bug,在这个过程中我们创造了很多bug以供娱乐。 前端bug这里是博主总结的一些前端的bug以及解决方案,感兴…...
SegFormer: 一个基于Transformer的高效视觉图像分割算法
今天我分享一篇关于 Transformer 架构在图像视觉分割中的应用的文章,主题是 SegFormer。SegFormer 是一种新颖的语义分割方法,它结合了无位置编码的层次化 Transformer 编码器和轻量级 All-MLP 解码器,避免了传统方法中的复杂设计,…...
SoC芯片中Clock Gen和Reset Gen的时钟树综合
社区目前已经开设了下面列举的前四大数字后端实战课程,均为直播课,且均是小编本人亲自授课!遇到项目问题,都可以远程一对一指导解决具体问题。小编本人是一线12年后端经验的数字后端工程师。想找一线IC后端技术专家亲自带你做后端…...
学习资料:电子标签拣货技术
导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件主要介绍了电子标签拣货技术,…...
从显微图像到仿真模型:芯片逆向工程版图提取全流程实战解析
1. 芯片逆向工程入门:从显微图像开始 第一次接触芯片逆向工程时,我盯着显微镜下的芯片图像完全摸不着头脑。那些五彩斑斓的图层就像抽象画,直到导师告诉我这其实是现代集成电路的"身份证照片"。芯片逆向工程的核心,就是…...
工业显示屏选购要点,接口兼容与长期稳定测试
采购设备用串口屏这些年,我经常要和各种品牌打交道。今天不谈那些华丽的宣传语,就用实际工作中的观察,聊聊恒域威这个品牌的显示屏在适配方面的一些特点,希望能给同行一些参考。从硬件接口到工作环境选串口屏,首先要看…...
黑丝空姐-造相Z-Turbo极限测试:挑战复杂网络环境下的模型服务稳定性
黑丝空姐-造相Z-Turbo极限测试:挑战复杂网络环境下的模型服务稳定性 最近在折腾一个很有意思的项目,需要频繁调用一个部署在星图GPU平台上的AI图像生成服务,也就是大家可能听说过的“黑丝空姐-造相Z-Turbo”。这个模型生成特定风格人像的效果…...
【Matlab】MATLAB教程:微分方程参数估计(含拟合案例与系统参数辨识应用)
在工程实践与科学研究中,大量系统的动态特性可通过微分方程描述,而方程中往往包含未知参数(如反应速率常数、阻尼系数、增益系数等)。这些参数无法直接测量,需通过实验数据反推求解,这一过程称为微分方程参数估计。参数估计的核心是通过拟合实验数据与微分方程数值解,最…...
WeChatExporter数据备份安全指南:微信聊天记录完整导出解决方案
WeChatExporter数据备份安全指南:微信聊天记录完整导出解决方案 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 数据丢失的风险与应对 2023年某科技公司员工…...
DeepSeek-R1-Distill-Qwen-1.5B模型体验:数学80+分的1.5B参数小钢炮
DeepSeek-R1-Distill-Qwen-1.5B模型体验:数学80分的1.5B参数小钢炮 1. 模型概述与核心优势 DeepSeek-R1-Distill-Qwen-1.5B是一款专为边缘计算优化的高性能语言模型,通过知识蒸馏技术将大模型能力压缩到仅1.5B参数规模。这个"小钢炮"模型在保…...
终极FastAPI环境变量配置指南:从基础到高级的完整实现
终极FastAPI环境变量配置指南:从基础到高级的完整实现 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi 想要构建高效、可维护…...
Small插件化框架终极指南:从Bundle到Launcher的完整架构解析
Small插件化框架终极指南:从Bundle到Launcher的完整架构解析 【免费下载链接】Small A small framework to split app into small parts 项目地址: https://gitcode.com/gh_mirrors/smal/Small Small是一个轻量级的插件化框架,旨在将应用程序拆分…...
终极Reloaded-II完全指南:如何轻松打造你的游戏模组世界 [特殊字符]
终极Reloaded-II完全指南:如何轻松打造你的游戏模组世界 🎮 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 还在为复杂的…...
Qwen3-14B虚拟机开发环境:在VMware Ubuntu中部署与测试模型
Qwen3-14B虚拟机开发环境:在VMware Ubuntu中部署与测试模型 1. 前言:为什么选择虚拟机开发环境 在AI模型开发过程中,环境隔离是个常见需求。虚拟机提供了一个完美的沙盒环境,既能避免污染主机系统,又能方便地进行各种…...
