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

二十、服务发布Ingress

Ingress

Kubernetes使用了一个Ingress策略定义和一个具体提供转发服务的Ingress Controller,两者结合,实现了基于灵活Ingress策略定义的服务路由功能。如果是对Kubernetes集群外部的客户端提供服务,那么IngressController实现的是类似于边缘路由器(Edge Router)的功能。需要注意的是,Ingress只能以HTTP和HTTPS提供服务,对于使用其他网络协议的服务,可以通过设置Service的类型(type)为NodePort或LoadBalancer对集群外部的客户端提供服务。

Ingress为Kubernetes集群中的服务提供了入口,可以提供负载均衡、SSL终止和基于名称(域名)的虚拟主机、应用的灰度发布等功能,在生产环境中常用的Ingress控制器有Treafik、Nginx、HAProxy、Istio等。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


一、 Ingress Controller 安装

官方安装文档:https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal-clusters

两种方式:

A. 官方手册,用裸金属方式,helm安装。但是镜像地址需要修改image的地址。

自己部署管理的kubernetes,建议使用helm安装。

B. 使用提供的文件
本次采用第二种方式安装
在这里插入图片描述

开始安装

[root@k8s-master01 Pra]#kubectl create -f deploy-nginx.yaml
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
serviceaccount/ingress-nginx-admission created
role.rbac.authorization.k8s.io/ingress-nginx created
role.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
configmap/ingress-nginx-controller created
service/ingress-nginx-controller created
service/ingress-nginx-controller-admission created
deployment.apps/ingress-nginx-controller created
job.batch/ingress-nginx-admission-create created
job.batch/ingress-nginx-admission-patch created
ingressclass.networking.k8s.io/nginx created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created
[root@k8s-master01 Pra]#kubectl get po -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-mpsc9        0/1     Completed   0          64s
ingress-nginx-admission-patch-k4gpl         0/1     Completed   0          64s
ingress-nginx-controller-674f66cf96-hznf4   1/1     Running     0          64s# 看见controller 变成1/1就完成了。

二、使用域名发布 K8s 的服务

创建一个 web 服务:

# kubectl create deploy nginx --image=registry.cn-beijing.aliyuncs.com/dotbalo/nginx:1.15.12

暴露服务:

# kubectl expose deploy nginx --port 80 --name my-service

创建 Ingress:

[root@k8s-master01 Pra] # vim web-ingress.yaml
apiVersion: networking.k8s.io/v1   # k8s >= 1.22 必须使用 v1
kind: Ingress
metadata:name: nginx-ingress              # ingress的名称,要见名知意
spec:ingressClassName: nginx          # 关于ingress的描述,表述用的nginx的controller rules:                           # 下面的一些规则- host: nginx.test.com           # 基于域名的访问,域名配置,可以不写,匹配*   *.bar.comhttp:paths:                       # 相当于nginx的lacation配合,同一个host可以配置多个path- backend:service:name: my-service       # service的名称port:number: 80           # service的端口号path: /pathType: ImplementationSpecific# 带 - 的可以重复,意识是可以有多个

生成yaml文件:

[root@k8s-master01 Pra]#kubectl create -f web-ingress.yaml
ingress.networking.k8s.io/nginx-ingress created
[root@k8s-master01 Pra]#kubectl get ingress
NAME            CLASS   HOSTS            ADDRESS   PORTS   AGE
nginx-ingress   nginx   nginx.test.com             80      11s# 查看用的什么控制器,可以看见,此处用的nginx controller
[root@k8s-master01 Pra]#kubectl get ingressclasses
NAME    CONTROLLER             PARAMETERS   AGE
nginx   k8s.io/ingress-nginx   <none>       65m

查看结果

[root@k8s-master01 Pra]#kubectl get svc -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.96.56.221   <none>        80:30784/TCP,443:32602/TCP   22h
ingress-nginx-controller-admission   ClusterIP   10.96.103.51   <none>        443/TCP                      22h# 可以看见 ingress-nginx的命名空间内的ingress-nginx-controller service,端口指向80:30784

注意:不是ingress-nginx-controller的CLUSTER-IP地址,因为访问不到。也不是kubectl get ingress结果的地址。是任意一台宿主机的地址。因为ingress-nginx-controller的类型是NodePort。

ingress-nginx-controller的类型是NodePort
在这里插入图片描述

主机添加dns解析

任意一台宿主机地址 + nginx.test.com

在这里插入图片描述

web登录访问,正常

在这里插入图片描述


三、Ingress相关配置解释

1、pathType解释

1). Exact(精确匹配)

  • 定义

相关文章:

二十、服务发布Ingress

Ingress Kubernetes使用了一个Ingress策略定义和一个具体提供转发服务的Ingress Controller,两者结合,实现了基于灵活Ingress策略定义的服务路由功能。如果是对Kubernetes集群外部的客户端提供服务,那么IngressController实现的是类似于边缘路由器(Edge Router)的功能。需…...

计算机网络 八股青春版

什么是HTTP&#xff1f;HTTP和HTTPS的区别 HTTP HTTP是超文本运输协议&#xff0c;是一种无状态&#xff08;每次请求都是独立的&#xff09;的应用层协议。用于在客户端和服务器之间传输超文本数据&#xff08;如HTML文件&#xff09;。默认端口是80数据以明文形式传输&#…...

java全栈day18--Web后端实战(java操作数据库2)

前言&#xff1a;在上节入门程序当中我们见到了JDBC所提供的API&#xff0c;本节来详细说明一下。 一、JDBC--API详解 1.1DriverManager&#xff08;驱动管理器&#xff09; 回顾&#xff1a;作用获取连接&#xff0c;调用它里面的getConnection。即如下 作用 1.注册驱动解…...

electron-vite【实战】自定义标题栏【组件封装】(含异形标题栏,指定区域拖拽,窗口置顶,窗口最小化,窗口最大化,取消最大化,隐藏窗口到托盘等)

效果预览 技术要点 透明背景 src/main/index.ts 的 new BrowserWindow 中添加 transparent: true, // 设置窗口背景透明frame: false, // 隐藏窗口边框仅图标和标题部分可拖拽 仅图标和标题部分添加样式 drag .drag {-webkit-app-region: drag; }图标与标题栏的融合 标题栏的…...

vue2 项目webpack 4升5

项目背景 公司项目需要将进行微前端改造.主应用和子应用会需要共享依赖,考虑使用模块联邦进行依赖共享. 由于模块联邦要升级到webpack 5才能用,所以老项目要从webpack 4升级到webpack 5 实现思路 原来的项目用的是vue-cli 3,查了一下可以vue-cli 5用的就是webpack 5,所以可以…...

前端开发性能监控中的数据采集与性能调优方法

&#x1f31f; 前端开发性能监控中的数据采集与性能调优方法 &#x1f4d6; 前言 在现代 Web 应用中&#xff0c;性能是用户体验的关键因素之一。性能问题不仅会影响用户满意度&#xff0c;还可能导致业务损失。如何高效地监控前端性能并进行性能调优&#xff0c;成为每个开发…...

S32K324 Stack异常分析及解决方案

文章目录 前言正向排查尝试反向排查问题原因分析问题解决处理总结前言 在项目开发过程中,在一次软件变更时,调整了task优先级之后导致应用层软件中的float数据经常性的变为NAN,导致应用层功能失效。本文记录下这个bug的分析及解决过程。 正向排查尝试 由于问题复现的概率…...

[创业之路-202]:任正非管理华为的思想与毛泽东管理党、军队、国家的思想的相似性与差异性

目录 一、相似性 1、指导思想 2、管理策略 3、危机意识与自我否定 4、理想主义与奋斗精神 二、差异性 1、哲学基础与思想倾向 2、管理方法与策略 3、组织文化与价值观 一、相似性 任正非管理华为的思想与毛泽东管理党、军队、国家的思想在多个方面存在相似性。 以下…...

SAP PP ECN CSAP_MAT_BOM_MAINTAIN

刚开始的时候ECN总是加不上&#xff0c; 参考kimi给出的案例 点击链接查看和 Kimi 智能助手的对话 https://kimi.moonshot.cn/share/cth1ipmqvl7f04qkggdg 效果 加上了 FUNCTION ZPBOM_PLM2SAP. *"------------------------------------------------------------------…...

html中实用标签dl dt dd(有些小众的标签 但是很好用)

背景描述 html <dl> <dt> <dd>是一组合标签&#xff0c;他们与ol li、ul li标签很相似 但是他却是没有默认前缀并且有缩进的标签 使用方式与table表格的标签一致 使用方式 dt和dd是放于dl标签内&#xff0c;dt与dd处于dl下相同级。就是dt不能放入dd内&am…...

ONES 功能上新|ONES Copilot、ONES Wiki 新功能一览

ONES Copilot 可基于工作项的标题、描述、属性信息&#xff0c;对工作项产生的动态和评论生成总结。 针对不同类型的工作项&#xff0c;总结输出的内容有对应的侧重点。 应用场景&#xff1a; 在一些流程步骤复杂、上下游参与成员角色丰富的场景中&#xff0c;工作项动态往往会…...

实现Python将csv数据导入到Neo4j

目录 一、获取数据集 1.1 获取数据集 1.2 以“记事本”方式打开文件 1.3 另存为“UTF-8”格式文件 1.4 选择“是” 二、 打开Neo4j并运行 2.1 创建新的Neo4j数据库 2.2 分别设置数据库名和密码 ​编辑 2.3 启动Neo4j数据库 2.4 打开Neo4j数据库 2.5 运行查看该数据库…...

QML Rectangle组件

文章目录 前言主体**简单的矩形****渐变的矩形****带边框的矩形****圆角矩形****圆形 & 圆环** 总结 前言 在 QML 中&#xff0c;Rectangle 是一个常见且非常实用的元素&#xff0c;它允许开发者轻松创建矩形形状的图形。通过调整 Rectangle 的多种属性&#xff0c;我们不…...

uniapp开发app,cover-view不能隐藏,使用v-if,v-show都不行的解决办法

先上解决方案 在最后多写一个v-else <cover-view class"point-info" v-if"selectedPoint"><cover-view class"info-content"><cover-view class"info-item">。。。</cover-view><cover-view class"i…...

用adb命令给APP做压力测试,有什么不同?

压力测试 app做压力测试目的是模拟用户在使用软件时随意向软件发出指令&#xff0c;例如操作app的点击&#xff0c;滑动&#xff0c;返回等一系列随机事件&#xff0c;来检测app的承受能力 第一步&#xff1a;手机安装包需要待测的app 第二步&#xff1a;输入adb start-ser…...

netcore 集成Prometheus

一、安装包 <ItemGroup><PackageReference Include"prometheus-net" Version"8.2.1" /><PackageReference Include"prometheus-net.AspNetCore" Version"8.2.1" /> </ItemGroup> 二、添加代码 #region Pro…...

同城外卖系统源码扩展指南:搭建海外外卖APP平台详解

本篇文章&#xff0c;笔者将探讨如何基于同城外卖系统源码&#xff0c;搭建适合不同国家的海外外卖APP平台&#xff0c;涵盖多语言支持、支付接口对接、本地化适配等方面的实践经验和技术要点。 一、确定目标市场与用户需求 在开发海外外卖APP平台之前&#xff0c;首先需要深…...

JavaScript 中常见内置对象的知识点及示例总结

一、String&#xff08;字符串&#xff09;对象 知识点&#xff1a; 用于处理文本数据&#xff0c;它有许多内置的属性和方法来操作字符串&#xff0c;比如获取字符串长度、提取子字符串、替换字符等。字符串在 JavaScript 中是不可变的&#xff0c;即一旦创建&#xff0c;就不…...

CSSmodule的作用是什么

CSS Modules的作用主要体现在以下几个方面&#xff1a; 1. 解决全局样式污染问题 在传统的CSS管理方式中&#xff0c;样式定义通常是全局的&#xff0c;这很容易导致全局样式污染。当多个组件或页面共享同一个样式时&#xff0c;可能会出现样式冲突和覆盖的情况&#xff0c;从…...

python\shell\c++语法对比

语法区别举例&#xff1a; itempythonshellc变量定义a 10a10int a 10数组定义arr[1, add, 3]arr(1 a hello) declare -A arr([a]1 [b]2)int arr[] {1, 2, 3}if条件判断 if xxx: xxx elif xxx: xxx else: xxx if [ expressions ];then xxx e…...

从选型到设计:手把手教你根据7系列FPGA数据手册做项目选型(以Kintex-7为例)

从选型到设计&#xff1a;手把手教你根据7系列FPGA数据手册做项目选型&#xff08;以Kintex-7为例&#xff09; 在硬件系统设计中&#xff0c;FPGA选型往往决定着项目的成败。面对Xilinx 7系列丰富的产品线&#xff0c;工程师需要像外科医生选择手术器械一样精准——既要考虑当…...

STM32F103驱动TM1650数码管:从硬件连接到完整代码的保姆级避坑指南

STM32F103驱动TM1650数码管&#xff1a;从硬件连接到完整代码的保姆级避坑指南 第一次接触STM32F103和TM1650数码管模块时&#xff0c;我像大多数嵌入式新手一样&#xff0c;以为按照教程连接几根线、复制几段代码就能轻松点亮数码管。直到实际动手才发现&#xff0c;从硬件连接…...

避坑指南:在VisDrone上训练YOLOv7时,我遇到的过拟合与数据增强那些坑

VisDroneYOLOv7实战避坑手册&#xff1a;从数据增强到过拟合的深度调优 第一次在VisDrone数据集上跑YOLOv7时&#xff0c;我盯着验证集mAP0.5从0.4缓慢爬到0.5就停滞不前&#xff0c;而训练集指标却一路飙升到0.9——典型的过拟合现象。更讽刺的是&#xff0c;当我尝试将图片切…...

Perplexity地理信息查询性能断崖式下跌?20年GIS架构师曝出隐藏瓶颈:HTTP/2连接复用失效+TLS 1.3握手阻塞链

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity地理信息查询性能断崖式下跌现象全景透视 近期多个生产环境观测到&#xff0c;Perplexity模型在处理含经纬度坐标、行政区划嵌套&#xff08;如“北京市朝阳区三里屯街道附近500米内POI”&#xff…...

FFmpeg硬件加速全解析:从原理到实战的跨平台优化指南

1. 项目概述&#xff1a;为什么我们需要深入理解FFmpeg硬件加速&#xff1f;在音视频处理的世界里&#xff0c;FFmpeg无疑是那把无所不能的“瑞士军刀”。无论是转码、剪辑、流媒体还是滤镜处理&#xff0c;它几乎无所不能。然而&#xff0c;随着4K、8K乃至更高分辨率内容的普及…...

【计算机组成原理】无符号整数乘法原理(基于移位累加,零基础看懂CPU乘法)

前言在数字电路与计算机组成原理中&#xff0c;加法是最基础的运算&#xff0c;而乘法是高频常用运算。很多初学者疑惑&#xff1a;计算机没有专门的乘法口诀&#xff0c;到底怎么实现二进制乘法&#xff1f;而在数字运算中&#xff0c;乘法是比加法更复杂、但底层逻辑完全依托…...

收藏干货:MySQL/PG/人大金仓/达梦语法差异对照表

&#x1f4cc; 专栏&#xff1a;国产数据库信创实战&#x1f516; 标签&#xff1a; #数据库语法差异 #MySQL转人大金仓 #MySQL转达梦 #PG语法适配 #信创数据库迁移 #SQL兼容改造 #国产数据库适配 #SpringBoot3数据库适配&#x1f4dd; 文章摘要信创国产化迁移过程中&#xff0…...

从2023蓝桥杯JavaB组省赛真题看算法思维与实战技巧

1. 从真题看算法思维培养 去年参加蓝桥杯省赛时&#xff0c;我对着那道阶乘求和题足足愣了十分钟。题目要求计算1!到202320232023!的和的最后9位数字&#xff0c;我第一反应就是暴力计算每个阶乘值再累加。结果刚算到20!就发现long类型溢出了&#xff0c;当时整个人都懵了。后来…...

Google I/O 2026 推出 Antigravity SDK:本地构建 AI Agent,灵活定制功能

Antigravity SDK 登场当开发者需要将 AI 能力嵌入自有应用时&#xff0c;常见做法是通过 API 调用远程 Agent 服务&#xff0c;但这种方式存在延迟高、定制性差、依赖网络等问题。据悉&#xff0c;Google 在 I/O 2026 大会上给出了另一种解法 ---- Antigravity SDK&#xff0c;…...

OpCore-Simplify:如何30分钟完成专业级黑苹果配置

OpCore-Simplify&#xff1a;如何30分钟完成专业级黑苹果配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而烦恼吗&#x…...