
K8s
文章平均质量分 67
K8S学习笔记
喝醉酒的小白
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kubernetes(K8s)环境中对数据库进行混沌工程测试
在Kubernetes(K8s)环境中对数据库进行混沌工程测试,核心是通过主动注入故障来验证数据库系统的弹性、容错性和恢复能力。通过系统化的混沌工程测试,K8s上的数据库可在真实故障发生前暴露潜在风险,从而优化架构设计和运维流程,提升系统整体韧性。原创 2025-06-12 17:48:53 · 1009 阅读 · 0 评论 -
PG高可用测试 - 强制删除主库
原创 2025-06-11 17:21:18 · 88 阅读 · 0 评论 -
Raft 共识算法在 `AppendEntries` RPC 过程
Raft 使用“多数派确认”机制,是为了在不依赖所有节点都存活的前提下,实现线性一致性(Linearizability)。只要有超过一半的节点对日志条目达成一致,就认为该日志是安全的并可提交,从而确保在任意网络分区和节点故障下仍保持正确性和进展性。点位原因📌 多数派具备交集性,防止脑裂任意两个多数派有交集,确保一致性⚙️ 提高可用性少数 follower 故障不影响提交⏱️ 减少等待延迟不阻塞于网络慢节点🧠 符合 CAP 理论保证 C(强一致)与 A(高可用)原创 2025-06-11 17:00:08 · 994 阅读 · 0 评论 -
etcd 中 Raft 共识算法的 Leader 选举机制详解
通过以上结构化解析,etcd 中 Leader 选举的触发条件、核心流程及工程优化细节已清晰呈现,结合流程图和示例可帮助理解分布式共识的实际运行逻辑。原创 2025-06-11 16:54:44 · 982 阅读 · 0 评论 -
Kubernetes 集群层面的影响(基于官方文档与社区案例)
以下是更新后的内容,依据了来自 Apache Kafka、etcd、Kubernetes 官方文档或 GitHub Issue,以及 MySQL 和人大金仓的社区/文档说明,Kafka 对时间非常敏感,尤其是日志、位点控制、消费者 offset、消息 TTL 等。(如 KVM、Docker、K8s Node 宿主机),还要注意虚拟机/容器的系统时间。命令设置时间属于“跳变”,极易破坏系统状态,应使用 Slew 模式(缓慢调整)。,若时间回退,Consumer 可能读取到时间“倒退”的消息,引发逻辑异常。原创 2025-06-11 11:09:02 · 682 阅读 · 0 评论 -
Consul集群的工作原理以及与ETCD的优劣对比的解析
注:ETCD 的线性读取(Linearizable Read)优化显著降低 APIServer 查询延迟。完整链条,ETCD需额外组件(如CoreDNS+confd)拼接方案,维护成本更高。确保Server节点间数据强一致,Client节点通过Server获取最新数据。可实时剔除故障节点,ETCD依赖外部系统(如K8s探针)实现类似能力。,在 K8s 控制面的特定场景下,“专用工具”优于“瑞士军刀”。,而ETCD需要定制化网关代理。实现不同集群间服务信息的同步。,但Consul的定位更偏向。原创 2025-06-05 09:57:22 · 874 阅读 · 0 评论 -
Raft 共识算法 - 多数派提交机制
在 n 个成员中,必须有超过一半(即 (n/2)+1)同意某个提案,该提案才能提交到集群中。:领导者将已提交的日志条目应用到本地状态机,并将结果返回给客户端。随后,跟随者也将该条目应用到各自的状态机中。这意味着,只有当集群中超过半数的节点确认某个写入操作后,该操作才被视为已提交并对外可见。:一旦超过半数的节点(包括领导者)确认接收到该日志条目,领导者将该条目标记为已提交。:集群中的领导者节点接收请求,并将其作为新的日志条目追加到本地日志中。在 etcd 中,Raft 协议通过以下步骤确保数据一致性:(原创 2025-06-05 09:40:01 · 878 阅读 · 0 评论 -
CrunchyData Postgres Operator(PGO) 实现 跨多云 PostgreSQL 部署 的一整套解决方案
通过在阿里云和华为云的 Kubernetes 集群中部署 PostgreSQL,并结合 PgBouncer、ExternalDNS 以及各自的 DNS 服务,可以实现高可用的跨云数据库部署。当主节点发生故障时,系统能够自动切换到从节点,并快速更新 DNS 记录,确保业务的连续性和稳定性。如果您需要更详细的部署脚本或配置文件,欢迎进一步交流。在双 Kubernetes 集群、跨云(如阿里云 + 华为云)的部署中,结合。原创 2025-06-04 22:16:50 · 707 阅读 · 0 评论 -
Kubernetes Operator(以 Patroni + PostgreSQL 为例) 实现跨多云部署的两种典型方式
实现。原创 2025-06-04 22:10:44 · 941 阅读 · 0 评论 -
Elasticsearch 高内存占用分析与优化建议报告
所有节点的堆内存仅为 4GB,占总内存比例不到 7%。堆使用率约在 46%~67%,说明已经接近警戒线。远低于推荐值(总内存的 50%,上限为 32GB),极易造成频繁 GC 或堆溢出。原创 2025-06-04 21:58:05 · 943 阅读 · 0 评论 -
MySQL Group Replication 单主模式的多云部署(云 A/B/C)
优点缺点官方集成的高可用方案,支持自动主备切换跨云网络延迟高可能导致写延迟增加数据一致性保证,支持强一致性读写配置和运维复杂,需专门监控集群状态和网络稳定性支持自动故障切换,无需外部 orchestrator不支持多主写入,单主模式写性能瓶颈应用连接透明切换,MySQL Router 或 ProxySQL 支持跨云故障切换时延较长,可能会导致部分写请求失败或阻塞。原创 2025-06-04 21:39:10 · 993 阅读 · 0 评论 -
使用 Kubernetes Operator 部署 MySQL 多云高可用架构
维度1 套 K8s(混部)2 套 K8s(跨集群)运维复杂度较低高网络延迟较低(内网)高(公网或专线)主从同步本地同步(快)需公网访问或专线切换机制Operator 自动高可用性容灾有限更强(区域级)推荐场景混合云 / 多 AZ跨云容灾,企业级要求。原创 2025-06-04 21:25:23 · 647 阅读 · 0 评论 -
跨多云环境下的数据一致性保障与故障自动切换 # MySQL
目标实现方式跨云一致性保障Semi-sync 复制、GTID、binlog row 模式、事务完整性配置故障自动切换Orchestrator + ProxySQL,实现故障检测、角色切换、连接更新高可用 + 读写分离ProxySQL 或 MySQL Router + 主从读写策略强一致性(可选)MySQL MGR(需稳定网络,适合企业专线)最终一致性 + 容灾优先异步复制 + relay log 回放 + 数据校验工具(pt-table-checksum)原创 2025-06-04 21:20:14 · 812 阅读 · 0 评论 -
tc 删除已注册 eBPF 程序:操作指南 + 系统分析 + 知识补充
qdisc(Queueing Discipline)是 Linux 流量控制的核心模块,用于控制网络流量的调度和排队策略。Root qdisc:主队列调度器(如fq_codelhtbclsact特别用于 eBPF 场景;支持ingress和egress两个方向;不影响正常队列,只承载tc filter。说明当前bond0使用的是clsact,这是运行 eBPF 的常见配置。原创 2025-06-04 20:51:04 · 800 阅读 · 0 评论 -
Patroni 更新 Kubernetes Pod Annotations 的源码逻辑详解
在与 Kubernetes 集成部署时,Patroni 会定期更新当前 Pod 的 annotations 来反映 PostgreSQL 节点的状态,如角色(主/备)、连接地址等。以下是 Patroni 中更新 Kubernetes Pod annotations 的关键源码调用链及其对应的 GitHub 源码链接,帮助你深入理解其实现逻辑。该方法封装了与 Kubernetes API 的交互,用于更新当前 Pod 的 annotations。方法更新当前 Pod 的 annotations。原创 2025-06-04 11:21:59 · 731 阅读 · 0 评论 -
容器中时区问题
控制方式文件/变量优先级作用范围环境变量TZ高当前进程或 shell文件链接→中系统默认时区systemd命令高更新并全局生效其他文件(仅 Debian)低记录用途。原创 2025-06-03 17:09:50 · 729 阅读 · 0 评论 -
云数据RDS售后组长发展计划(基于推动执行关键跨越)
通过“原创 2025-06-02 17:31:26 · 687 阅读 · 0 评论 -
数据库产品环境屏蔽策略方案模板
下面是一份通用的、可根据你当前数据库产品(如 MSSQL / PostgreSQL / MySQL 自研分支等)定制的 《数据库产品环境屏蔽策略方案模板》,涵盖部署、运维、售后三大层面,帮助应对客户环境不一致和个性化需求:通过在产品、运维、售后各个环节引入环境适配机制、标准工具链、统一运维接口等措施,有效屏蔽客户在操作系统、网络、云平台、安全策略等底层环境方面的差异,降低部署复杂度,提升客户体验和售后效率。原创 2025-06-01 12:14:02 · 383 阅读 · 0 评论 -
部署、运维、售后如何面对底层环境的差异性
问题屏蔽/适配方案云平台差异(阿里云 vs AWS)Terraform 多 provider、云 SDK 封装、平台级抽象网络策略限制提供离线安装包、跳板代理机制、统一 agent 采集客户安全策略严苛(禁止公网)提供完全离线部署、镜像仓库同步工具、脱敏日志工具操作系统差异(Ubuntu vs CentOS)脚本自适应判断/安装依赖、统一容器镜像封装数据库高可用架构需求不同提供多种高可用方案模板(主备、集群、Paxos 等)原创 2025-06-01 12:05:22 · 886 阅读 · 0 评论 -
Fluent Bit 日志分析
从你提供的 Fluent Bit 日志来看,日志数据在发送到 Elasticsearch 的过程中出现了错误。接口将日志数据发送到 Elasticsearch 时,ES 无法正确解析 JSON 数据的某一部分,因为它包含了。段),我可以帮你进一步确认如何修改。是否需要我帮你生成一个适配的配置片段?如果你能提供 Fluent Bit 的相关配置(比如。将 Fluent Bit 的日志等级提升为。然后可定位是哪条日志数据中包含非法字节。这表示 Fluent Bit 在通过。原创 2025-05-30 11:52:02 · 805 阅读 · 0 评论 -
YashanDB +Kubernetes
YashanDB 已完全支持在 Kubernetes 环境中的部署和运维,特别是通过与 KubeBlocks 的集成,提供了自动化部署、高可用性、可观测性和备份恢复等功能。这使得 YashanDB 成为在云原生环境中部署关系型数据库的理想选择。搜狐优快云博客如果您需要更详细的部署指南或示例配置文件,欢迎继续提问!YashanDB 已完全支持在 Kubernetes 环境中的部署和运维,特别是通过与 KubeBlocks 的集成,提供了自动化部署、高可用性、可观测性和备份恢复等功能。原创 2025-05-30 00:05:49 · 768 阅读 · 0 评论 -
Raft 日志复制
Raft 日志复制的目标是让所有副本维护一致、有序的日志副本。它通过 AppendEntries、任期与索引校验、日志回退与快照恢复等机制,在保证一致性的同时提供高性能、高可靠的副本同步能力。Leader 选举机制快照发送的详细过程如何避免脑裂Raft 与 Paxos 的对比。原创 2025-05-29 15:53:14 · 616 阅读 · 0 评论 -
kubelet日志报错:Cannot read vendor id correctly, set empty.
该日志是来自Kubernetes(k8s)中的kubelet组件的日志,显示kubelet在读取CPU vendor id时遇到了问题。:日志指出无法正确读取vendor id,将其设置为空值。vendor id是CPU的一个标识符,通常用于识别CPU的制造商等信息。:日志由kubelet进程(进程ID为2941)生成,时间戳为05月29日10:15:22.9439735。原创 2025-05-29 10:50:41 · 299 阅读 · 0 评论 -
No non-localhost DNS nameservers are left in resolv.conf.Using default external servers
⚠️ 注意:某些系统(如使用 NetworkManager)会自动重写该文件,可通过。如果你的宿主机无法访问 Google 公共 DNS(如。),但 Docker 自动回退使用了这些 DNS,那。如需要连接远程数据库、API、认证服务器等时会失败。(114 是中国电信,223 是阿里公共 DNS)如果 Docker 没有配置。修改 Docker 的。原创 2025-05-26 18:32:23 · 704 阅读 · 0 评论 -
Patroni 与 etcd 之间的具体交互流程、锁对象的结构
Patroni 与 etcd 的交互采用了分布式租约锁(lease-based distributed lock)机制基于 etcd 的一致性和自动 key 过期机制,实现可靠的主节点选举;租约 TTL 和 keepalive 保证系统在主节点故障时快速收敛;状态通过 etcd 共享,保证所有节点对集群视图一致。原创 2025-05-26 18:25:59 · 757 阅读 · 0 评论 -
Docker 日志关键问题分析笔记
问题类型是否关键说明忽略事件(/tasks/delete)❌ 无需关注正常日志注册表连接失败✅ 需要排查可能导致镜像拉取失败DNS 默认回退⚠️ 可配置优化可改善解析性能FIFO 关闭读取错误✅ 可影响日志采集排查容器异常终止原因可执行文件未找到✅ 常见 exec 错误检查镜像完整性📦:集中收集容器日志并可视化。🔍:监控容器异常行为或访问。📊:收集资源使用及容器状态指标。原创 2025-05-26 18:25:26 · 835 阅读 · 0 评论 -
etcd:sync duration 是什么?
项目内容含义etcd 磁盘刷写耗时过高操作对象WAL 日志或 snapshot原因I/O 慢、系统阻塞、磁盘压力大后果raft 心跳丢失 → 节点切主关键作用是 etcd 切换 Leader 的主要诱因之一。原创 2025-05-26 18:21:29 · 375 阅读 · 0 评论 -
etcd Leader频繁切换故障排查 Playbook
etcd 日志中出现raft 日志显示节点从 Leader 降级为 Follower,发生频繁的 Leader 切换(term 上升)。原创 2025-05-26 18:20:28 · 677 阅读 · 0 评论 -
etcd日志:sync duration of 3.0984939s, expected less than 1s
超时是 etcd raft 切主最直观、最关键的性能信号,常常直接揭示节点 I/O 或资源瓶颈问题。原创 2025-05-26 17:10:35 · 257 阅读 · 0 评论 -
etcd日志分析:failed to send out heartbeat on time
心跳延迟与过载告警读请求耗时严重超标GRPC 通信异常Raft 选举日志[Node A] became candidate -> 发起新一轮投票[Node A] 拒绝来自其他节点的投票请求,因 log index 更高Kubelet 重启失败。原创 2025-05-26 16:57:33 · 485 阅读 · 0 评论 -
在 Kubernetes 中,CoreDNS 的工作机制
CoreDNS在Kubernetes中的工作机制主要包括:启动时延迟服务并初始化4个控制器监控API资源;通过监听Kubernetes API动态更新DNS记录;DNS查询处理流程包含解析请求、转发和缓存;采用插件链机制处理不同功能;通过Corefile和ConfigMap进行灵活配置管理;提供健康检查和监控功能。该机制实现了高效的集群内部服务发现和外部域名解析。原创 2025-05-24 23:32:40 · 796 阅读 · 0 评论 -
/etc/resolv.conf 如何配置nameserver地址
使用对象nameserver 是否可以设为“本机地址”(127.0.0.1 / Pod IP / Node IP)建议普通 Pod❌ 不推荐建议使用 CoreDNS 的 ClusterIPCoreDNS Pod 自己❌ 禁止会触发 DNS 循环Node(宿主机)✅ 可以(前提是监听了 DNS 服务)小心不要被 Pod 继承CoreDNS 的forward插件✅ 推荐使用外部 DNS(8.8.8.8)明确配置转发目标,避免 loop。原创 2025-05-23 14:16:11 · 958 阅读 · 0 评论 -
SQL Server :在 Kubernetes 中的备份 / 挂载 / 还原命令流程
操作命令上传备份备份数据库还原数据库禁用 CDC查看逻辑文件名实际 StatefulSet YAMLPVC/挂载结构容器路径结构。原创 2025-05-22 17:11:06 · 258 阅读 · 0 评论 -
MSSQL Always On + Kubernetes:为什么 2/3 Ready 不会触发主备切换?
Always On 主备切换的决策是由SQL Server 自身 + Windows/Linux Cluster 或 AG Listener控制的,而不是由 Kubernetes 控制。就算 Kubernetes 检测到 Pod 的某个容器探针失败(变为 2/3 Ready),它不会影响 MSSQL Always On 的主备角色。问题原因建议Pod 显示2/3某个容器探针失败(通常是 readiness)检查 probe 脚本逻辑和初始延迟设置没有主备切换。原创 2025-05-22 14:29:55 · 956 阅读 · 0 评论 -
如何获取docker run的具体命令
命令无法直接从 Docker 守护进程的日志中回放原始命令行参数,但可以通过以下几种方式。即便你忘记了命令本身,Docker 会在容器元数据中保留启动时的。如果你是通过交互式 Shell(如 Bash、Zsh)执行的。自身的调用日志,间接反映子命令,但配置复杂且需要提前启用 (结合这些方法,你可以在大多数情况下找回或重构已执行的。通过 Docker 客户端命令查看容器的启动配置。对应启动时的可执行文件(ENTRYPOINT),,那么你的命令会被记录到相应的历史文件中。同理,也可单独获取镜像层面的默认。原创 2025-05-20 16:23:09 · 753 阅读 · 0 评论 -
CRI (containerd/CRI-O) + hostNetwork
Pod 就会跳过独立网络命名空间的创建,直接附着到节点的网络命名空间上,容器进程绑定的端口和接口即为宿主机的端口和接口,无需中间的代理或 DNAT 规则。下面分几部分详细说明这一机制在 “无 Docker” 环境下的实现原理。在 Kubernetes 1.24 中移除了 Dockershim,转而使用 CRI(如 containerd 或 CRI-O)来管理容器运行时;此时若在 PodSpec 中设置。原创 2025-05-20 15:16:18 · 739 阅读 · 0 评论 -
Pod 的 metadata.name 必须遵循 DNS-1123 Label 的命名规范,不允许包含下划线(_)
社区用户在实际使用中也验证了这一点:用下划线生成的 Pod 名称会被视为非法,改用连字符则正常通过(必须遵循 DNS-1123 Label 的命名规范,在 Kubernetes 中,Pod 的。原创 2025-05-20 10:07:38 · 208 阅读 · 0 评论 -
etcd:心跳细节
在 go.etcd.io/raft 中,会输出一系列待处理项:包括 Log Entries、HardState 更新、Snapshot、以及待发 RPC(Messages,其中空日志即为空心跳包)(etcd-server 内部循环会先依次完成对这些 Ready 项的写盘(WAL+Snapshot)、状态机应用,再一次性调用底层发送接口 () 批量发出所有待发 RPC;最后再调用Advance()通知 Raft 库进入下一轮循环(通过配置、硬件与架构多层面优化,可有效削减 etcd 的fsync开销;原创 2025-05-20 09:34:42 · 943 阅读 · 0 评论 -
“errcode“:60020,“errmsg“:“not allow to access from your ip, hint:
规则计算结束调用 Alertmanager 客户端HTTP 接口调用路由到 wechat 接收器加载通道配置获取并缓存 Access Token发送告警消息IP 白名单校验返回调用结果原创 2025-05-19 11:49:34 · 590 阅读 · 0 评论 -
Kubernetes 节点标签与调度配置详解
在 Kubernetes 集群中,节点(Node)作为承载工作负载的基础设施单元,可以是物理机或虚拟机。它为节点提供了灵活的分类与选择机制,便于根据业务需求对节点进行组织和管理。调度器会根据这些标签,将 Pod 调度到具有匹配标签的节点上。通过以上步骤,不仅完成了节点标签设置与配置编辑,还增加了标签查看、配置备份及修改验证环节,提升了操作的规范性和可维护性。通过合理配置节点标签与调度策略,可以实现对 Pod 在集群中部署位置的精细控制,满足性能优化、资源隔离等业务需求。标签的节点来部署 Pod。原创 2025-05-18 14:39:21 · 856 阅读 · 0 评论