Kubernetes(K8s 1.28.x)部署---超详细
目录
一、基础环境配置(所有主机均要配置)
1、配置IP地址和主机名、hosts解析
2、关闭防火墙、禁用SELinux
3、安装常用软件
4、配置时间同步
5、禁用Swap分区
6、修改linux的内核参数
7、配置ipvs功能
二、容器环境操作
1、定制软件源
2、安装最新版docker
3、配置docker加速器
4、启动docker
三、cri环境操作
1、cri-dockerd-0.3.4.amd64.tgz 下载
2、解压到指定目录并查看
3、定制配置文件
4、启动服务
四、harbor仓库操作
1、docker-compose-linux-x86_64下载
2、给权限并解压到创建的目录中
3、加载镜像
4、修改配置文件
5、定制服务启动文件
6、测试
五、k8s集群初始化
1、定制软件源--所有节点
2、环境部署--所有节点
3、检查镜像文件列表--只在一个节点操作
4、在harbor仓库中创建项目
5、在master节点上获取镜像文件
6、master节点初始化
7、node节点加入
六、k8s环境收尾操作
1、放到master主机的环境文件中
2、下载kube-flannel.yml
3、编辑脚本并执行
七、扩展:kubectl可以在node节点上运行吗?
一、基础环境配置(所有主机均要配置)
主机名规划:
序号 | 主机ip | 主机名规划 | 用途 |
1 | 192.168.226.150 | kubernetes-master.openlab.cn | kubernetes-master |
2 | 192.168.226.151 | kubernetes-node1.openlab.cn | kubernetes-node1 |
3 | 192.168.226.152 | kubernetes-node2.openlab.cn | kubernetes-node2 |
4 | 192.168.226.153 | kubernetes-node3.openlab.cn | kubernetes-node3 |
5 | 192.168.226.155 | kubernetes-register.openlab.cn | kubernetes-register |
环境准备:Centos7.9 2颗CPU 4G内存 50G硬盘
1、配置IP地址和主机名、hosts解析
主机名修改:
hostnamectl set-hostname kubernetes-master.openlab.cnhosts解析
[root@localhost ~]# vi /etc/hosts
192.168.226.150 kubernetes-master.openlab.cn kubernetes-master
192.168.226.151 kubernetes-node1.openlab.cn kubernetes-node1
192.168.226.152 kubernetes-node2.openlab.cn kubernetes-node2
192.168.226.153 kubernetes-node3.openlab.cn kubernetes-node3
192.168.226.155 kubernetes-register.openlab.cn kubernetes-register
2、关闭防火墙、禁用SELinux
[root@kubernetes-master ~]# systemctl stop firewalld
[root@kubernetes-master ~]# systemctl disable firewalld
[root@kubernetes-master ~]# sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
[root@kubernetes-master ~]# setenforce 0
3、安装常用软件
[root@kubernetes-master ~]# yum install -y wget tree bash-completion lrzsz psmisc net-tools vim
4、配置时间同步
[root@kubernetes-master ~]# yum install chrony -y
[root@kubernetes-master ~]# vim /etc/chrony.conf
...
注释第三行到第六行
:3,6 s/^/#
使用阿里云的时间服务器
server ntp1.aliyun.com iburst启动服务
[root@kubernetes-master ~]# systemctl enable --now chronyd测试
[root@kubernetes-master ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
=====================================================================
^* 120.25.115.20 2 6 17 4 +145us[ +123us]
5、禁用Swap分区
临时禁用
[root@localhost ~]# swapoff -a永久禁用
[root@localhost ~]# sed -i 's/.*swap.*/#&/' /etc/fstab检测:
[root@kubernetes-node1 ~]# free -mtotal used free shared buff/cache available
Mem: 1819 385 229 9 1204 1259
Swap: 0 0 0
6、修改linux的内核参数
cat >> /etc/sysctl.d/k8s.conf << EOF#内核参数调整
vm.swappiness=0
#配置iptables参数,使得流经网桥的流量也经过iptables/netfilter防火墙
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF#配置生效
#加载网桥过滤模块
# modprobe br_netfilter
# modprobe overlay#重新加载
[root@kubernetes-master ~]# sysctl -p /etc/sysctl.d/k8s.conf
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
7、配置ipvs功能
# 1 安装ipset和ipvsadm
[root@kubernetes-master ~]# yum install ipset ipvsadm -y# 2 添加需要加载的模块写入脚本文件
[root@kubernetes-master ~]# cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF# 3 为脚本文件添加执行权限
[root@kubernetes-master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules# 4 执行脚本文件
[root@kubernetes-master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules# 5 查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
[root@kubernetes-master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
ip_vs_sh 12688 0
ip_vs_wrr 12697 0
ip_vs_rr 12600 0
ip_vs 145458 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack 139264 1 ip_vs
libcrc32c 12644 3 xfs,ip_vs,nf_conntrack
二、容器环境操作
1、定制软件源
[root@kubernetes-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@kubernetes-master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装最新版docker
yum install -y docker-ce
3、配置docker加速器
[root@kubernetes-master ~]# cat >> /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": ["http://74f21445.m.daocloud.io","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"], "insecure-registries": ["kubernetes-register.openlab.cn"],"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
4、启动docker
[root@kubernetes-master ~]# systemctl daemon-reload
[root@kubernetes-master ~]# systemctl enable --now docker
三、cri环境操作
1、cri-dockerd-0.3.4.amd64.tgz 下载
地址:Releases · Mirantis/cri-dockerd (github.com)
2、解压到指定目录并查看
[root@kubernetes-master ~]# tar xf cri-dockerd-0.3.4.amd64.tgz -C /usr/local/
[root@kubernetes-master ~]# mv /usr/local/cri-dockerd/cri-dockerd /usr/local/bin/
[root@kubernetes-master ~]# cri-dockerd --version
cri-dockerd 0.3.4 (e88b1605)
3、定制配置文件
cat > /etc/systemd/system/cri-dockerd.service<<-EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9
--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin -
-container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --
cri-dockerd-root-directory=/var/lib/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOFcat > /etc/systemd/system/cri-dockerd.socket <<-EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service
[Socket]
ListenStream=/var/run/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF
4、启动服务
启动服务
设置服务开机自启动
[root@kubernetes-master ~]# systemctl daemon-reload
[root@kubernetes-master ~]# systemctl enable --now cri-dockerd.service
四、harbor仓库操作
只在仓库机器上执行
1、docker-compose-linux-x86_64下载
下载地址:Releases · docker/compose · GitHub
2、给权限并解压到创建的目录中
给权限
install -m 755 docker-compose-linux-x86_64 /usr/local/bin/docker-compose创建目录
mkdir -p /data/server解压
tar xf harbor-offline-installer-v2.8.4.tgz -C /data/server/进入目录
cd /data/server/harbor/
3、加载镜像
docker load -i harbor.v2.8.4.tar.gz
4、修改配置文件
复制文件
cp harbor.yml.tmpl harbor.yml
修改文件
vim harbor.yml修改如下:
hostname: kubernetes-register.openlab.cn
#https:
# port: 443
# certificate: /your/certificate/path
# private_key: /your/private/key/pathharbor_admin_password: 123456
data_volume: /data/server/harbor/data运行
./prepare
./install.sh
5、定制服务启动文件
/etc/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
#需要注意harbor的安装位置
ExecStart=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target重启
# systemctl daemon-reload
# systemctl enable harbor.service
# systemctl restart harbor
6、测试
只在k8s集群某一个节点
在master
下载镜像
# docker pull busybox
登录仓库
# docker login kubernetes-register.openlab.cn -u admin -p 123456
定制镜像标签
# docker tag busybox:latest kubernetes-register.openlab.cn/library/busybox:latest
推送镜像
# docker push kubernetes-register.openlab.cn/library/busybox:latest
五、k8s集群初始化
1、定制软件源--所有节点
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2、环境部署--所有节点
# yum install kubeadm kubectl kubelet -y
3、检查镜像文件列表--只在一个节点操作
kubeadm config images list
4、在harbor仓库中创建项目
网页:http://192.168.226.155
账号:admin 密码:123456
5、在master节点上获取镜像文件
# cat images.sh
#!/bin/bash
images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F'/' '{print $NF}')
for i in ${images}
dodocker pull registry.aliyuncs.com/google_containers/$idocker tag registry.aliyuncs.com/google_containers/$i kubernetes-register.openlab.cn/google_containers/$idocker push kubernetes-register.openlab.cn/google_containers/$idocker rmi registry.aliyuncs.com/google_containers/$i
done执行脚本文件
sh images.sh
6、master节点初始化
kubeadm init --kubernetes-version=1.28.0 \
####注意修改下面一行的地址为自己的master地址
--apiserver-advertise-address=192.168.226.150 \
--image-repository kubernetes-register.openlab.cn/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=Swap \
--cri-socket=unix:///var/run/cri-dockerd.sock执行之后
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
7、node节点加入
kubeadm join 192.168.226.150:6443 --token jie7an.cr33vmg6iwxu4jod \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--discovery-token-ca-cert-hash sha256:7258022a0aeead42dd63fbcca3e1418df26b2f59f89ffce238066ee22032b435
注意不要直接负责,修改为自己的
六、k8s环境收尾操作
1、放到master主机的环境文件中
echo "source <(kubectl completion bash)" >> ~/.bashrc
echo "source <(kubeadm completion bash)" >> ~/.bashrc
source ~/.bashrc
2、下载kube-flannel.yml
3、编辑脚本并执行
# cat flannel.sh
#!/bin/bashfor i in $(grep image kube-flannel.yml | grep -v '#' | awk -F '/' '{print $NF}')
dodocker pull flannel/$idocker tag flannel/$i kubernetes-register.openlab.cn/google_containers/$idocker push kubernetes-register.openlab.cn/google_containers/$idocker rmi flannel/$i
done执行脚本文件:sh flannel.sh
4、应用配置文件
sed -i '/ image:/s#docker.io/flannel#kubernetes-register.openlab.cn/google_containers#' kube-flannel.yml应用配置文件
# kubectl apply -f kube-flannel.yml[root@kubernetes-master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
kubernetes-master.openlab.cn Ready control-plane 18m v1.28.0
kubernetes-node1.openlab.cn Ready <none> 16m v1.28.0
kubernetes-node2.openlab.cn Ready <none> 16m v1.28.0
kubernetes-node3.openlab.cn Ready <none> 16m v1.28.0
[root@kubernetes-master ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-76f899b8cf-f5d5g 1/1 Running 0 18m
coredns-76f899b8cf-qd5zl 1/1 Running 0 18m
etcd-kubernetes-master.openlab.cn 1/1 Running 0 18m
kube-apiserver-kubernetes-master.openlab.cn 1/1 Running 0 18m
kube-controller-manager-kubernetes-master.openlab.cn 1/1 Running 0 18m
kube-proxy-c5lbh 1/1 Running 0 18m
kube-proxy-h5s6t 1/1 Running 0 16m
kube-proxy-lkpxq 1/1 Running 0 16m
kube-proxy-zqbrh 1/1 Running 0 16m
kube-scheduler-kubernetes-master.openlab.cn 1/1 Running 0 18m
七、扩展:kubectl可以在node节点上运行吗?
kubectl的运行是需要进行配置的,它的配置文件是$HOME/.kube,如果想要在node节点运行此命令,需要将master上的.kube文件复制到node节点上,即在master节点上执行下面操作:
scp -r $HOME/.kube kubernetes-node1.openlab.cn:$HOME/
scp -r $HOME/.kube kubernetes-node2.openlab.cn:$HOME/
scp -r $HOME/.kube kubernetes-node3.openlab.cn:$HOME/
相关文章:

Kubernetes(K8s 1.28.x)部署---超详细
目录 一、基础环境配置(所有主机均要配置) 1、配置IP地址和主机名、hosts解析 2、关闭防火墙、禁用SELinux 3、安装常用软件 4、配置时间同步 5、禁用Swap分区 6、修改linux的内核参数 7、配置ipvs功能 二、容器环境操作 1、定制软件源 2、安…...
spring高级源码50讲-20-36(springMVC)
文章目录 WEB20) RequestMappingHandlerMapping 与 RequestMappingHandlerAdapter演示1 - DispatcherServlet 初始化代码参考 收获💡演示2 - 自定义参数与返回值处理器代码参考 收获💡 21) 参数解析器演示 - 常见参数解析器代码参考 收获💡 2…...

Leetcode Top 100 Liked Questions(序号141~189)
141. Linked List Cycle 题意:给你一个链表,判断链表有没有环 我的思路 两个指针,一个每次走两步,一个每次走一步,如果走两步的那个走到了NULL,那说明没有环,如果两个指针指向相等&…...
网络编程day3-FTP客户端项目
FTP协议 FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应)&…...

音频母带制作::AAMS V4.0 Crack
自动音频母带制作简介。 使用 AAMS V4 让您的音乐听起来很美妙! 作为从事音乐工作的音乐家,您在向公众发布材料时需要尽可能最好的声音,而为所有音频扬声器系统提供良好的商业声音是一项困难且耗时的任务。AI掌握的力量! 掌控您…...

【SpringCloud】SpringCloud整合openFeign
文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远…...

成集云 | 飞书审批同步金蝶云星空 | 解决方案
源系统成集云目标系统 方案介绍 飞书员工报销审批通过后,审批单据内容和审批状态实时同步金蝶云星空 飞书是字节跳动于2016年自研的新一代一站式协作平台,将即时沟通、日历、云文档、云盘和工作台深度整合,通过开放兼容的平台,…...

【计算机组成 课程笔记】3.2 算数运算和逻辑运算的硬件实现
课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 3 - 2 - 302-门电路的基本原理(11-39--)_哔哩哔哩_bilibili 现代计算机的CPU和其他很多功能部件都是基于晶体管的集成电路,想要了解计算机组成的基本原理,还是需要有…...
python元组的不可变性和应用场景
Python元组是一种不可变的数据类型,也就是说一旦创建后,其元素无法被修改、添加或删除。元组使用圆括号来表示,元素之间使用逗号进行分隔。 以下是创建和访问元组的方法和语法: 创建元组: 使用圆括号直接创建ÿ…...
配置化开发的核心设计 - Schema
前端配置化SchemaServerless FaaS BaaS useImperativeHandle() react-helmet 参考链接 schema进入...

HTTP协议概述
HTTP 协议定义 HTTP协议,直译为超文本传输协议,是一种用于分布式、协作、超媒体的信息系统的应用协议。HTTP协议是万维网数据通信的基础。HTTP协议在客户端-服务器计算模型中充当请求-响应协议。客户端向服务器提交HTTP请求消息。服务器提供HTML文件和其…...
fastjson2 打开 AutoType
1. 功能简介 FASTJSON支持AutoType功能,这个功能在序列化的JSON字符串中带上类型信息,在反序列化时,不需要传入类型,实现自动类型识别。 2. AutoType安全机制介绍 必须显式打开才能使用。和fastjson 1.x不一样,fast…...

封装(个人学习笔记黑马学习)
1、格式 #include <iostream> using namespace std;const double PI 3.14;//设计一个圆类,求圆的周长 class Circle {//访问权限//公共权限 public://属性//半径int m_r;//行为//获取圆的周长double calculateZC() {return 2 * PI * m_r;} };int main() {//通…...

PyTorch 模型性能分析和优化 - 第 3 部分
这[1]是关于使用 PyTorch Profiler 和 TensorBoard 分析和优化 PyTorch 模型主题的系列文章的第三部分。我们的目的是强调基于 GPU 的训练工作负载的性能分析和优化的好处及其对训练速度和成本的潜在影响。特别是,我们希望向所有机器学习开发人员展示 PyTorch Profi…...

【力扣每日一题】2023.9.1 买钢笔和铅笔的方案数
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们三个数,一个是我们拥有的钱,一个是钢笔的价格,另一个是铅笔的价格。 问我们一共有几种买笔…...

实现不同局域网间的文件共享和端口映射,使用Python自带的HTTP服务
文章目录 1. 前言2. 本地文件服务器搭建2.1 python的安装和设置2.2 cpolar的安装和注册 3. 本地文件服务器的发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用…...
Kubernetes技术--k8s核心技术Pod
(1).概述 Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型。 k8s不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成。 一个pod中的容器共享网络命名空间。 Pod是一个短暂存在的。 (2).为什么k8s中最小单元是…...

基于Springboot实现的Echarts图表
概述 ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)&…...
adb server version (41) doesn‘t match this client (39)
异常: adb server version (41) doesnt match this client (39); killing... ADB server didnt ACK安装ADB后:查看版本 $ adb version Android Debug Bridge version 1.0.39 Version 1:8.1.1-1r23-5.4-1eagle Installed as /usr/lib/android-sdk/platf…...

B080-RabbitMQ
目录 RabbitMQ认识概念使用场景优点AMQP协议JMS RabbitMQ安装安装elang安装RabbitMQ安装管理插件登录RabbitMQ消息队列的工作流程 RabbitMQ常用模型HelloWorld-基本消息模型生产者发送消息导包获取链接工具类消息的生产者 消费者消费消息模拟消费者手动签收消息 Work QueuesSen…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...