虚拟机镜像

ubuntu 24

虚拟机网络

虚拟网络–配置

nat模式

20250803132226

20250803132235

主机ip配置

20250803132528

宿主机ip配置

10.0.0.12 master 2c
10.0.0.15 node1
10.0.0.16 node2
10.0.0.17 node3
10.0.0.20 register


sudo vi /etc/netplan/00-installer-config.yaml  # 替换为实际文件名
sudo netplan apply
network:version: 2renderer: networkd  # 服务器版用 networkd;桌面版可改为 NetworkManagerethernets:ens33:  # 替换为你的网卡名称dhcp4: no  # 关闭 DHCPaddresses:- 10.0.0.15/24  # 静态 IP/子网掩码(CIDR 格式)routes:- to: defaultvia: 10.0.0.2  # 网关地址nameservers:addresses: [8.8.8.8, 8.8.4.4]  # DNS 服务器

虚拟机–局域网内–域名配置

10.0.0.12    kubernetes-master.sswang.com  kubernetes-master
10.0.0.15    kubernetes-node1.sswang.com  kubernetes-node1
10.0.0.16    kubernetes-node2.sswang.com  kubernetes-node2
10.0.0.17    kubernetes-node3.sswang.com  kubernetes-node3
10.0.0.20    kubernetes-register.sswang.com  kubernetes-register

密钥

ssh-keygen -t rsa
ssh-copy-id root@10.0.0.15
ssh-copy-id root@10.0.0.16
ssh-copy-id root@10.0.0.17
ssh-copy-id root@10.0.0.20

设置root用户密码: 如果root用户没有设置密码,需要设置一个密码: sudo passwd root

修改SSH配置文件: 编辑/etc/ssh/sshd_config文件,找到PermitRootLogin配置项,并将其修改为yessudo vim /etc/ssh/sshd_config 将以下内容: #PermitRootLogin prohibit-password 修改为: PermitRootLogin yes

systemctl restart ssh

主机名设置


hostnamectl set-hostname kubernetes-masterssh root@10.0.0.15 "hostnamectl set-hostname kubernetes-node1"ssh root@10.0.0.16 "hostnamectl set-hostname kubernetes-node2"ssh root@10.0.0.17 "hostnamectl set-hostname kubernetes-node3"ssh root@10.0.0.20 "hostnamectl set-hostname kubernetes-register"

swap分区禁用

Kubernetes 为什么要求禁用 Swap?

Kubernetes 的设计初衷是确保容器能够获得预期的资源(CPU、内存)。当节点上的内存不足时,操作系统会使用 Swap 空间将部分内存数据换出到磁盘上。然而,这种行为会导致以下问题:

  1. 性能下降:磁盘 I/O 速度远低于内存,使用 Swap 会显著降低应用程序性能。
  2. 资源调度不可预测:Kubernetes 调度器无法感知 Swap 的使用情况,它只能基于节点的实际物理内存进行调度决策。如果节点因为 Swap 而“看起来”有足够内存,但实际上物理内存不足,会导致容器性能急剧下降。
  3. 稳定性问题:当内存压力大时,频繁的 Swap 换入换出可能导致节点不稳定,甚至引发 OOM(Out-Of-Memory)问题。
  4. 资源统计不准确:kubelet 在报告节点资源使用情况时,无法准确反映 Swap 的使用,这会影响集群的自动伸缩(HPA/VPA)和资源配额管理。

# 临时禁用
swapoff -a# 永久禁用
sed -i 's/.*swap.*/#&/' /etc/fstab# 内核参数调整
cat >> /etc/sysctl.d/k8s.conf << EOF
vm.swappiness=0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF## 创建自定义内核模块自动加载服务,开机自动加载systemd-modules-load服务,自动加载modules-load.d下的所有服务
sudo tee /etc/modules-load.d/br_netfilter.conf <<EOF
br_netfilter
EOFsudo tee /etc/modules-load.d/overlay.conf <<EOF
overlay
EOFsysctl -p /etc/sysctl.d/k8s.conf# 验证
free -h  # 应显示 Swap 行全为0

20250803144843

关闭swap分区后需要重启系统

20250803144246

for i in 15 16 17 20
do
scp /etc/fstab root@10.0.0.$i:/etc/fstab
scp /etc/sysctl.d/k8s.conf root@10.0.0.$i:/etc/sysctl.d/k8s.conf
scp /etc/modules-load.d/br_netfilter.conf root@10.0.0.$i:/etc/modules-load.d/br_netfilter.conf
scp /etc/modules-load.d/overlay.conf root@10.0.0.$i:/etc/modules-load.d/overlay.conf
ssh root@10.0.0.$i "systemctl restart systemd-modules-load"
ssh root@10.0.0.$i "sysctl -p /etc/sysctl.d/k8s.conf"
done

安装k8s (adm)

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

20250803110828

容器运行时环境

# 更新软件包索引
sudo apt update# 安装必要的依赖工具
sudo apt install -y \ca-certificates \curl \gnupg \lsb-release \software-properties-common

添加 Docker 官方 GPG 密钥

# 创建密钥存储目录
sudo install -m 0755 -d /etc/apt/keyrings# 下载并添加 Docker 的官方 GPG 密钥(使用阿里云镜像)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4. 添加 Docker 软件源

# 添加 Docker 软件源(使用阿里云镜像)
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. 安装 Docker Engine

# 更新软件包索引
sudo apt update# 安装 Docker CE、CLI 和 containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io# 检查安装的版本
docker --version
docker compose version

其中containerd.io是docker-engine 所需要的服务

20250810153639

containerd.sock & Docker (dockerd.sock) 的区别

运行环境中的容器运行时接口两者依赖关系如下,所以两者都安装了。
20250810115415

核心作用
  1. 容器运行时接口(CRI):
  • 提供标准的 gRPC 接口,使 Kubernetes 能够管理容器生命周期
  • Kubernetes kubelet 通过这个 socket 与 containerd 通信
  1. 容器操作通道:
  • 创建/启动/停止/删除容器
  • 拉取容器镜像
  • 管理容器网络
  • 执行容器内命令
  1. 低级别容器管理:
  • 直接与 Linux 内核的容器功能交互(cgroups、namespaces)
  • 管理容器文件系统(通过快照机制)

6. 配置国内镜像加速器

为了提高 Docker 镜像的下载速度,编辑 /etc/docker/daemon.json 配置文件,需要配置国内镜像加速器:

因为一些限制,所以能用的加速源不多,欢迎大家分享可用的加速源。这里加速源不一定能用。

# 创建 Docker 配置目录(如果不存在)
sudo mkdir -p /etc/docker# 编辑 daemon.json 配置文件
sudo tee /etc/docker/daemon.json > /dev/null << EOF
{"registry-mirrors": ["http://74f21445.m.daocloud.io","https://docker.xuanyuan.me","https://docker.1ms.run","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"],"dns": ["8.8.8.8", "8.8.4.4"],"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"},"storage-driver": "overlay2","insecure-registries": ["kubernetes-register.sswang.com:80"]
}
EOF# 重新加载 systemd 配置
sudo systemctl daemon-reload# 重启 Docker 服务使配置生效
sudo systemctl restart dockersystemctl status docker

7. 验证安装

# 运行测试容器
sudo docker run hello-world# 查看 Docker 信息
sudo docker info

8. 开机启动docker

sudo systemctl enable docker
sudo systemctl is-enabled docker  # 应返回 "enabled"
docker info | grep "Storage Driver"

9. docker compose 安装使用


# 检查是否已安装 Docker Compose
docker compose version# 如果未安装,手动安装
sudo apt install docker-compose-plugin# 或者使用 pip 安装(需要先安装 Python)
pip install docker-compose

10. 完全卸载docker

# 停止所有运行的容器
docker stop $(docker ps -aq)# 删除所有容器
docker rm $(docker ps -aq)# 删除所有镜像
docker rmi $(docker images -q)# 卸载 Docker 软件包
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 删除相关目录和文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker# 删除软件源配置
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.gpg# 清理用户组设置
sudo deluser $USER docker

11. 总

#!/bin/sh
set -ex# 更新软件包索引
sudo apt update# 安装必要的依赖工具
sudo apt install -y ca-certificates curl gnupg lsb-release software-properties-common# 创建密钥存储目录
sudo install -m 0755 -d /etc/apt/keyrings# 下载并添加 Docker 的官方 GPG 密钥(使用阿里云镜像)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg# 添加 Docker 软件源(使用阿里云镜像)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 更新软件包索引
sudo apt update# 安装 Docker CE、CLI 和 containerd
sudo apt install -y docker-ce docker-ce-cli containerd.io# 检查安装的版本
docker --version
docker compose versionsudo systemctl enable docker
sudo systemctl is-enabled docker  # 应返回 "enabled"
docker info | grep "Storage Driver"sudo mkdir -p /etc/docker# 编辑 daemon.json 配置文件 registry主机(hub) 不需要
sudo tee /etc/docker/daemon.json > /dev/null << EOF
{"registry-mirrors": ["http://74f21445.m.daocloud.io","https://docker.xuanyuan.me","https://docker.1ms.run","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"],"dns": ["8.8.8.8", "8.8.4.4"],"log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"},"storage-driver": "overlay2","insecure-registries": ["kubernetes-register.sswang.com:80"]
}
EOF# 重新加载 systemd 配置
sudo systemctl daemon-reload# 重启 Docker 服务使配置生效
sudo systemctl restart dockersystemctl status docker# 重新加载 systemd 配置
sudo systemctl daemon-reload# 重启 Docker 服务使配置生效
sudo systemctl restart dockersystemctl status dockersudo systemctl enable docker
sudo systemctl is-enabled docker  # 应返回 "enabled"
docker info | grep "Storage Driver"sudo docker run hello-world# 查看 Docker 信息
sudo docker info

cri环境操作

用于k8s运行时控制docker engine。

注意:所有主机操作

获取软件

mkdir /data/softs -p && cd /data/softs
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2.amd64.tgz# 解压软件
tar -xvf cri-dockerd-0.3.2.amd64.tgz
mv cri-dockerd/cri-dockerd /usr/local/bin/

设置开机启动cri-dockerd服务,配置socket

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
EOF

此 systemd 服务文件用于配置 cri-dockerd 服务,主要包含:

  1. 定义服务在 docker 和网络服务之后启动
  2. 指定 cri-dockerd 的执行参数:
  • 使用阿里云镜像仓库的 pause 容器
  • 配置 CNI 网络插件路径
  • 设置容器运行时和 docker 的 unix socket 路径
  • 指定存储目录路径
  1. 配置服务重启策略和资源限制
  2. 设置系统启动时自动启用服务
cat > /etc/systemd/system/cri-dockerd.socket <<-EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service[Socket]
ListenerStream=/var/run/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker[Install]
WantedBy=sockets.target
EOF

20250803163334

同步从节点

for i in 15 16 17 20
dossh root@10.0.0.$i "systemctl stop cri-dockerd &&  rm -rf /etc/systemd/system/cri-dockerd.socket && rm -rf /etc/systemd/system/cri-dockerd.service && rm -rf /data/softs/cri-dockerd/cri-dockerd"scp  /data/softs/cri-dockerd/cri-dockerd root@10.0.0.$i:/usr/local/binscp  /etc/systemd/system/cri-dockerd.socket root@10.0.0.$i:/etc/systemd/systemscp /etc/systemd/system/cri-dockerd.service root@10.0.0.$i:/etc/systemd/systemssh root@10.0.0.$i "systemctl daemon-reload && systemctl restart cri-dockerd && systemctl enable cri-dockerd"ssh root@10.0.0.$i "systemctl status cri-dockerd | grep Active"
done

harbor仓库

# 下载软、】
mkdir /data/{softs,server} -p && cd /data/softs
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz# 解压软件
tar -zxvf harbor-offline-installer-v2.5.0.tgz -C /data/server/
cd /data/server/harbor/# 加载镜像 harbor 到docker中
docker load < harbor.v2.5.0.tar.gz
docker images# 备份配置
cp harbor.yml.tmpl harbor.ymlvi harbor.yml

20250803203144

./prepare # 基于harbor.yml 生成 docker-compose.yml等配置文件,用于生成harbor容器./install.sh # zhuanb

卸载安装的docker 镜像、容器

# 卸载容器镜像
docker images | awk '{print $3}' | grep -v "IMAGE" | xargs  docker rmi
# 卸载compose 配置(用于拉起容器的)
docker compose down -v

安装成功如下:

20250803221414

harbor 定制服务

/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/bin/docker compose --file /data/server/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker compose --file /data/server/harbor/docker-compose.yml down[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl start harbor
systemctl status harbor
systemctl enable harbor

20250803232352

配置用户名 deck1; 密码 a123678A

20250803232507

为harbor仓库提交镜像

  1. 镜像打标签
    • 必须携带harbor主机的地址
  2. 登录harbor
    docker login
  3. 提交镜像
    docker push
# 登录仓库
docker login kubernetes-register.sswang.com -u sswang#下载镜像
docker pull busyboxdocker tag busybox kubernetes-register.sswang.com/sswang/busybox:v0.1# 推送
docker push kubernetes-register.sswang.com/sswang/busybox:v0.1

测试过程遇到报错:

docker login kubernetes-register.sswang.com:80 -u sswang
Password:
Error response from daemon: Get "https://kubernetes-register.sswang.com:80/v2/": http: server gave HTTP response to HTTPS client

主要原因时,docker 默认强制访问镜像仓库都是使用https协议,同时上面harbor的https端口关闭,就需要docker强制harbor的访问允许http协议:

vi /etc/docker/daemon.json

{"insecure-registries": ["kubernetes-register.sswang.com:8080"]
}

对应每个节点都需要修改。
systemctl restart docker

for i in 15 16 17 20
doscp /etc/docker/daemon.json root@10.0.0.$i:/etc/docker/daemon.jsonssh root@10.0.0.$i "systemctl restart docker"
done
# 登录仓库
docker login kubernetes-register.sswang.com:80 -u sswang#下载镜像
docker pull busyboxdocker tag busybox kubernetes-register.sswang.com:80/sswang/busybox:v0.1# 推送
docker push kubernetes-register.sswang.com:80/sswang/busybox:v0.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93441.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93441.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/93441.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css预编译器实现星空背景图

打造梦幻星空背景&#xff1a;用CSS预处理器轻松实现动态效果 星空背景能为网页增添神秘感和视觉吸引力。通过CSS预处理器&#xff08;如Sass/Less&#xff09;可以高效实现可定制化的星空效果&#xff0c;避免重复编写纯CSS代码。以下是 Vue3 组件皮肤具体实现方法和代码示例。…

焊接机器人保护气体效率优化

在现代工业制造领域&#xff0c;焊接机器人的应用日益广泛&#xff0c;而保护气体在焊接过程中起着至关重要的作用。如何优化保护气体的效率&#xff0c;成为焊接技术发展的一个关键考量因素。WGFACS节气装置的出现&#xff0c;为焊接机器人在保护气体效率优化方面带来了显著的…

Portkey-AI gateway 的一次“假压缩头”翻车的完整排障记:由 httpx 解压异常引发的根因分析

笔者最近在本地搭建了Portkey AI Gateway&#xff08;模型路由网关&#xff09;&#xff0c;然后按照文档中的方式进行测试。结果发现&#xff0c;网关能够接收到请求&#xff0c;但是Python测试的程序却运行报错。Python代码报错信息如下&#xff1a; Traceback (most recent …

什么是Session? PHP编程中Session用法详解

一、Session的基本概念 Session 是 Web 开发中用于在服务器端存储用户临时数据的一种机制&#xff0c;它允许服务器在不同的 HTTP 请求之间识别和跟踪特定用户的状态&#xff0c;本质上是‌服务器为每个用户开辟的临时私有存储空间‌。由于 HTTP 协议本身是无状态的&#xff…

【大模型】AI平台 joyagent 2.0 的部署与测试

github链接&#xff1a;https://github.com/jd-opensource/joyagent-jdgenie 本篇博客记录下自己在配置joyagent的过程&#xff0c;以【手动初始化环境&#xff0c;启动服务】为例&#xff0c;后端调用的deepseek-chat大模型。 前言 JoyAgent是由京东云开源的企业级多智能体系统…

计算机视觉(一):nvidia与cuda介绍

背景与意义 计算机视觉 (Computer Vision, CV) 需要对图像和视频进行处理、特征提取和模型训练&#xff0c;计算量巨大。GPU (图形处理单元) 擅长并行计算&#xff0c;非常适合深度学习、卷积操作、矩阵乘法等场景。NVIDIA 作为 GPU 领域的领导者&#xff0c;推出了 CUDA (Comp…

阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)

&#xff08;注&#xff1a;本岗位信息已获jobleap.cn授权&#xff0c;可在 CSDN 平台发布&#xff09; 一、基本信息 招聘方&#xff1a;阿里云工作地点&#xff1a;杭州信息收录时间&#xff1a;2025 年 08 月 14 日 二、职位主要职责 为 AI 相关产品全流程提供法务支持&…

医疗智慧大屏系统 - Flask + Vue实现

下面我将实现一个完整的医疗智慧大屏系统&#xff0c;使用Flask作为后端框架&#xff0c;前端使用Vue.js结合ECharts进行医疗数据的可视化展示&#xff0c;文章末尾提交源码下载。 系统设计思路 前端部分&#xff1a; 使用Vue.js构建响应式界面 使用ECharts实现各类医疗数据可…

库制作与原理(下)

库制作与原理 (下) 1. 目标文件 编译和链接这两个步骤&#xff0c;在 Windows 下被我们的 IDE 封装的很完美&#xff0c;我们一般都是一键构建非常方便&#xff0c;但一旦遇到错误的时候呢&#xff0c;尤其是链接相关的错误&#xff0c;很多人就束手无策了。在 Linux 下&#x…

STL 容器

STL是C的核心组成部分&#xff0c;其主要包括了容器、迭代器、算法三大组件。 其中容器负责存储数据&#xff0c;迭代器是容器和算法的桥梁&#xff0c;负责对容器中的元素进行操作。本文重点介绍容器部分内容。 STL主要容器 STL容器根据特性进行分类&#xff0c;可以分为序列式…

微信小程序 拖拽签章

微信小程序 拖拽签章 效果 主要实现的功能点 文件按比例加载图片(宽高设定拖拽范围) 弹层展示印章模板 模板拖拽到文件图片上 实时获取拽拽位置 难点 弹层中的元素如何拖拽到文件图片上 实现历程 版本1.0 以前我们拖拽一个图层到另一个图层上,pc端使用的是mousedown mou…

人工智能加速计算套件

按照甲方要求的技术指标的人工智能加速计算套件1套。每套包含以下内容&#xff1a; 1、显卡 不低于6542Y&#xff1b;容量不低于 48GB GDDR6显存&#xff1b;CUDA核心不低于14080 个 &#xff1b;第四代Tensor Core不低于440 个&#xff1b;单精度性能不低于69.3 TFLOPS&#x…

端到端测试:复杂系统的终极体检术

当你的应用像多米诺骨牌一样牵一发而动全身&#xff0c;如何确保用户一路畅通无阻&#xff1f;一、为什么我们需要端到端测试&#xff1f; 想象一下&#xff1a;你精心开发的电商应用&#xff0c;用户登录顺利&#xff0c;商品浏览流畅&#xff0c;却在最后支付时卡壳——原因是…

Perf使用详解

Perf 工具深度解析 Perf&#xff08;Performance Counters for Linux&#xff09;是 Linux 系统的性能分析工具&#xff0c;基于内核的 perf_event 子系统&#xff0c;通过硬件性能计数器&#xff08;PMC&#xff09;、软件事件和跟踪点&#xff08;tracepoints&#xff09;实现…

Windchill 11 Enumerated Type Customization Utility-枚举类型自定义实用程序

一、Enumerated Type Customization Utility 枚举类型自定义实用程序&#xff0c;可用于添加或编辑枚举类型的值&#xff0c;在Windchill 12.0中可直接在类型和属性管理中编辑&#xff0c;如下图所示&#xff0c;而在Windchill 11.0中只能通过windchill shell启动程序&#xff…

git疑问,暂时记录

有时候把dev本地分支搞乱了,多出几个提交,好像在远程仓库,rebase dev到本地dev,就恢复了,然后再把我开发分支合并过去就ok,就不会多出几个重复的提交 在自己分支开发提交数据后,不push到远程仓库 然后合并到dev分支,推dev分支到远程仓库然后在自己分支,rebase到自己分支,然后再…

Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害预警与应急响应中的应用

Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害预警与应急响应中的应用引言&#xff1a;Java 筑起气象防灾减灾的数字长城正文&#xff1a;Java 构建的气象智慧防御体系一、气象大数据的 Java 基座&#xff1a;从采集到存储的全链路优化1.1 多源异构数据的实时汇聚1.2…

MySQL黑盒子研究工具 strace

strace是什么&#xff1f; 按照 strace 官网的描述, strace 是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互&#xff0c;比如系统调用、信号传递、进程状态变更等。 strace 底层使用内核的 ptrace 特性来实现其功能。 strace能…

【运维进阶】实施任务控制

实施任务控制 在 Ansible 中&#xff0c;“实施任务控制” 通常指的是对任务执行流程的控制&#xff0c;比如&#xff1a; 条件执行&#xff08;when&#xff09; 循环执行&#xff08;with_items / loop&#xff09; 错误处理&#xff08;block / rescue / ignore_errors&…

Java 中的线程中断详解

Java 中的线程中断1、什么是线程中断2、如何触发线程中断3、如何处理线程中断3.1 线程中断相关的核心方法3.2 处理中断的典型方式3.3 注意事项4、线程中断与线程终止的区别5、线程中断的应用场景5.1 长时间运行任务的取消5.2 阻塞操作的快速响应5.3 服务或线程池的优雅关闭5.4 …