- 博客(896)
- 收藏
- 关注
原创 【GD分布式数据库】涉及跨节点的事务操作,计算节点会通知全局事务节点协调事务提交,这个具体是什么情况,举例说明
### 事务提交协调机制在分布式数据库中,计算节点负责接收来自客户端的 SQL 请求,并根据执行计划访问多个数据节点进行数据操作。当涉及跨数据节点的数据写入或更新操作时,计算节点需要通知全局事务节点来协调这些操作以确保事务的一致性。#### 全局事务节点的角色全局事务节点是事务协调的核心组件,它使用两阶段提交协议(2PC)或者更先进的共识算法如 Raft 来管理分布式事务的生命周期。当计算节点发起一个跨节点的事务操作时,它会向全局事务节点注册该事务,并获取一个唯一的事务标识符。#### 两阶
2025-07-22 00:45:00
265
原创 【GD分布式数据库】GD分布式数据库整体架构介绍,包括管理节点、计算节点、全局事务节点、数据节点以及之间的关系
GD分布式数据库整体架构介绍,包括管理节点、计算节点、全局事务节点、数据节点以及之间的关系
2025-07-22 00:30:00
232
原创 【云原生技术】我一共有30个应用,然后我的configmap\secert\pvc\pv、service、ingress、deployment这些yaml 分别每个kind都需要写30个yaml去部署
我一共有30个应用,然后我的configmap\secert\pvc\pv、service、ingress、deployment这些yaml 分别每个kind都需要写30个yaml去部署吗?还是configmap\secert是30应用可以通用的
2025-07-21 01:00:00
697
原创 【云原生技术】定时任务cron命令,有哪些情况是非法的?
下面把 Linux/Vixie-cron 体系下常见的「非法 cron 时间表达式」和「容易踩坑的命令部分」列成检查清单,方便你们在平台做前置校验。后面再给一段思路代码(伪 Python),以及少数“虽然能写进去但最好拦掉”的危险用法。一、时间字段(5 段制:min hour dom mon dow)常见非法情况 ╴1 字段数≠5 示例:`*/5 * * *`(缺列) | `* * * * * *`(多列) ╴2 出现非允许字符(数字、* , - / 以外) `30 2 ? * *`
2025-07-21 00:15:00
730
原创 【云原生技术】我在daemon文件改了bip,会影响我已经启动的容器吗?
结论一句话 • 只有在 **重启 Docker 服务**(必需操作,配置才会生效)时,现有容器才会受到影响; • 影响仅限网络层:使用默认 bridge 网络的容器会被强制停止 / 重新创建并获得一段新的 IP。镜像、数据卷、端口映射都不会丢。详细拆分 1. 改完 daemon.json 但还没重启 • 正在运行的容器继续用原来的 docker0(178.17.*)。 • 新开容器也还用旧网段。 • 直到你执行 `systemctl restart docke
2025-07-20 01:00:00
174
原创 【云原生技术】sonarqube是用容器部署的,如何重启
下面给你一张“一看就能照做”的快速对照表,涵盖了目前最常见的 3 种 SonarQube 容器部署方式。先确认自己属于哪一种,再选对应的 **重启** 命令即可。────────────────────────────────────────1. 直接用 docker run 起的单个容器────────────────────────────────────────假设当初启动时是这样:```bashdocker run -d --name sonarqube -p 9000:9000 \
2025-07-20 00:30:00
341
原创 【云原生技术】“bip“: 配置的IP多少是正确的怎么知道?
选择 `"bip"`(docker0 网桥的网段)只有一条核心原则—— > 选一段 RFC-1918 私有地址(10/8、178.16/12、198.168/16 里的任意子网), > 且这段地址 **在你的机器、公司路由表、VPN、Kubernetes/CNI、云 VPC** 等任何地方都没有被占用或路由到。
2025-07-19 01:00:00
287
原创 【云原生技术】dockerd: unable to configure the Docker daemon with file /etc/docker/daemon.json: the followi
dockerd: unable to configure the Docker daemon with file /etc/docker/daemon.json:the following directives don't match any configuration option: default-address-pools
2025-07-19 00:15:00
594
原创 【云原生技术】yaml里面配置了就绪指针和健康指针,rollingupdate的这个过程,这两个指针是怎么参与的?新pod启动的时间是怎么计算的?然后这两个指针里面
可以——在 Deployment 里完全不写 readinessProbe 或 livenessProbe,Pod 依旧会被创建、容器依旧会启动,但它们的“上线与自愈”表现会明显不同。下面把两种写法放到同一条时间线上对比,你就能看到差别。──────────────────────────────────1. 不配置任何探针会发生什么──────────────────────────────────• 容器状态变成 Running 后,kubelet 立即把 containerStatuses.
2025-07-19 00:15:00
764
原创 【云原生技术】dockerd: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid
报错dockerd: unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid character ‘:’ looking for beginning of value。是合法 JSON,Docker 就能正常启动;随之 178.31 网段也会生效,和 178.17.* 的网段冲突问题就彻底解决了。• 不要写任何注释、注释行、中文标点。• 如果你需要写注释,先写在旁边的。• 仍启动失败,可用。
2025-07-18 01:00:00
174
原创 【云原生技术】打镜像的时候,dockerfile基础镜像有什么要求吗
选择 Dockerfile 的 “FROM 基础镜像” 时,没有一套一成不变的“官方硬性要求”,但在生产场景通常会同时满足以下 5 方面的“隐性”要求——只要理解并做到,就不会因为基础镜像选型而踩坑。下面把要点分成【必须兼容的硬条件】+【实务中不可忽视的软条件】两部分,供你在写 Dockerfile 或制定公司镜像策略时参考。──────────────────────────────一、必须满足的硬条件──────────────────────────────1. CPU 架构一致
2025-07-18 00:45:00
861
原创 【云原生技术】ip route add 178.17.100.0/24 via <GW_IP> dev eth0,<GW_IP>这个是什么?应该怎么配置?
`<GW_IP>` 就是“下一跳(Gateway)”的 IP 地址——也就是 **把数据包转发到 178.17.100.0/24 这张网的“路由器 / 防火墙 / VPN 网关”的地址**。 加这条静态路由的意思是:“当我要去 172.17.100.0/24 时,先把包送给 <GW_IP>,走 eth0 接口。”你必须用 **实际存在、而且与本机 eth0 在同一二层网段** 的网关 IP 来替换 `<GW_IP>`。 ───────────────────────────────────
2025-07-18 00:30:00
452
原创 【云原生技术】重新部署deployment时,旧的pod多长时间会关闭?
在 Kubernetes 里,Deployment 更新后旧 Pod 何时被真正关闭并没有单一的固定超时,而是受三组参数共同决定:1. 更新策略(RollingUpdate 还是 Recreate) 2. 滚动更新的并发控制(maxSurge / maxUnavailable) 3. Pod 自身的优雅退出时间(terminationGracePeriodSeconds)下面按默认 RollingUpdate 策略说明典型时间线,并给出可调节的开关。───────────────────
2025-07-18 00:30:00
677
原创 【云原生技术】rollingUpdate:maxSurge: 2 maxUnavailable: 2 terminationGracePeriodSeconds:30 旧的pod多长时间会关闭?
可以这样理解: • “新 Pod 到达 Ready”——说明 **Pod 里的所有容器已经在运行状态,并且通过了 readinessProbe(如果你定义了)**;Kubernetes 会把它计入可用副本,并把 Service 流量分发给它。 • 控制器随即把同等数量的旧 Pod 标记为 Terminating。此时旧 Pod 进入优雅关停流程,Service 端点里也立即被剔除。也就是说,**Ready 基本可以视为“新容器已经真正上线、可以接流量”**;只有在以下特殊情况下才可能“容器虽
2025-07-18 00:30:00
1465
原创 【云原生技术】删除镜像的命令
Docker 本地删除镜像常用 4 句话,记住就够用。 -------------------------------------------------------------------------------1. 查看现有镜像 ```bashdocker images # 或 docker image ls```2. 删除指定镜像 ```bashdocker rmi <IMAGE_ID 或 名称:标签>```例: ```bashdocker rmi n
2025-07-17 01:00:00
292
原创 【云原生技术】如何将tar包上传到镜像仓库
把一个通过 `docker save` 生成的 `xxx.tar` 镜像包“上传”到任何兼容 Docker Registry(Docker Hub、Harbor、GitLab、AWS ECR…)的完整流程只有 4 步——**加载 → 打标签 → 登录 → 推送**。下面用一个例子(Harbor 私有仓库)演示,其他仓库只改地址即可。────────────────────────────────────────1 加载 tar 中的镜像到本机────────────────────────────
2025-07-17 00:30:00
350
原创 【云原生技术】harbor的API接口
下面把 “查看某个仓库下有哪些 Tag” 在 **Harbor 2.x / Harbor 1.x** 两条 API 路径全部列出来,并给出一套 Postman 的最小配置示例。你只要把域名、项目名、仓库名改成自己的即可。───────────────────────────────────────一、Harbor 2.x(/api/v2.0)───────────────────────────────────────1. 列出所有 Tag(最常用) • Endpoint ``
2025-07-17 00:15:00
1946
原创 【GD分布式数据库】GD分布式数据库如何实现数据分片与负载均衡
### 数据分片原理在分布式数据库中,数据分片是一种常见的横向扩展技术,通过将数据划分为多个独立的片段,并分布到不同的节点上,从而提高系统的性能和可扩展性。这种分片方式通常基于一定的规则,如范围分区、哈希分区或一致性哈希等方法。- **范围分区**:根据键值的范围来划分数据集。例如,可以按照用户ID的范围来分配不同的分片。这种方法的优点是可以较好地支持范围查询,但如果某些范围内的数据量特别大,则可能导致负载不均衡。 - **哈希分区**:使用哈希函数对键进行处理,然后根据哈希结果决定数据所在的
2025-07-16 10:39:29
547
原创 【云原生技术】如何删除容器
下面这张“速查卡”把 Docker / Podman 常见的容器删除场景全部汇总在一起,记住核心 3 条命令,再配合几个过滤技巧,就能优雅、安全地清理任何容器。────────────────────────────────────────🚩 先弄清 3 个关键概念────────────────────────────────────────1. 停止 (stop/kill):容器进程结束,但容器仍存在,可随时 `start` 2. 删除 (rm):容器元数据彻底移除(镜像层不受影响)
2025-07-16 01:00:00
650
原创 【云原生技术】为啥同一镜像 通过 docker save 生成的 tar 包 ≈ 500 MB、本地 docker images 里看也是 ≈ 500 MB、推到 Harbor 后 UI 里只200M
为什么同一镜像• 通过 `docker save` 生成的 tar 包 ≈ 500 MB • 在本地 `docker images` 里看也是 ≈ 500 MB • 推到 Harbor 后 UI 里只显示 ≈ 200 MB 出现「500 MB → 200 MB」的根本原因是: 1. 镜像在不同环节所存储的格式/压缩方式不同。 2. Harbor(以及任何 OCI Registry)只统计“去重后、已压缩”的层大小。下面把链路拆开解释。--------------------
2025-07-16 00:15:00
417
原创 【云原生技术】用 `“bip“` 把 Docker 的默认网段(原本是 188.17.0.0/16)改成 **任何本机未占用的私有网段
`"bip"` 是 Docker 守护进程 (`dockerd`) 的 **Bridge IP** 参数。 它告诉 Docker:• “把 `docker0` 这张网桥接口的地址设成 **X.X.X.X/YY**”; • “所有基于 `bridge` 网络驱动的新容器,都从这个网段里分配 IP”。也就是说,你可以用 `"bip"` 把 Docker 的默认网段(原本是 188.17.0.0/16)改成 **任何本机未占用的私有网段**,从而避免与公司真实网络冲突。为什么文档里示范 `18
2025-07-15 00:45:00
447
原创 【云原生技术】ping bakad.xxxx.com报错From centos79_test_20250313 (188.17.0.1) Destination Host Unreachable原因
现象 1. DNS 已经把 bakad.xxxx.com 解析成 188.17.100.193; 2. 系统马上尝试向 **188.17.100.193** 发送 ICMP Echo,但每个包都收到 ``` From centos79_test_20250313 (188.17.0.1) Destination Host Unreachable ``` 这条信息是 **本机的 docker0 网桥(188.17.0.1)** 回给你的,意思是: “这个网段我自
2025-07-15 00:15:00
322
原创 【云原生技术】兼顾扫描速度与规则准确性,同时避免因为缺少 `test-classes` 带来的潜在误差
结论先说: • 规则 “Tests should include assertions” (S2975) **依旧会执行**,只提供 `target/classes` 并不会让它完全失效; • 但**准确率会下降**——某些写法(特别是 JUnit5 自定义断言、第三方断言库、继承自公共父类的断言方法)可能被漏报或误报。 因此**最佳做法**仍然是把 `target/test-classes` 也加入 `sonar.java.binaries`。───────────────────────
2025-07-14 01:00:00
430
原创 【云原生技术】让 “Tests should include assertions (Java 规则 S2975)” 生效的关键只有两点
让 “Tests should include assertions (Java 规则 S2975)” 生效的关键只有两点: 可以,让 “Tests should include assertions (Java 规则 S2975)” 生效的关键只有两点: 1. SonarQube 必须把你的 _Java 源文件_ 识别为 **测试代码**; 2. 这些测试源码最好能解析到对应的 **字节码**(`target/test-classes`)以获得完整语义。 下面逐条解释你现在的写法,以及如
2025-07-14 00:15:00
252
原创 【云原生技术】一次性把多模块工程完整地扫进 SonarQube
在多模块工程里,最省心的办法其实有两种,取决于你用什么构建工具。 下面先给“推荐做法”(几乎不用再写 `sonar.sources / sonar.tests`),再给“仍想用 CLI 时的自动收集脚本”。────────────────────────────────────────方案 A — 用 Maven/Gradle 自带的 Sonar 插件(首选)────────────────────────────────────────1. Maven ```bash mvn
2025-07-13 01:30:00
225
原创 【云原生技术】容器文件如何下载?
你可以通过多种方式将**容器内的文件下载到主机**或其他计算机上,最常用的是使用 `docker cp` 命令,配合一些常规网络工具(如 scp、nc),还能跨机器下载。 下面是最常见的几种方式,附操作步骤和注意事项:---### 1. **直接用本地 Docker 主机的 `docker cp` 命令**假如你要把容器内的文件 `/home/jenkins/result.log` 下载到本机 `/tmp/` 目录:```bashdocker cp <container_id或name
2025-07-13 01:00:00
216
原创 【云原生技术】把“镜像构建 + save / push / ship”这段重型 I/O 任务迁到另一台干净机器,有 3 条主流路线
把“镜像构建 + save / push / ship”这段重型 I/O 任务迁到另一台干净机器,有 3 条主流路线。下面先给结论,再拆细节和运维注意点。你只要挑一条适合团队现状的方式,实现成本从低到高排列:A. 把那台空机器注册成 Jenkins Agent(最普遍,基本零改代码) B. 不用新 Agent,只把 Jenkinsfile 的 `docker` CLI 指向远程守护进程(SSH / TCP) C. 直接用 BuildKit Buildx 的远程 builder,把构建全部丢去对端
2025-07-13 00:15:00
15
原创 【云原生技术】流水线每次运行后占用的磁盘只剩可复用的缓存层,既不会撑爆空间,又保留了加速效果
确实,持续集成节点(或开发机)在一次完整流程里会暂时占用三块磁盘空间: (1) 镜像层(`docker build` 生成) (2) `docker save` 生成的 tar.gz (3) 推仓库时留下的本地 tag。 它们与“内存”无关,而是消耗 **磁盘**。只要流程结束后不再复用,就可以立即清理,通常做法如下。──────────────────────────────一、该删哪些?删完会不会有副作用?──────────────────────────────1. tar.gz
2025-07-12 01:00:00
126
原创 【云原生技术】是否推送到镜像仓库”“是否同步到目标服务器目录”改成前端可勾选的两个布尔开关
下面示范把“是否推送到镜像仓库”“是否同步到目标服务器目录”改成**前端可勾选的两个布尔开关**,并在 Jenkinsfile 里用 `when` 条件动态跳过或执行对应 stage。思路分三步: 1) 前端/后端参数设计 → 2) Jenkinsfile 模板 → 3) 常见扩展要点。────────────────────────────────────────1 前端 & 后端参数流转────────────────────────────────────────前端表单新增两个复选框
2025-07-12 00:30:00
15
原创 【云原生技术】把 JAR → Docker 镜像 → 按前端指定的服务器与目录
下面给出一整套“参考落地方案”,把 JAR → Docker 镜像 → 按前端指定的服务器与目录落盘 的流程拆成三部分: (1) 前后端参数流转;(2) Jenkinsfile 模板;(3) 目标机自动加载 / 校验。 全部用到的技术都在 Java+Jenkins 生态里,复制即可跑通,再按自己平台做二次封装。────────────────────────────────────────一、参数在前后端 & Jenkins 之间怎么传────────────────────────────
2025-07-12 00:15:00
14
原创 【云原生技术】如何将构建的镜像传输到指定服务器的目录下
把本地已构建好的镜像文件“落地”到目标服务器的某个目录,有三种常见做法,核心都离不开:1. `docker save`(或 `buildx build --output type=docker`)导出成 tar 2. 通过 SSH-family 工具把文件传过去 3. 在目标机上可选地 `docker load` 或留作离线归档下面给出 3 套可复制的命令行流程,并补充常见坑。────────────────────────────────────────方案 A:最通用——先保存为
2025-07-11 01:00:00
14
原创 【云原生技术】把“已有 *.tar / .tar.gz 镜像包 → 上传到一台 Docker 服务器 → 推送到 Harbor 目标项目”做成一份可复用 Jenkins 流水线
下面把“已有 *.tar / *.tar.gz* 镜像包 → 上传到一台 Docker 服务器 → 推送到 Harbor 目标项目”做成一份**可复用 Jenkins 流水线模板**,并给出两种实现路径:A. 标准 Docker CLI(load → tag → push) B. 使用 Skopeo “一步 copy”(不用 docker load,速度更快)任选其一即可落地,后半部分再列出常见问题与运维小贴士。───────────────────────────────────────
2025-07-11 00:30:00
18
原创 【云原生技术】容器文件如何下载?
你可以通过多种方式将**容器内的文件下载到主机**或其他计算机上,最常用的是使用 `docker cp` 命令,配合一些常规网络工具(如 scp、nc),还能跨机器下载。 下面是最常见的几种方式,附操作步骤和注意事项:---### 1. **直接用本地 Docker 主机的 `docker cp` 命令**假如你要把容器内的文件 `/home/jenkins/result.log` 下载到本机 `/tmp/` 目录:```bashdocker cp <container_id或name
2025-07-10 00:30:00
474
原创 【云原生技术】为什么第一次push会报这个错,第二次就可以push成功,第三次又失败?
为什么 “第一次 push 报 401,第二次就成功”?在 Harbor 里,**仓库(repository)只有在第一次推送成功后才真正创建**。 而 Docker push 的底层流程是这样的(简化):1. 获取上传凭证 `GET /service/token?scope=repository:proj/repo:push,pull …`2. 询问服务器:这层/这个 manifest 是否已经存在 `HEAD /v2/proj/repo/blobs/<digest>`
2025-07-10 00:15:00
293
原创 【云原生技术】ERROR Wildcards ** and * are not supported in “sonar.sources“ and “sonar.tests“
ERROR Wildcards ** and * are not supported in "sonar.sources" and "sonar.tests"
2025-07-09 13:12:36
152
原创 【云原生技术】unauthorized to access repository: uptest/mq-sms, action: push: wnauthorized to access re
unauthorized to access repository: uptest/mq-sms, action: push: wnauthorized to access repository: uptest/mq-sms, action: push 为什么没有权限push?
2025-07-09 00:30:00
722
原创 【云原生技术】daemon.json 如何查找这个文件,用find可以吗?
find 会递归全盘扫描,速度慢、也容易扫出很多无关 json;在新版本 Docker(20.10+)中,第二行会直接打印出当前加载到的。如果字段为空,说明仍在用默认配置(即没有 daemon.json)。如果这个文件不存在,Docker 会采用内置默认值运行;一般情况下 Docker 的守护进程级 JSON 配置文件就放在。因此「找不到」往往不是因为它被藏到了别处,而是根本还没被创建。,说明你的发行版或运维自定义了路径;照着那个路径去找即可。• 不存在 → 按需新建。• 存在 → 直接编辑。
2025-07-08 00:45:00
715
原创 【云原生技术】EArorNee uoine .basanend via che sut o inoeturos y>e,xxx.aebord.yonding.xxxx:8443/v2/ failed
EArorNee uoine .basanend via che sut o inoeturos y>e,crpnaebord.yonding,xxxx:8443/v2/ failed with status: 401 unauthorized 我已经配置了daemon.json文件,也重启了docker,在登陆的时候报错这个是为什么?
2025-07-08 00:45:00
707
原创 【云原生技术】docker login时报错Error response from daemon: cet https:/registry1.docker,io/v2/: net/http: re
Docker 给了你两条信息,它们指向两个不同的问题——一个是操作方式的安全性提示,另一个是 TLS 证书校验失败。先各自拆解,再给出对应的解决步骤。────────────────────────────一、`WARNING! Using --password via the CLI is insecure`────────────────────────────含义 • 把密码直接写到命令行 (`docker login -u user -p pass …`) 会留在 Bash histo
2025-07-08 00:15:00
1502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人