当前位置: 首页 > news >正文

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。

其核心作用是nginx网页服务器。

当客户端访问服务器不同的url时,

用不同的location提供服务。

在k8s之外,nginx的配置一般如下:

http {server {listen       80;server_name  localhost;location / {root   html;             # 网页文件根目录index  index.html index.htm;    #默认首页
#设置默认首页为index.html,当用户在浏览器地址栏中只写域名或IP,不说访问什么页面时,服务器会把默认首页index.html返回给用户}location ~ \.php$ {          # "~"匹配正则表达式,# 当用户访问以.php结尾的网页文件时,服务器按照此模块的定义,提供动态网页服务root           html;                 fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;include        fastcgi.conf;}}

在k8s平台,ingress调用nginx的服务,来实现不同的url对应不同的location.

用命令行创建ingress资源文件模版时,需要指定两个参数,

一个是--class=

另一个是--rule=

--class是控制器的类,表明ingress要调用哪个控制器的类作为ingress资源的控制器,

可选nginx和haproxy,一般用nginx

--rule是控制器提供服务的规则,

相当于平常写的location,

在k8s,用命令行创建ingress资源文件的模版时,

一般用--rule="/path=svc:port"来实现"location"的功能。

比如--rule="/hello=hello:3579"

当用户访问/hello路径时,ingress提供名为"hello"的服务,hello服务使3579端口

资源文件如下:

 

spec:ingressClassName: nginxrules:- http:paths:- pathType: Prefixpath: /hellobackend:service:name: helloport:number: 3579

path对应backend:

backend是service,也就是服务

服务名为hello,端口号为3579

定义一个服务名为hello,端口号为3579的后端服务。ingress就能连接到这个服务了。

资源文件如下,是一个nodeport类型的服务(service):

---
kind: Service
apiVersion: v1
metadata:name: hello
spec:type: NodePortselector:app: websiteports:- name: webprotocol: TCPport: 3579targetPort: http

nodeport是个端口转发类型的服务,

当服务请求到达一个计算节点时,

这个服务将被转发到一个后端端口,

图中的例子,后端端口是http.

而这个http实际上,

就是deployment管理的pod中的容器,所监听的端口名。

在deployment的资源文件中,

定义了一组以http为监听端口名的pod

资源文件如下:

---
kind: Deployment          
apiVersion: apps/v1       
metadata:                 name: deployabc          
spec:                     replicas: 3             selector:               matchLabels:          app: deploy-web     # deployment通过这个标签来确定哪个Pod由它来管理template:               # 定义用来创建 Pod 的模板,以下为 Pod 定义metadata:labels:app: deploy-webspec:containers:- name: apacheimage: myos:httpd       ports:       - name: http            # pod中,容器监听的端口名protocol: TCP         # pod中,容器监听的端口的协议containerPort: 80     # pod中,容器监听的端口号

那么服务请求就会到达pod中的容器。

其实步骤也可以概括为,

客户端---> ingress---> service---->depolyment

因为deployment的具体运作,前面的步骤是可以不用关心的。

deployment定义好其管理的pod的模版的详细情况,包括pod中的容器的信息。

根据这个pod的模版,deployment就可以实时的调整pod的数量

按照需求,来进行弹性管理。

来提供一个自动化管理的pod的集群。

相关文章:

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外,nginx的配置一般如下: http {server {listen 80;server_name localhost;location / {root html; …...

寄存器二分频电路

verilog代码 module div2_clk ( input clk, input rst,output clk_div);reg clk_div_r; assign clk_div clk_div_r;always(posedge clk) beginif(rst)beginclk_div_r < 1b0;endelsebeginclk_di…...

Kafka3.8.0+Centos7.9的安装参考

Kafka3.8.0Centos7.9的安装参考 环境准备 操作系统版本&#xff1a;centos7.9 用户/密码&#xff1a;root/1qazXSW 主机名 IP地址 安装软件 下载地址 k1 192.168.207.131 jdk1.8zookeeper3.9.2kafka_2.13-3.8.0efak-web-3.0.1 1&#xff09; Java Downloads | Oracle …...

Redis——持久化策略

Redis持久化 Redis的读写操作都是在内存上&#xff0c;所以Redis性能高。 但是当重启的时候&#xff0c;或者因为特殊情况导致Redis崩了&#xff0c;就可能导致数据的丢失。 所以Redis采取了持久化的机制&#xff0c;重启的时候利用之间持久化的文件实现数据的恢复。 Redis提…...

并查集LRU cache

并查集的定义 将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类问题的抽象数据类型称为并查集(unio…...

SpringCloud的学习(三),Resilience4j

CircuitBreaker断路器 “断路器”本身是一种开关装置&#xff0c;当某个服务单元发生故障之后&#xff0c;通过断路器的故障监控&#xff08;类似熔断保险丝&#xff09;&#xff0c;向调用方返回一个符合预期的、可处理的备选响应(FallBack)&#xff0c;而不是长时间的等待或…...

【计算机网络篇】计算机网络概述

本文主要介绍计算机网络第一章节的内容&#xff0c;文中的内容是我认为的重点内容&#xff0c;并非所有。参考的教材是谢希仁老师编著的《计算机网络》第8版。跟学视频课为河南科技大学郑瑞娟老师所讲计网。 文章目录 &#x1f3af;一.计算机网络的组成 ✨主要内容 1.边缘部…...

UDS诊断-面试题2

bilibili视频推荐&#xff1a; 车载测试面试题UDS诊断协议&#xff0c;你知道什么是UDS诊断&#xff1f;ECU是什么&#xff1f;刷写ECU_哔哩哔哩_bilibili 总结&#xff1a; 1.汽车诊断UDS含义&#xff1a; 一套统一的诊断服务命令。 2.具体操作流程&#xff1a; 使用电脑…...

ovirt error: Network not found: no network with matching name ‘vdsm-ovirtmgmt‘

Ovirt Node节点启动vm出现 error: Network not found: no network with matching name ‘vdsm-ovirtmgmt’ 错误的常见情况有以下几种&#xff1a;常见情况有以下几种&#xff1a; 网络配置丢失或未正确配置&#xff1a; ○ 在 oVirt 或 libvirt 环境中&#xff0c;如果网络配…...

2024百度的组织架构和产品分布

百度2024年的组织架构主要分为以下几个事业群组&#xff0c;每个事业群组负责不同的产品和服务&#xff1a; 一、智能云事业群组&#xff08;ACG&#xff09; 主要产品与服务&#xff1a; 百度云&#xff1a;提供云计算、存储、大数据处理等服务。AI云服务&#xff1a;包括语…...

Java中List、ArrayList与顺序表

List、ArrayList与顺序表 List什么是List常用方法介绍List的使用 ArrayList与顺序表线性表顺序表接口的实现 ArrayList简介ArrayList的使用ArrayList的构造ArrayList的常见操作ArrayList的遍历ArrayList的扩容机制 ArrayList的具体使用杨辉三角简单的洗牌算法 ArrayList的问题及…...

缓存技巧 · Spring Cache Caffeine 高性能缓存库

Caffeine 背景 Caffeine是一个高性能的Java缓存库&#xff0c;它基于Guava Cache进行了增强&#xff0c;提供了更加出色的缓存体验。Caffeine的主要特点包括&#xff1a; 高性能&#xff1a;Caffeine使用了Java 8最新的StampedLock乐观锁技术&#xff0c;极大地提高了缓存的并…...

RabbitMq中交换机(Exchange)、队列(Queue)和路由键(Routing Key)

RabbitMQ 是一个消息代理系统&#xff0c;使用交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;来管理消息的传递。它们分别起到不同的作用&#xff0c;构成了消息从生产者到消费者的传递路径。 以下是…...

解码 OpenAI 的 o1 系列大型语言模型

OpenAI 表示&#xff0c;其 Strawberry 项目已升级为新的大型语言模型 (LLM) 系列&#xff0c;公司将其命名为 OpenAI o1。 该公司表示&#xff0c;新系列模型还包括一个 o1-mini 版本&#xff0c;以提高成本效益&#xff0c;可根据其推理能力与最新的GPT-4o 模型进行区分。 …...

大小端字节序 和 内存高低地址顺序

目录 1. 大小端字节序 1.1 什么是大小端字节序&#xff1f; 1.2 为什么有大小端字节序? 1.3 习题&#xff1a;用程序结果判断大端小端 2. 各种易混淆的高低地址顺序 2.1 监视窗口的地址表示【计算机标准展示方式】 2.2 横向地址表示 2.3 一个字节 与 多个字节 的地址…...

Spring扩展点系列-MergedBeanDefinitionPostProcessor

文章目录 简介源码分析示例示例一&#xff1a;Spring中Autowire注解的依赖注入 简介 spring容器中Bean的生命周期内所有可扩展的点的调用顺序 扩展接口 实现接口ApplicationContextlnitializer initialize AbstractApplicationContext refreshe BeanDefinitionRegistryPos…...

Centos 7.9 使用 crontab 实现开机启动

[rootlocalhost ~]# crontab -e [rootlocalhost ~]# reboot # crontab -e reboot /path/to/my/program # reboot 表示重启开机的时候运行一次 reboot /test/hello.sh 参考&#xff1a; Linux crontab 命令 https://www.runoob.com/linux/linux-comm-crontab.html Run prog…...

基于微信的设备故障报修管理系统设计与实现+ssm论文源码调试讲解

2相关技术 2.1微信小程序 小程序是一种新的开放能力&#xff0c;开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播&#xff0c;同时具有出色的使用体验。尤其拥抱微信生态圈&#xff0c;让微信小程序更加的如虎添翼&#xff0c;发展迅猛。 2.2 MYSQL数据…...

yolo自动化项目实例解析(二)ui页面整理 1.78

我们在上一章整理main.py 的if __name__ __main__: 内容还留下面这一段&#xff0c; from PyQt5.QtWidgets import *from lanrenauto.moni.moni import *from PyQt5.QtGui import *app QApplication(sys.argv) # 初始化Qt应用ratio screen_width / 2560 # 分辨率比例# 设…...

PyQt / PySide + Pywin32 + ctypes 自定义标题栏窗口 + 完全还原 Windows 原生窗口边框特效项目

项目地址&#xff1a; GitHub - github201014/PyQt-NativeWindow: A class of window include nativeEvent, use PySide or PyQt and Pywin32 and ctypesA class of window include nativeEvent, use PySide or PyQt and Pywin32 and ctypes - github201014/PyQt-NativeWindow…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...