kubernets基础-ingress详细介绍
文章目录
- 什么是Ingress
- Ingress详细说明
- Ingress示例
- Ingress控制器
- Ingress控制器的工作原理
- Ingress控制器的特点
- 常见的Ingress控制器
- Ingress关联Ingress控制器
- 一、Ingress资源对象
- 二、Ingress控制器
- 三、Ingress与Ingress控制器的关联方式
- 四、注意事项
- 多实例部署
- 一、Ingress多实例配置概述
- 二、配置关键启动参数
- 三、创建IngressClass资源
- 四、创建Ingress资源并指定IngressClass
- 五、验证配置
- 六、注意事项
- 集群外部访问Ingress
- 一、部署Ingress控制器
- 二、创建Ingress资源
- 三、配置域名解析
- 四、验证访问
- 示例
- Ingress访问service
什么是Ingress
Ingress是Kubernetes中一种对集群中服务的外部访问进行管理的API对象,它典型的访问方式是HTTP和HTTPS。Ingress可以提供负载均衡、SSL和基于名称的虚拟托管等功能。不过,要实现Ingress的功能,必须
部署一个Ingress控制器
(如ingress-nginx)来满足Ingress资源的要求,仅创建Ingress资源本身是无效的。
Ingress公开了从集群外部到集群内部服务的HTTP和HTTPS路由,这些路由由Ingress资源上定义的规则来控制。可以将Ingress配置为提供服务外部可访问的URL、负载均衡流量、SSL/TLS,以及基于名称的虚拟主机等功能。
以下是Ingress的详细说明及示例:
Ingress详细说明
-
工作原理:
Ingress控制器通常负责通过负载均衡器来实现Ingress,它也可以配置边缘路由器或其他前端来帮助处理流量。Ingress不会公开任意端口或协议,如果需要将HTTP和HTTPS以外的服务公开到Internet,通常使用Service.Type=NodePort或Service.Type=LoadBalancer类型的服务。 -
功能特点:
- 负载均衡:Ingress可以根据定义的规则将外部流量分发到集群内部的不同服务上。
- SSL/TLS:Ingress可以配置SSL/TLS证书,为外部访问提供加密的HTTPS连接。
- 基于名称的虚拟托管:Ingress支持将不同的域名或URL路径映射到集群内部的不同服务上,实现基于名称的虚拟托管。
-
Ingress规则:
Ingress规则定义了如何将外部流量路由到集群内部的服务。规则可以基于域名、URL路径、请求头等信息进行匹配,并将匹配的流量转发到指定的后端服务。
Ingress示例
以下是一个使用Nginx Ingress控制器的Ingress资源示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: my-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:rules:- host: www.example.comhttp:paths:- path: /service1(/|$)(.*)pathType: Prefixbackend:service:name: service1port:number: 80- path: /service2(/|$)(.*)pathType: Prefixbackend:service:name: service2port:number: 80
在这个示例中,定义了一个名为my-ingress
的Ingress资源,它有两个规则:
- 当访问
www.example.com/service1
时,流量将被转发到名为service1
的后端服务上。 - 当访问
www.example.com/service2
时,流量将被转发到名为service2
的后端服务上。
注意:nginx.ingress.kubernetes.io/rewrite-target
注解用于重写目标URL,/$2
表示将匹配到的第二个捕获组作为重写后的目标URL。在这个示例中,由于路径中使用了正则表达式捕获组,因此需要进行重写以确保请求能够正确转发到后端服务。
另外,pathType
字段指定了路径的匹配类型,这里使用了Prefix
类型,表示基于路径前缀进行匹配。
这个示例展示了如何使用Ingress资源来定义外部流量到集群内部服务的路由规则,并实现了基于域名的虚拟托管。
Ingress控制器
Ingress控制器
是Kubernetes集群中的一个组件,它负责实现Ingress资源定义的路由规则
。Ingress资源
本身只是定义了一系列规则,指明了外部流量如何被转发到集群内的服务上,但实际
的流量转发
工作是由Ingress控制器
来完成的。
Ingress控制器的工作原理
-
监听Ingress资源变化:Ingress控制器通过Kubernetes的API服务器监听集群中Ingress资源的变化。当Ingress资源被创建、更新或删除时,Ingress控制器会感知到这些变化。
-
解析Ingress规则:Ingress控制器读取Ingress资源中定义的规则,这些规则通常包括域名、路径和后端服务等信息。Ingress控制器会根据这些规则生成相应的配置。
-
生成配置并应用:Ingress控制器根据解析后的规则生成配置,这些配置可能是Nginx、HAProxy或其他反向代理软件的配置文件。然后,Ingress控制器将这些配置应用到其管理的反向代理实例上。
-
流量转发:当外部流量到达Ingress控制器时,它会根据生成的配置将流量转发到相应的后端服务上。这通常涉及HTTP或HTTPS协议的解析、路由决策和负载均衡等过程。
Ingress控制器的特点
-
可扩展性:Ingress控制器可以支持多种反向代理软件,如Nginx、HAProxy等,从而提供了灵活的配置选项和性能优化空间。
-
动态更新:由于Ingress控制器通过Kubernetes的API服务器监听Ingress资源的变化,因此它可以动态地更新配置而无需重启服务。
-
安全性:Ingress控制器可以配置SSL/TLS证书,为外部流量提供加密传输。此外,它还可以实现身份认证和授权等功能,增强集群的安全性。
-
高可用性:Ingress控制器通常部署为多个副本,以确保在单个节点故障时仍能继续提供服务。
常见的Ingress控制器
-
Nginx Ingress Controller:这是最常用的Ingress控制器之一,它基于Nginx反向代理软件构建,提供了高性能和丰富的配置选项。
-
Traefik Ingress Controller:Traefik是一个易于使用的Ingress控制器,它支持多种反向代理后端,并提供了丰富的监控和日志功能。
-
HAProxy Ingress Controller:基于HAProxy构建的Ingress控制器,提供了高性能和可靠性。
-
Istio Ingress Gateway:Istio是一个服务网格解决方案,它提供了自己的Ingress Gateway组件,用于处理外部流量并将其转发到集群内的服务上。
总的来说,Ingress控制器是Kubernetes集群中处理外部流量访问的关键组件之一。通过配置Ingress资源和Ingress控制器,可以轻松地实现复杂的路由规则和流量管理策略。
Ingress关联Ingress控制器
在Kubernetes集群中,Ingress与Ingress控制器的关联是通过Ingress资源对象与Ingress控制器之间的协作实现的。以下详细解释Ingress如何关联Ingress控制器:
一、Ingress资源对象
Ingress资源对象是Kubernetes中的一个API对象,它定义了外部用户如何访问集群内部运行的服务。Ingress资源对象通常包含以下关键信息:
- 规则(Rules):指定了哪些域名和路径应该被转发到哪些后端服务上。
- 后端服务(Backend Services):定义了Ingress规则所指向的具体服务,通常包括服务名称和端口号。
二、Ingress控制器
Ingress控制器是一个运行在Kubernetes集群中的组件,它负责监听Ingress资源对象的变化,并根据这些变化动态地更新其内部的配置,以实现流量的路由和转发。Ingress控制器通常具备以下功能:
- 监听Ingress资源变化:通过Kubernetes的API服务器实时感知Ingress资源对象的变化。
- 解析Ingress规则:读取Ingress资源对象中定义的规则,并解析为可执行的配置。
- 流量转发:根据解析后的规则,将外部流量转发到相应的后端服务上。
三、Ingress与Ingress控制器的关联方式
- 定义Ingress资源对象:
- 在Kubernetes集群中,首先需要定义一个Ingress资源对象,该对象包含了外部访问集群内部服务的规则。
- 可以通过YAML文件或其他方式定义Ingress资源对象,并使用
kubectl apply
命令将其应用到集群中。
- 部署Ingress控制器:
- 在Kubernetes集群中部署Ingress控制器,这通常是通过部署一个Pod或DaemonSet来实现的。
- Ingress控制器会监听集群中Ingress资源对象的变化,并根据这些变化动态地更新其配置。
- 自动关联:
- 一旦Ingress资源对象和Ingress控制器都被正确部署到Kubernetes集群中,它们之间就会自动建立关联。
- Ingress控制器会根据Ingress资源对象中定义的规则,将外部流量转发到相应的后端服务上。
- 验证配置:
- 为了确保Ingress和Ingress控制器之间的关联正确无误,可以通过查看Ingress控制器的日志或使用
kubectl get ingress
命令来验证Ingress资源对象的状态和配置。
- 为了确保Ingress和Ingress控制器之间的关联正确无误,可以通过查看Ingress控制器的日志或使用
四、注意事项
- Ingress控制器的实现和功能可能会因所使用的具体控制器(如Nginx Ingress Controller、Traefik Ingress Controller等)而有所不同。因此,在部署和使用Ingress时,需要参考相应控制器的文档和配置指南。
- Ingress控制器通常需要配置为使用NodePort、LoadBalancer或IngressClass等类型的服务来暴露外部访问的入口点。这取决于集群的部署环境和网络配置。
综上所述,Ingress与Ingress控制器的关联是通过在Kubernetes集群中定义Ingress资源对象并部署Ingress控制器来实现的。它们之间的协作使得外部用户可以通过定义的规则和路径访问集群内部的服务。
多实例部署
在Kubernetes(K8s)集群中配置Ingress多实例,通常是为了实现更复杂的路由规则、负载均衡或提供不同的服务访问入口。以下是在K8s中配置Ingress多实例的详细步骤:
一、Ingress多实例配置概述
Ingress是K8s中用于管理外部访问集群内部服务的资源对象。通过Ingress,可以配置基于主机名和路径的路由规则,将外部请求定向到集群内部的服务。为了实现Ingress多实例,需要为每个实例配置唯一的标识,并确保它们不会相互干扰。
二、配置关键启动参数
-
不同命名空间下的多实例:
- 如果要在不同的命名空间下部署多个Ingress实例,可以通过设置
controller-class
和ingress-class
参数来区分它们。这些参数在Ingress控制器的启动参数中指定,并确保它们的唯一性。 - 示例配置(YAML格式):
args:- /nginx-ingress-controller- --controller-class=k8s.io/prod-internal # 控制器类,必须唯一- --ingress-class=prod-internal # ingress类,必须唯一
- 如果要在不同的命名空间下部署多个Ingress实例,可以通过设置
-
相同命名空间下的多实例:
- 如果需要在同一个命名空间下部署多个Ingress实例,除了设置
controller-class
和ingress-class
参数外,还需要设置election-id
参数来确保选举的唯一性。 - 示例配置(YAML格式):
args:- /nginx-ingress-controller- --election-id=ingress-controller-leader-prod-internal # 选举ID,必须唯一- --controller-class=k8s.io/prod-internal # 控制器类,必须唯一- --ingress-class=prod-internal # ingress类,必须唯一
- 如果需要在同一个命名空间下部署多个Ingress实例,除了设置
三、创建IngressClass资源
为每个Ingress实例创建一个唯一的IngressClass资源。IngressClass资源定义了Ingress控制器的相关信息,包括控制器名称和参数等。
示例配置(YAML格式):
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:name: prod-internal
spec:controller: k8s.io/prod-internal
四、创建Ingress资源并指定IngressClass
在创建Ingress资源时,通过ingressClassName
字段指定要使用的IngressClass。这样,Ingress资源就会由对应的Ingress控制器管理。
示例配置(YAML格式):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: testnamespace: prod
spec:ingressClassName: prod-internalrules:- host: "foo.bar.com"http:paths:- path: /testpathType: Prefixbackend:service:name: xwd-socialport:number: 80
五、验证配置
-
检查Ingress和IngressClass:
- 使用
kubectl get ingress
和kubectl get ingressclass
命令检查Ingress和IngressClass资源是否已正确创建。
- 使用
-
访问测试:
- 根据配置的域名和路径访问Ingress服务,验证请求是否正确路由到后端服务。
六、注意事项
- 唯一性:确保每个Ingress实例的
controller-class
、ingress-class
和(在相同命名空间下)election-id
参数是唯一的,以避免冲突。 - 资源隔离:如果可能的话,将不同的Ingress实例部署在不同的命名空间中,以减少配置上的复杂性。
- 监控和日志:为Ingress控制器配置监控和日志记录,以便及时发现和解决问题。
通过以上步骤,您可以在K8s集群中成功配置多个Ingress实例,实现更复杂的路由规则和负载均衡策略。
集群外部访问Ingress
在Kubernetes集群中,Ingress提供了一种管理外部访问流量的方式,允许将外部HTTP和HTTPS流量路由到集群内部的服务。要使集群外部能够访问Ingress,通常需要按照以下步骤进行配置:
一、部署Ingress控制器
Ingress控制器
是实际
实现Ingress资源定义的组件,它负责监听Ingress资源的变化,并根据定义更新负载均衡器或反向代理服务器的配置。常见的Ingress控制器包括Nginx Ingress Controller、Traefik等。
- 选择Ingress控制器:根据集群环境和需求选择合适的Ingress控制器。
- 安装Ingress控制器:按照Ingress控制器的官方文档进行安装。通常,这包括下载相应的YAML文件并应用到Kubernetes集群中。
二、创建Ingress资源
Ingress资源定义了从集群外部到内部服务的路由规则。
- 定义Ingress规则:在Ingress资源中指定想要暴露的服务、路由规则、TLS配置等。
- 应用Ingress资源:将定义好的Ingress资源应用到Kubernetes集群中。
三、配置域名解析
为了使外部用户能够通过域名访问Ingress,需要在域名解析服务商
处配置解析记录
,将域名指向集群的Ingress IP地址。这通常涉及以下步骤:
- 获取Ingress IP地址:在Kubernetes集群中,Ingress控制器通常会创建一个负载均衡器,并分配一个IP地址。需要获取这个IP地址。
- 配置域名解析:在域名解析服务商的网站上,为域名添加一条A记录或CNAME记录,将域名指向Ingress IP地址。
四、验证访问
完成以上步骤后,可以通过访问配置的域名来验证Ingress是否按预期工作。如果一切正常,应该能够访问到集群内部的服务。
示例
以下是一个使用Nginx Ingress控制器和Ingress资源的示例:
-
部署Nginx Ingress控制器:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-x.y.z/deploy/static/provider/cloud/deploy.yaml
其中
x.y.z
是Nginx Ingress控制器的版本号,需要根据实际情况进行替换。 -
创建Ingress资源:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: my-ingress spec:rules:- host: myapp.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: my-serviceport:number: 80
在这个示例中,定义了一个名为
my-ingress
的Ingress资源,它将myapp.example.com
域名的流量路由到名为my-service
的后端服务上。 -
配置域名解析:在域名解析服务商处,为
myapp.example.com
添加一条A记录,将域名指向Ingress控制器的IP地址。 -
验证访问:在浏览器中访问
myapp.example.com
,应该能够访问到my-service
服务提供的内容。
通过以上步骤,集群外部的用户就可以通过域名访问到Kubernetes集群内部的服务了。
Ingress访问service
Ingress访问Service的流程
当外部用户通过域名访问Ingress时,Ingress控制器的工作流程如下:
- 接收请求:Ingress控制器监听在指定的端口(通常是80和443)上,接收来自外部的HTTP和HTTPS请求。
- 匹配规则:Ingress控制器根据Ingress资源中定义的规则,匹配请求的域名和路径。
- 转发请求:一旦匹配到规则,Ingress控制器会将请求转发到对应的后端Service上。这通常涉及将请求转发到Service的ClusterIP,然后由Service将请求进一步分发到其背后的Pod上。
- 处理响应:Pod处理请求并生成响应,响应通过Service、Ingress控制器返回给外部用户。
相关文章:
kubernets基础-ingress详细介绍
文章目录 什么是IngressIngress详细说明Ingress示例 Ingress控制器Ingress控制器的工作原理Ingress控制器的特点常见的Ingress控制器 Ingress关联Ingress控制器一、Ingress资源对象二、Ingress控制器三、Ingress与Ingress控制器的关联方式四、注意事项 多实例部署一、Ingress多…...
jenkins部署Maven和NodeJS项目
在 Java 项目开发中,项目的编译、测试、打包等是比较繁琐的,属于重复劳动的工作,浪费人力和时间成本。以往开发项目时,程序员往往需要花较多的精力在引用 jar 包搭建项目环境上,跨部门甚至跨人员之间的项目结构都有可能…...
在unity资源中发现无效引用
本文主要解决在不打开unity的情况下搜索出无效引用的资源的方法 1. 概述 一般只要遍历一下目录里所有资源,判空一下就好了但有些情况下,不希望打开unity, 尤其希望是在资源整合时,想更快验证资源的合法性, 这对合并提交及出包验证时,都要较大的需求 2. 简单的验证方法 简单来…...
C#知识|基于反射和接口实现抽象工厂设计模式
哈喽,你好啊,我是雷工! 01 应用场景 在项目的多数据库支持上、业务的多算法封装、以及各种变化的业务中; 02 抽象工厂组成 抽象工厂包括抽象产品(即业务接口,可以通过抽象类或抽象接口设计)…...
【分布式微服务云原生】gRPC vs RPC:深入探索远程过程调用的现代与经典
摘要 在分布式系统的世界里,gRPC和RPC是两个耳熟能详的术语,但它们之间有何区别和联系?本文将深入探讨gRPC和RPC的概念、关键特性、以及它们在现代软件开发中的应用。你将了解到gRPC如何作为RPC的一种实现,提供高性能的跨语言远程…...
听说这是MATLAB基础?
MATLAB(矩阵实验室)是一个强大的高性能计算环境和编程语言,广泛应用于数学计算、算法开发、数据分析、可视化以及模拟等多个领域。以下是MATLAB的一些基础知识,涵盖其功能、语法、基本操作等方面。 1. MATLAB环境 工作区…...
【CSS/HTML】圣杯布局和双飞翼布局实现两侧宽度固定,中间宽度自适应及其他扩展实现
前沿简介 圣杯布局和双飞翼布局是前端重要的布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。 圣杯布局来源于文章In Search of the Holy Grail,双飞翼布局来源于淘宝UED。 两者的实现方式有差异,但是都…...
数据流和数据流处理技术
一数据流 首先明确数据流概念:数据流是连续不断生成的、快速变化的无界数据序列 数据流类型: 数据流大致可以分为四种类型 1.连续型数据流:不断地产生数据,数据稳定速度输入系统。 2.突发型数据流:在某特定时间或…...
(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案
系列文章目录 文章目录 系列文章目录一、(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案1.资料 一、(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案 1.资料…...
解决TikTok无网络连接问题解析
随着社交媒体的快速发展,TikTok已成为全球用户最喜欢的短视频平台之一,吸引了数以亿计的用户。然而,在享受这个平台时,用户经常会遇到无网络连接的问题,这不仅影响观看体验,还可能导致无法上传内容或参与社…...
k8s中,ingress的实现原理,及其架构。
图片来源:自己画的 图片来源:k8s官网 首先,什么是ingress? 是服务还是控制器? 都不精确 ingress是一个api资源 service和deployment也是api资源。 这几个相互协作,组建成一个对外提供服务的架构。 ingress提供的…...
【数据结构强化】应用题打卡
应用题打卡 数组的应用 对称矩阵的压缩存储 注意: 1. 2.上三角的行优先存储及下三角的列优先存储与数组的下表对应 上/下三角矩阵的压缩存储 注意: 上/下三角压缩存储是将0元素统一压缩存储,而不是将对角线元素统一压缩存储 三对角矩阵的…...
解决 MySQL 服务无法启动:failed to restart mysql.service: unit not found
目录 前言1. 问题描述2. 问题分析3. 解决步骤3.1 检查 MySQL 服务文件3.2 备份旧的服务文件3.3 启动 MySQL 服务3.4 验证服务状态 4. 总结结语 前言 在日常使用 MySQL 数据库时,有时候可能会遇到服务无法正常启动的问题。这类问题通常出现在系统更新或者服务配置文…...
Dubbo和Http的调用有什么区别
背景 我们在项目开发中,需要进行调用外部接口时,往往使用Dubbo和Http方式都能实现远程调用。那么他们在使用上,有什么区别呢? 定位不同 一个是分布式环境下的框架,一个是通信协议。 Dubbo:是一种高性能的…...
ARM 架构、cpu
一、ARM的架构 ARM是一种基于精简指令集(RISC)的处理器架构. 1、ARM芯片特点 ARM芯片的主要特点有以下几点: 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率…...
【React】入门Day03 —— Redux 与 React Router 核心概念及应用实例详解
1. Redux 介绍 // 创建一个简单的Redux store const { createStore } Redux;// reducer函数 function counterReducer(state { count: 0 }, action) {switch (action.type) {case INCREMENT:return { count: state.count 1 };case DECREMENT:return { count: state.count -…...
u2net网络模型训练自己数据集
单分类 下载项目源码 项目源码 准备数据集 将json转为mask json_to_dataset.py import cv2 import json import numpy as np import os import sys import globdef func(file):with open(file, moder, encoding"utf-8") as f:configs json.load(f)shapes configs…...
登录功能开发 P167重点
会话技术: cookie jwt令牌会话技术: jwt生成: Claims:jwt中的第二部分 过滤器: 拦截器: 前端无法识别controller方法,因此存在Dispa什么的...
数据架构图:从数据源到数据消费的全面展示
在这篇文章中,我们将探讨如何通过架构图来展示数据的整个生命周期,从数据源到数据消费。下面是一个使用Mermaid格式的示例数据架构图,展示了数据从源到消费的流动、处理和存储过程。 数据架构图示例 说明 数据源:分为内部数据源&…...
useEffect 与 useLayoutEffect 的区别
useEffect 与 useLayoutEffect 的区别 useEffect和useLayoutEffect是处理副作用的React钩子函数,有以下区别1. 执行时机不同2. 对性能影响不同3. 对渲染的影响不同:4. 使用场景不同 使用建议 useEffect和useLayoutEffect是处理副作用的React钩子函数&…...
OPENCV判断图像中目标物位置及多目标物聚类
文章目录 在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再…...
分布式理论:拜占庭将军问题
分布式理论:拜占庭将军问题 介绍拜占庭将军的故事将军的难题 解决方案口信消息型拜占庭问题之解流程总结 签名消息型拜占庭问题之解 总结 介绍 拜占庭将军问题是对分布式共识问题的一种情景化描述,由兰伯特于1082首次发表《The Byzantine Generals Prob…...
从零开始Ubuntu24.04上Docker构建自动化部署(三)Docker安装Nginx
安装nginx sudo docker pull nginx 启动nginx 宿主机创建目录 sudo mkdir -p /home/nginx/{conf,conf.d,html,logs} 先启动nginx sudo docker run -d --name mynginx -p 80:80 nginx 宿主机上拷贝docker上nginx服务上文件到本地目录 sudo docker cp mynginx:/etc/nginx/ngin…...
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
作者:胡志广(独鳌) 背景 Serverless 应用引擎 SAE 事件中心主要面向早期的 SAE 控制台只有针对于应用维度的事件,这个事件是 K8s 原生的事件,其实绝大多数的用户并不会关心,同时也可能看不懂。而事件中心,是希望能够…...
人口普查管理系统基于VUE+SpringBoot+Spring+SpringMVC+MyBatis开发设计与实现
目录 1. 系统概述 2. 系统架构设计 3. 技术实现细节 3.1 前端实现 3.2 后端实现 3.3 数据库设计 4. 安全性设计 5. 效果展示 编辑编辑 6. 测试与部署 7. 示例代码 8. 结论与展望 一个基于 Vue Spring Boot Spring Spring MVC MyBatis 的人口普查管理…...
使用VBA快速将文本转换为Word表格
Word提供了一个强大的文本转表格的功能,结合VBA可以实现文本快速转换表格。 示例文档如下所示。 现在需要将上述文档内容转换为如下格式的表格,表格内容的起始标志为。 示例代码如下。 Sub SearchTab()Application.DefaultTableSeparator "*&quo…...
力扣题解1870
这道题是一个典型的算法题,涉及计算在限制的时间内列车速度的最小值。这是一个优化问题,通常需要使用二分查找来求解。 题目描述(中等) 准时到达的列车最小时速 给你一个浮点数 hour ,表示你到达办公室可用的总通勤时…...
D3.js数据可视化基础——基于Notepad++、IDEA前端开发
实验:D3.js数据可视化基础 1、实验名称 D3数据可视化基础 2、实验目的 熟悉D3数据可视化的使用方法。 3、实验原理 D3 的全称是(Data-Driven Documents),是一个被数据驱动的文档,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。本次实…...
在Robot Framework中Run Keyword If的用法
基本用法使用 ELSE使用 ELSE IF使用内置变量使用Python表达式本文永久更新地址: 在Robot Framework中,Run Keyword If 是一个条件执行的关键字,它允许根据某个条件来决定是否执行某个关键字。下面是 Run Keyword If 的基本用法: Run Keyword…...
虚拟机ip突然看不了了
打印大致如下: 解决办法 如果您发现虚拟机的IP地址与主机不在同一网段,可以采取的措施之一是调整网络设置。将虚拟机的网络模式更改为桥接模式,这样它就会获得与主机相同的IP地址,从而处于同一网段。或者,您可以使用…...
东莞市做网站/外链购买
批量创建100张表#在工作中,经常会有以时间或者数字命名,创建n张表的需求。#下面给出4种常用的批量创建100张表的小脚本。#结果mysql> show tables;-----------------| Tables_in_tsdb |-----------------| Total_Winner_01 || Total_Winner_02 || To…...
如何让自己做的网站可以播放歌曲/北京seo优化服务
我最近开始负责C#Web爬虫项目。运行尝试运行解决方案时,出现以下错误:asdasd 2013-07-03 15:14:46. 6525 DEBUG Loading agency cache. 2013-07-03 15:15:29. 8820 ERROR消息:IO操作超时Source :MySql.Data Stack Trace : at MySq…...
国内vps做网站要备案吗/黑帽seo排名优化
3日,科研人员在中科院量子信息和量子科技创新研究院上海实验室内调整操作台上的激光干扰器。 新华社记者 方 喆摄 日前,中国科学技术大学潘建伟教授及其同事陆朝阳教授、朱晓波教授等,联合浙江大学王浩华教授研究组,在基于光子和超…...
减压疗程wordpress/推广发布任务平台app下载
本节书摘来自华章出版社《算法基础:打开算法之门》一书中的第3章,作者 [美]托马斯 H 科尔曼(Thomas H Cormen),更多章节内容可以访问云栖社区“华章计算机”公众号查看 第3章 Algorithms Unlo…...
wordpress禁止注册/上海seo推广服务
最近肩负起了一项重要的工作,就是要带一位朋友迈进程序员的大门。而且我打下了保票,不用去培训机构。我一定让他走上工作岗位。仔细算算,搞这行已经4个年头了。虽然自己没修炼成什么高手。不过因为我大学不是计算机专业(电子信息工…...
公司网站建设进度/营销新闻
java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。…...