- 博客(143)
- 收藏
- 关注
原创 Pod 时区不一致导致定时任务错乱
容器默认不是“继承宿主机时区”,而是使用镜像内部的 UTC。不能凭直觉认为容器里“应该”和宿主机一致。凡是涉及定时任务、日志时间戳、数据库时间写入的应用,必须在构建或部署时显式指定时区。在 Kubernetes 中,Pod 级别的环境变量或镜像级别的设置是标准做法,尽量避免使用 hostPath 挂载时间文件。若使用 Helm 部署,可将 TZ 作为 global 变量统一注入,避免遗漏。
2026-08-23 11:36:32
350
原创 # 云迁移(HCIE)概述与实操案例
云迁移是指将业务系统从源环境迁移到目标云平台的过程。线下数据中心迁移上公有云(线下物理机/虚拟机 → 云上ECS)云平台之间的迁移(如阿里云 → 华为云)两地三中心是业界公认的高可用和容灾架构,用于保障业务在极端故障下仍能持续运行。两地:指两个城市(通常距离较远,如北京和上海)三中心:指三个数据中心生产中心:日常承载业务同城灾备中心:与生产中心在同一城市,用于应对生产机房局部故障(如机房断电、网络故障),通常通过高速专线连接,数据同步延迟低异地灾备中心。
2026-08-19 20:07:10
332
原创 # 华为云服务保姆级使用笔记:ECS,VPC,ELB,云存储,AS,RDS,CCE
通过网络(互联网)按需获取IT资源(服务器、存储、数据库、软件等)的一种模式,就像用水用电一样,拧开水龙头就有水,插上插座就有电,不用自己建水厂和发电厂。当你跳过创建vpc这一步,直接申请ECS主机的话,他会生成一个默认的vpcvpc 的作用是创建一个隔离的、私密的虚拟网络环境,基于VPC构建独立的云上网络空间,实现与Internet、云内私网、跨云私网互联本质上,它是在云厂商的共享物理网络上,利用 Overlay 技术(如 VXLAN)为用户切分出的逻辑隔离的二层网络空间。
2026-08-19 16:47:31
384
原创 # 云原生 · K8s :传统业务迁移的步骤详解与部署案例
将传统业务系统迁移到 Kubernetes 是一个系统化工程,需要依次完成容器化→Pod 设计→控制器选择→服务暴露→存储与配置管理→可观测性等环节。对于不同类型应用(无状态 Web、有状态数据库、PHP、Java),Kubernetes 均提供了灵活的编排能力。实际落地时,应结合业务特点,选择合适的控制器和存储方案,并逐步推进,尤其对于数据库等关键组件,可采取“先外后内”的保守策略。
2026-08-15 11:56:06
496
1
原创 # MinIO :从传统部署与运维实战到结合 Kubernetes(K8s) 的拓展运用
MinIO 是由 GlusterFS 创始人之一 Anand Babu Periasamy 发起的开源项目,使用 Go 语言编写,是高性能、云原生、与 S3 兼容的对象存储系统。MinIO 自身既是“存储架构”也是“管理软件”,它不依赖操作系统的文件系统来管理数据,而是直接调用底层的 XFS(硬盘),把文件切成碎片(纠删码),绕过操作系统目录树,直接以对象 ID 的形式散落在硬盘的每个角落,用 MinIO 自己内部的元数据引擎去管理这些碎片API 端口(默认 9000):这是S3 服务端口。
2026-08-14 17:59:18
646
原创 # Kubernetes(K8s)笔记Day17:使用 EFK 收集和过滤 K8s 日志信息
在Kubernetes集群上运行多个服务和应用程序时,日志收集系统可以帮助我们快速分类和分析由Pod生成的大量日志数据。Kubernetes中比较流行的日志收集解决方案是Elasticsearch、Fluentd和Kibana(EFK)技术栈,也是官方推荐的一种方案。EFK 正是从 ELK 演变而来的,这一演变的核心,是日志收集器从 Logstash 替换成了更轻量、高效的 Fluentd 或 FilebeaFluentd是一个针对日志的收集、处理、转发系统。
2026-08-13 20:06:24
380
原创 The connection to the server localhost:8080 was refused - did you specify the right host or port?
首先,我建议你回到master节点操作。因为如果没有配置,worker节点是没有Kubernetes 管理员的认证凭据(kubeconfig 文件)的。
2026-08-13 19:20:53
25
原创 # Kubernetes(K8s)笔记Day16: Helm v3 管理 Kubernetes 集群
Helm 是Kubernetes 的包管理工具,可以实现 Kubernetes 应用打包、配置管理和生命周期发布标准化,相当于 Linux 环境下的 yum/apt-get。它通过将多个 YAML 资源文件打包成一个Chart,实现了应用的统一部署、升级和回滚。├── charts各文件作用说明文件/目录作用Chart.yamlChart 的元数据信息(名称、版本、维护者等)所有可配置变量的定义文件templates/K8s 资源模板文件目录(Go 模板语法)可复用的模板片段(如生成名称、标签的函数)
2026-08-13 09:34:55
453
原创 # Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
BGP(Border Gateway Protocol,边界网关协议)是一个 Linux 内核原生支持的、专门用在大规模数据中心里维护不同自治系统(AS)之间路由信息的、无中心的路由协议。BGP 的核心作用,是 让不同网络之间互相筛选并通告最佳路径。自治系统(AS):指一个组织管辖下的所有 IP 网络和路由器的全体。例如,一个大型企业、一家云服务商,或者整个 Kubernetes 集群,都可以被视为一个自治系统。特性性能★★★★★★★★★★★★★★★封装开销无有无有网络策略✅ 支持。
2026-08-10 19:55:20
582
原创 对象存储 MinIO 的两种生产环境适用部署方式
部署方式关键命令/文件核心目的Systemd 服务实现开机自启、进程守护、自动恢复Docker 容器实现容器退出或宿主机重启后自动恢复对于 Velero 备份场景,选择 Systemd 或 Docker 方式将 MinIO 运行起来即可。如果需要更高的可用性,可以再考虑部署分布式 MinIO 集群。
2026-08-08 16:08:13
184
原创 # Kubernetes(K8s)笔记Day14 :集群资源备份(etcd,PV)与 Velero 工具实现集群全量备份
备份方式备份源备份目标恢复方式适用场景etcdctl 命令备份etcd 数据库内容(快照)单个.db快照文件使用恢复日常定期备份,压缩比高,恢复速度快文件目录备份目录目录直接替换目录文件快速回滚,作为恢复失败时的安全兜底方案核心操作口诀先停组件(移走 manifests)→ 再删/移目录 → 恢复快照 → 再起组件(移回 manifests)使用kubectl# 导出所有命名空间的所有资源定义# 或简写形式这个方式备份的是 Kubernetes 集群中。
2026-08-08 16:07:22
375
原创 # Kubernetes(K8s)笔记Day13 :工作负载资源概述与 Job (CronJob)控制器
工作负载资源适用场景核心特点Deployment无状态应用(如 Web 服务、API 网关)Pod 相互等价,可随时替换,支持滚动更新和回滚有状态应用(如数据库、消息队列)Pod 有固定身份和独立存储,启停有序DaemonSet节点级支撑服务(如日志采集、网络插件)每个节点上运行且仅运行一个 Pod 副本Job一次性任务(如数据迁移、批量计算)Pod 运行完成后自动退出,不再重启CronJob定时任务(如定期备份、定时报表)按照 Cron 表达式周期性地创建 Job核心概念。
2026-08-08 14:21:52
412
原创 # Kubernetes(K8s)集群版本升级详细总结
升级顺序:严格遵守Master 节点 → Worker 节点的顺序,不可颠倒。升级前必须:备份 ETCD 和业务资源清单,并阅读目标版本的 Release Notes。版本跳跃限制:不允许跨大版本升级,必须逐个小版本递进(如 1.26 → 1.27 → 1.28),并且保证安装的kubelet与kubeadm与目标版本完全一致。测试先行:在测试环境中模拟完整升级流程,并携带业务 Pod 进行功能验证,确认无问题再操作生产环境。实际生产环境中,模拟测试的过程通常在一个月左右。
2026-08-08 09:51:20
251
原创 ingress-nginx-controller 缺少 Secret 与Admission Webhook 证书错误的排错记录
Pod 无法启动不是因为镜像拉取失败(虽然那两个 Admission Pod 确实失败了),而是因为 ingress-nginx-controller 缺少了一个名为 ingress-nginx-admission 的 Secret,这个 Secret 本应由 admission-create 这个 Job 在启动时生成,但由于它自己也没启动成功(可能卡在 ContainerCreating),导致依赖链断裂。需要注意的是,这个解决方法是“紧急避险”,是绕个路,避开了拥挤路段,但是下次还会出现这样的问题。
2026-08-08 08:54:30
238
1
原创 # Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)
Ingress是 Kubernetes 中专门用来管理集群外部流量如何访问集群内部服务的 API 资源(规则文件)。它工作在第七层(应用层,HTTP/HTTPS),能够提供比 Service 更智能、更灵活的路由能力。Ingress 规则是“全集群生效的逻辑规则”,它不依赖于具体的物理节点。无论流量从哪个节点进入,只要集群中的 Ingress Controller 正常运行,规则就会执行。你只需维护一份 Ingress 文件,就能为整个集群提供七层路由能力是一个七层负载均衡调度器。
2026-08-07 19:08:42
481
原创 # Kubernetes(K8s)笔记Day11 : HPA 自动扩缩容
弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行。在实际工作中,我们常常需要做一些扩容缩容操作,如:电商平台在 618 和双十一搞秒杀活动;由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作。扩缩容类型说明Node 层面对 K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容Pod 层面一般使用 Deployment 中的replicas。
2026-08-06 18:51:34
764
原创 Kubernetes(K8s)笔记Day10 :K8s 安全管理机制(认证与授权)
假设有一个 Pod 需要用于管理其他 Pod 或其他资源对象,就需要手动创建一个 Service Account,并在创建 Pod 时进行指定。# 创建一个 Service Account(名称为 test)#查看所有satest 0 7s# 查看 Service Account 详细信息Name: test使用场景。
2026-08-06 12:03:30
466
原创 Kubernetes(K8s)笔记Day09 下 :加密配置管理中心 Secret 讲解与应用实例
简单来说,Secret 就是 ConfigMap 的“加密版”——专门用来存敏感数据的Secret 是 Kubernetes 中用于保存敏感数据的资源对象,如密码、Token、密钥等。它的设计目的与 ConfigMap 类似——将配置与镜像解耦,但专门针对机密性数据。:ConfigMap 存放明文配置(如配置文件),Secret 存放敏感数据(如密码、私钥)。两者功能相似,但 Secret 在存储和传输中做了编码处理。Secret 可以以Volume 挂载或环境变量的方式被 Pod 使用。
2026-08-05 21:47:52
208
原创 Kubernetes(K8s)笔记Day09 上 : 配置管理中心 ConfigMap 详解与应用实例
简单来说,ConfigMap 就是给 Pod 用的“配置文件服务器”。它是一个存储键值对(key/value)的资源对象,专门用来存放非机密的配置数据ConfigMap 中的数据可以通过key/value 键值对的形式保存,也可以通过文件的形式保存。简单讲,我们可以指定变量存入CM,也可以指定一个文件存入CM,只是存入的方式是键值对ConfigMap 旨在将环境配置与容器镜像解耦,让应用配置的修改更加灵活便捷。你可以使用完全相同的容器镜像。
2026-08-05 20:11:51
311
原创 ConfigMap 配置错误导致pod持续处于Error状态的排查记录
这次排错让我深入学习到configmap的一些特性:ConfigMap 的 YAML 文件中的data字段只能接受直接的键值对数据,不能通过文件路径引用的方式来加载内容。因此,想要将整个文件的内容直接导入 ConfigMap,最便捷的方式就是使用命令行的参数简单说,就是ConfigMap的yaml不能引入文件路径,只能引入文件内容,想要直接导入整个文件,最好用命令行的方式创建cm。
2026-08-05 20:10:03
215
原创 Kubernetes(K8s)笔记Day08 :DaemonSet 控制器 ,系统自动污点与 DaemonSet 特殊容忍度, Pod 优先级(QoS Class)
DaemonSet 是 Kubernetes 中的一个工作负载控制器,用于确保集群中的每个节点上都运行一个指定的 Pod 副本。核心行为:节点加入:当新节点加入集群时,DaemonSet 会自动在新节点上创建 Pod节点删除:当节点被删除时,对应的 Pod 会被回收节点移除:当节点被从集群中移除时,其上的 DaemonSet Pod 也会被清理FIELDS:# 查看 rollingUpdate 支持的参数FIELDS:maxUnavailable <string> # 可以指定为数字或百分比。
2026-08-05 11:00:35
209
原创 K8s 卷挂载冲突死锁排错记录
hd1 节点上,一个旧 Pod(sw5kw)卡在 Terminating(终止中),同时一个新 Pod(tm8rz)卡在 ContainerCreating(创建中)——这两个状态叠加在一起,是典型的**“卷挂载冲突”导致的死锁**。执行daemonset.yaml ,却发现hd1节点的pod始终没有完成创建,一直在卡。事件显示,是是 Calico 网络插件认证失败 导致 Pod 无法启动。这是我的yaml文件,在三个节点上部署日志采集pod。一般情况下,直接强制删除哪个卡死的pod就行了。
2026-08-05 10:31:45
252
原创 Kubernetes(K8s)笔记Day07: StatefulSet 有状态控制器详解与使用案例
操作行为扩容(replicas 增加)web-0→web-1→web-2缩容(replicas 减少)web-2→web-1→web-0滚动更新(修改镜像等)按序号从大到小逆序更新:先更新web-2,再web-1,最后web-0Pod 重建(故障恢复)保留原名称(如web-0),并自动挂载回原有的 PVC(www-web-0设计理念。
2026-08-04 20:53:50
500
原创 Kubernetes(K8s)笔记Day05:Service四层代理,kube-proxy流量转发, CoreDNS服务发现
一组 Pod 的“稳定访问入口”和“内置负载均衡器”。该策略由 API Server 存储下发,并由各节点上的 kube-proxy 组件驱动 Linux 内核规则(iptables/IPVS)实际执行流量转发,业务流量全程不经过 API ServerCoreDNS 本质上是一个 DNS 服务,Kubernetes 使用 CoreDNS 解决集群内的服务发现问题。服务发现:Pod 可以通过 Service 域名访问其他 ServiceDNS 解析:解析集群内部和外部域名。
2026-08-04 12:25:42
219
原创 Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
一句话总结:它是一种显式定义的、生命周期与 Pod 绑定的、用于 Pod 内多容器间共享临时数据的存储卷emptyDir类型的 Volume 是在 Pod 分配到 Node 上时被创建的,Kubernetes 会在 Node 上自动分配一个目录,因此无需指定宿主机上对应的目录文件。目录的初始内容为空当 Pod 从 Node 上移除时,emptyDir中的数据会被同步删除可用于Pod 内多容器间共享临时数据默认情况下使用的是节点(Node)的本地磁盘(如 kubelet 的根目录)。但它。
2026-08-04 12:02:52
824
原创 # Kubernetes(K8s)笔记Day02 (下):K8s高可用集群部署全流程
基础环境配置(主机名、hosts、防火墙、内核参数、时间同步等)Keepalived + Nginx 实现 API Server 高可用负载均衡Docker + cri-dockerd 容器运行时的安装与配置kubeadm 初始化集群,加入控制节点和工作节点Calico 网络插件的部署与验证集群高可用性测试按照上述步骤操作,即可获得一个生产级可用的高可用 Kubernetes 集群。所有代码块均保留并可直接执行,请根据实际环境调整 IP、网卡名称和版本号。
2026-08-01 10:58:00
253
3
原创 Kubernetes(K8s)笔记Day04:控制器(ReplicaSet 与Deployment),滚动更新及回滚,滚动更新策略,Pod 的 DNS 策略
控制器是 Kubernetes 中用于管理 Pod 的中间层,能够监测 Pod 运行状况,当 Pod 发生故障时可以自动恢复 Pod。功能说明故障恢复Pod 发生故障时,控制器会尝试重启 Pod 或里面的容器自动补全Pod 副本数量低于期望值时,自动创建新的 Pod 副本自动终止Pod 副本数量多余期望值时,自动终止多余的 Pod 资源重新编排如果一直重启有问题,控制器会基于某种策略进行重新布派或重新编排确保每一个 Pod 资源始终处于我们所定义或者我们所期望的目标状态。
2026-07-29 20:56:48
383
原创 Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
pod是什么?Pod,在英文中是豆荚的意思,在这里,容器就像是豆子,Pod就是豆荚。所以,Pod是存放容器的容器,或者说是一个容器组,Pod是对容器的二次封装。就像同一个豆荚中的豆子共享豆荚的养分一样,Pod 内的容器共享存储、网络等资源相当于一个共享网络和存储的逻辑主机,内部封装了一个或多个紧密协作的应用容器Pod 是 Kubernetes 中的最小调度单元,K8s 通过定义 Pod 资源,在 Pod 内运行一个或多个容器。容器需要指定镜像,用于运行具体服务。
2026-07-28 20:40:58
292
2
原创 Kubernetes(K8s)笔记Day01:K8s介绍与工作原理
Kubernetes 是一个可移植的、可扩展的开源容器编排平台,用于自动化部署、伸缩和管理容器化应用。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具广泛可用。“Kubernetes” 源于希腊语,意为"舵手"或"飞行员"。发展历程:Google在2014 年开源了 Kubernetes 项目Kubernetes 建立在 Google 在大规模运行生产工作负载方面十几年的经验基础上结合了社区中最好的想法和实践在英文中,Pod是豆荚的意思。
2026-07-24 14:35:41
268
原创 # Kubernetes(K8s)笔记Day02(上):K8s集群安装与配置全流程
组件作用部署位置集群统一 API 入口Masteretcd分布式键值存储,保存集群状态MasterPod 调度Master控制器管理,维护集群状态Masterkubelet节点代理,管理 PodAllkube-proxy网络代理,实现 Service 负载均衡All容器运行时运行容器的底层引擎AllCNI 插件(Calico)Pod 网络通信All。
2026-07-23 19:49:06
659
原创 #企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
Docker 容器应用的开发和运行离不开可靠的镜像管理。虽然 Docker 官方也提供了公共的镜像仓库(Docker Hub),但从安全和效率等方面考虑,部署私有环境内的 Registry 也是非常必要的。Harbor功能说明权限管理(RBAC)基于角色的访问控制,精细化管理用户权限LDAP 集成支持与企业 LDAP/AD 认证系统对接日志审核记录所有镜像操作日志,便于审计管理界面提供图形化 Web 管理界面自我注册用户可自行注册账号镜像复制支持跨 Harbor 实例的镜像同步中文支持原生支持中文界面。
2026-07-23 10:19:24
176
原创 # Docker 笔记Day02:企业级应用镜像构建,Docker文件系统驱动,容器网络,镜像瘦身,容器编排
在启动Docker服务的时候,会生成一个 docker0的虚拟网桥(相当于逻辑上虚拟的交换机和网卡的双重角色)。这个网桥会被分配172.17.0.1/16的网段这是容器中的网络,除了回环地址,还有一个eth0的接口。/ # ipaddr那么eth0和vethxxxx又是什么呢?网桥docker0位于宿主机,docker0可以通过宿主机物理网卡连接外网。图中的veth pair是一条虚拟网线,用于连接网桥和容器,这条虚拟网线在网桥(或者说在宿主机上)的端口叫veth xxx,在容器的端口叫eth0。
2026-07-22 16:37:36
303
原创 # Docker 笔记Day01:仓库配置与软件安装,基础命令,数据卷,Dockerfile构建镜像(附核心命令速查表)
资源地址Docker 官网Docker Hub(国内)Docker Hub(国际,需科学上网)定义匿名数据卷,在启动容器时如果用户没有挂载数据卷,会自动挂载到匿名卷。避免重要的数据因容器重启而丢失(这是非常致命的)避免容器不断变大VOLUME ["<路径1>", "<路径2>..."]VOLUME <路径>指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在(WORKDIR 指定的工作目录必须是提前创建好的)。
2026-07-21 15:02:22
452
原创 # Linux笔记:操作系统优化与资源管理
每秒接收(rx)和发送(tx)的数据量,单位是千字节(KB/s)。一般来说,只需要对处理高并发请求的服务器(前端服务器、后端服务器、数据库服务器)进行内核参数调优即可。:公司的服务器很卡,查看CPU使用率不高,内存也够用,但是就是卡,尤其时在打开新程序或者文件的时候,更卡,此时问题出现在哪?CPU 使用率反映 CPU 的忙碌情况。为了降低磁盘负载,可以采用性能更高的磁盘(SSD)或者降低磁盘的操作频率(异步写、合并写)大量的写入操作,会导致磁盘io的饱和度非常高,会对cpu造成一定的影响,但是不大。
2026-07-19 12:07:16
209
原创 # Linux 系统资源查看命令总结(附命令快查表)
top:动态监控,适合实时查看系统负载和找出高 CPU/内存的进程free:快速查看内存剩余,关注available列df:快速查看磁盘空间,关注Use%列ps:静态快照,适合结合grep精确查找某个进程的 PID/PPIDnetstat/ss:查看端口监听和网络连接状态,ss效率更高:终止异常进程,优先使用kill -15,无效时再使用kill -9。
2026-07-16 20:35:18
375
原创 # Linux CICD 实战笔记:GitLab服务部署,Jenkins 服务部署,CICD自动集成与自动交付
GitLab 是一个开源的 Git 仓库服务器,用于实现代码集中托管。分为企业版和CE 社区版软件包部署容器部署本实验采用容器部署方式。术语全称说明CI持续集成:频繁将代码集成到主干,自动构建和测试CD持续交付/部署:自动将代码部署到生产环境不要安装推荐插件,选第二个点击无,跳过插件安装(使用离线插件包)技能说明GitLab 远程仓库掌握使用容器构建 GitLab 服务的方法GitLab 使用方法掌握用户、组、项目的创建和管理Jenkins 工作原理理解 CI/CD 流程中 Jenkins 的角色。
2026-07-11 12:52:21
462
原创 # Linux实战笔记-HIS项目实战Day01:版本控制与Git基础
HIS英文全称,中文全称医院信息系统。临床诊疗药品管理财务管理患者管理前端是互联网行业术语,主要是创建web或者app的前端页面,结果是呈现给用户的内容。开发者通过前端语言,开发出各种前端框架和技术,从而实现各种产品用户页面的交互。框架概念:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法。另一种定义认为,框架是可被应用开发者定制的应用骨架。为什么使用框架随着业务的扩大,需求的提升,开发框架可以不断升级。
2026-07-09 18:34:33
279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅