- 博客(45)
- 收藏
- 关注
原创 【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
注入方式解决的是配置如何进入 Pod,但当应用需要在多个环境里运行时,每个环境的配置都有差异,手动维护每个环境的 ConfigMap 和 Secret 会变得很麻烦,这就轮到 Kustomize 出场了。Kustomize 把多环境的配置差异组织清楚了,但它输出的仍然是一份份最终的 YAML,接下来还需要一种机制把这些 YAML 持续、可靠地应用到集群里,这就是 Argo CD 要解决的问题。每一环都解决上一环留下的问题,串起来之后,配置管理就不再是零散的对象和工具,而是一个有顺序的流程。
2026-09-11 09:00:00
268
原创 【K8s】串起 K8s 安全链路:从身份到资源上限
ResourceQuota 作用于命名空间,限制的是聚合值,比如整个命名空间所有 Pod 的 CPU 和内存请求总量、上限总量,以及 Pod、Service、Secret、ConfigMap 等对象的数量。复习的时候,可以拿一个工作负载依次过一遍:它的 ServiceAccount 是否必要,RBAC 是否够小,NetworkPolicy 是否覆盖,资源是否有上限。这条链路从 Pod 的身份出发,先确定它是谁,再规定它能对集群做什么,接着限制它能和谁通信,最后约束它能消耗多少资源。
2026-09-10 22:37:45
182
原创 【K8s】一条请求的“通关之旅”
打开大门,让外部流量进来HTTPRoute:看请求的特征,决定交给哪个 ServiceService:提供一个稳定的访问入口Endpoints:记录这个 Service 背后有哪些 Podkube-proxy:维护转发规则,把流量负载均衡到具体的 PodPod:真正处理请求的业务容器理解这条链路,就像是拿到了一张 Kubernetes 网络的“导航地图以后再碰到网络不通的问题,我们就可以顺着这张地图去排查:是路由规则没匹配上?是 Service 的选择器没选到 Pod?
2026-09-09 23:06:27
243
原创 【K8s】聊聊Argo CD:我理解的GitOps持续交付工具
Argo CD 是一个让 Git 仓库成为集群状态“唯一事实来源”的持续交付工具。更具体一点,它是一个运行在 K8s 集群里的控制器(Controller)。它会持续盯着两边的状态——一边是你 Git 仓库里定义的应用应该长什么样(期望状态),另一边是集群里应用实际长什么样(实际状态)——然后不断让实际状态向期望状态靠拢。Argo CD 本身是 CNCF 的毕业项目,其稳定性经过了大规模生产环境的验证。
2026-09-07 17:36:11
440
原创 【K8s】认识Kubernetes API:从CRD出发的一次梳理
Kubernetes API是集群的统一入口,所有操作——不管是kubectl、内部组件还是外部工具——都得通过它API是声明式的,你告诉系统“要什么”,而不是“怎么做”资源是API操作的对象,Pod、Service、Deployment都是资源,kubectl api-resources可以查看所有资源和API交互有三种方式:kubectl(最常用)、编程客户端库(适合写程序)、直接调用REST API(最灵活)能和API交互的组件。
2026-09-06 22:41:47
554
原创 【K8s】Kustomize管理
Kustomize 是 Kubernetes 原生的配置管理工具,采用 “(基础 + 覆盖)” 的非侵入式设计。与 Helm 的“模板参数替换”不同,Kustomize不引入模板语法(如),而是直接操作合法的 KubernetesYAML 文件,通过声明式叠加(Patch) 来生成不同环境的配置。核心优势无模板、无 DSL:所有文件都是标准 K8s YAML,kubectl可直接识别原生集成直接支持 Kustomize,无需安装额外工具GitOps 友好。
2026-09-04 22:50:44
303
原创 【K8s】从四个维度看Kubernetes集群管控
管控维度需要限制的内容K8s对应的手段资源消耗CPU、内存、存储空间网络流量Pod间的通信白名单API权限Pod能对集群做的操作调度位置Pod能被调度到哪些节点上K8s 的集群管控聚焦资源、网络、权限、调度四个维度,对应工具分别是 ResourceQuota/LimitRange、NetworkPolicy、RBAC 以及 Taints/Tolerations 与 NodeAffinity。理清这四根支柱,就把握住了 K8s 治理的主线。
2026-09-04 22:18:09
492
原创 有状态应用 vs 无状态应用
在学习Kubernetes的控制器的时候,我们知道“Deployment控制器适用于无状态应用,StatefulSet控制器适用于有状态的应用”,那么,什么是有状态,什么又是无状态?一起来看看他们的区别。
2026-09-03 21:09:52
341
原创 【K8s】走进Pod
Pod是K8s最小调度单元,由Pause容器持有共享网络/存储,业务容器共同运行;提供稳定IP、本地通信与原子生命周期。Pod是“进程组”逻辑主机,应用为业务实体、容器为载体。底层通过Docker container网络模式实现共享网络。
2026-09-02 21:46:00
353
原创 RH124问答11:访问Linux文件系统
举例:在 /etc/fstab 末尾添加一行 /dev/sdb1 /mnt/data ext4 defaults 0 0,然后运行 mount -a 测试挂载是否成功,下次启动会自动挂载。-p,显示设备的完整路径(如 /dev/sda1)),并提供文件系统类型、挂载点、UUID等详细信息,适合脚本处理或需要完整设备路径的场景。例如,将/dev/sda1挂载到/boot,那么访问/boot目录就相当于访问/dev/sda1分区的内容。列出所有块设备的层次关系,默认显示名称、大小、挂载点等核心信息,非常直观。
2026-06-20 08:00:00
576
原创 RH124问答10:安装和更新软件包
RPM是一个低级别的软件包管理器,负责处理单个RPM软件包的安装、卸载和查询等操作。它的核心任务是解析RPM包文件的内容,完成软件包在系统上的安装、卸载和查询,并直接处理文件级别的操作。由于RPM本身不自动处理依赖关系,当需要安装的软件包依赖其他包时,可能会报错并停止安装。
2026-06-19 22:23:23
497
原创 RH124问答9:管理网络
子网掩码是 32 位,其中连续的 1 对应网络位,连续的 0 对应主机位。例如 192.168.1.10 这个IP地址的子网掩码是 255.255.255.0,表示前 24 位(192.168.1)是网络位,后 8 位(.10)是主机位。,通常表示为 8 组 16 位十六进制数,用冒号分隔(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。,使用组播(Multicast)代替,因此一个 /64 子网的理论主机数为 2^64,实际上不会耗尽。它是硬件层面的概念。
2026-06-17 08:00:00
362
原创 RH124问答8:配置和保护SSH
当客户端尝试登录时,服务器会用公钥加密一个随机字符串发给客户端,客户端用私钥解密后返回,服务器验证通过即允许登录,整个过程无需输入密码。具体步骤是:用户先在客户端生成一对密钥(公钥和私钥),然后将。,并且你能通过密钥成功登录,否则你可能会被永久锁在服务器外面。(默认路径,权限应为 600)。命令,看到状态是 active 说名修改生效。值得注意的是,在禁用密码验证前,必须确保。复制到远程服务器的目标用户家目录下的。命令重启sshd服务使配置生效。至少一个用户已经配置了公钥认证。的密钥,存放在需要登录的。
2026-06-16 16:54:37
518
原创 RH124问答6:监控和管理Linux进程
守护进程(Daemon) 是在后台运行的、脱离终端控制的特殊进程,通常以字母 d 结尾(例如 sshd、httpd)。它们没有控制终端,不会因用户注销或终端关闭而停止,由 systemd 或 init 系统管理。守护进程的存在是为了提供持续的后台服务,主要解决以下问题:(1)脱离终端依赖:普通进程启动后依赖于启动它的终端,终端关闭时进程会收到 SIGHUP 信号而终止。守护进程通过脱离终端,确保服务不会因用户退出而中断。(2)长期稳定运行。
2026-06-15 08:00:00
611
原创 RH124问答5:管理本地用户和组
原因:每个用户必须有一个主要组,当以某用户创建文件时,文件的所属组就是该用户的主要组,如果强行删除用户的主要组,可能导致系统中该用户创建的大量文件出现 GID 无对应组名的情况,造成。每行一个用户,由7个冒号分隔的字段组成:用户名:密码占位符:UID:GID:注释:家目录:登录Shell(密码实际存储在 /etc/shadow 中)。每行一个用户,由9个冒号分隔的字段组成:用户名:加密密码:上次修改时间:最小天数:最大天数:警告天数:不活动天数:过期时间:保留字段。
2026-06-14 18:57:14
589
原创 RH124问答4:创建、查看和编辑文本文件
默认情况下,命令从键盘读取输入(标准输入),把结果输出到屏幕(标准输出),错误也输出到屏幕(标准错误)。重定向可以改为从文件读取输入,或将输出和错误保存到文件中,而不是显示在屏幕上。当输入一个命令(如 ls)时,系统会按照 PATH 中列出的目录顺序依次搜索,找到就执行。一个用户可以启动多个shell会话,例如同时打开多个终端标签页,或通过 SSH 多次登录到同一台机器,每个会话都是独立运行的。它的用途:当不需要看到命令的输出或错误时,将它们重定向到 /dev/null 实现“屏蔽输出”。
2026-06-14 16:26:51
663
原创 RH124问答3:从命令行管理文件
与Windows的多盘符(C:、D:)不同,Linux只有一个根,其他存储设备(例如U盘、硬盘分区)需要通过挂载(mount)操作连接到目录树中的某个点才能访问。例如/usr/bin(普通用户命令)、/usr/lib(库文件)、/usr/local(手动编译安装的软件)。大多数特殊字符被保护,但 $(变量)、`(反引号)、\(转义)、!,如系统日志(/var/log)、邮件队列(/var/spool/mail)、缓存等,(8)[^abc]:匹配不是 a、b、c 的单个字符(^ 表示取反)。
2026-06-13 11:16:13
733
原创 RH134问答2:访问命令行
的若干行(默认10行),加 -f 可实时跟踪日志更新,例如 tail -f /var/log/messages。,它接收用户在终端中输入的命令,将其解释给内核执行,并将执行结果返回给终端显示。:Linux的许多高级功能,例如批量操作、脚本自动化、远程管理等,都依赖命令行,GUI只是其上层封装。的若干行(默认10行),例如 head -n 20 /var/log/dnf.log。,适合查看大文件,例如 less /var/log/messages。,适合查看小文件,例如 cat /etc/passwd。
2026-06-12 07:00:00
360
原创 RH124问答1:红帽企业Linux入门
社区发行版是由开源社区或志愿者团体维护的版本,通常免费使用,更新节奏较快,主要依靠论坛和社区提供支持。例如:Fedora、Debian、Arch Linux。企业发行版是由商业公司维护并提供的版本,通常需要付费订阅才能获得。它侧重于长期稳定性、技术支持和认证,生命周期长达5-10年,适合关键业务环境。例如:Red Hat Enterprise Linux (RHEL)。RHEL与Fedora的核心区别:(1)定位不同:Fedora是社区项目,也是RHEL的上游“试验田”;
2026-06-11 20:44:02
379
原创 RH124问答7:控制对文件的访问
文件系统权限是Linux系统中用于控制用户和进程对文件或目录访问权限的机制,它决定了谁能读取、写入或执行某个文件/目录。Linux将访问文件的用户分为三类:所有者(u)、所属组(g) 和 其他用户(o)。针对每一类用户,分别赋予读(r)、写(w)、执行(x) 三种权限。当进程尝试访问文件时,系统会先检查该进程的运行用户是否为文件所有者,再检查是否为所属组成员,最后按其他用户处理,匹配即停止检查并应用对应的权限。使用ls -l 命令查看。
2026-06-10 10:56:45
505
原创 【K8s】监控与升级、ETCD备份与恢复
展示Pod的详细信息(例如:事件、状态、挂载点、节点位置等)。当发现Pod处于Pending、CrashLoopBackOff等异常状态时,使用这条命令查看描述里的Events字段找原因。:查看节点实时的CPU和内存使用量(使用这条命令的前提是已经安装metrics-server了插件)。,包括Pod、Service、Deployment、ConfigMap等资源的定义以及它们的当前状态。:查看所有节点的状态(是否就绪、版本、资源情况)。:驱逐节点上的Pod到其他节点,并标记该节点为不可调度。
2026-06-09 08:00:00
424
原创 【Linux复习】管理SELinux安全性
决定了“谁能访问谁”。文件、目录、端口等资源有其各自的 Type (如 /var/www/html 下的文件是 httpd_sys_content_t,SSH 端口是 ssh_port_t)。所谓SELinux 的策略,就是一系列规则,定义了像 httpd_t 这样的 Domain 能否以及如何访问像 httpd_sys_content_t 这样的资源。布尔值是系统的开关,用于在不重写复杂策略规则的情况下,动态地改变某个特定服务的行为。,意思是没有任何操作是被允许的,除非有明确的规则允许它。
2026-06-08 00:13:59
605
原创 【K8s】资源配额与访问控制
NetworkPolicy(网络策略) 是Kubernetes中用于定义Pod之间或Pod与外部之间网络流量规则的API资源,它实现了网络层的访问控制,类似于防火墙规则,实行的是"白名单制“。它的核心功能有:(1)隔离Pod网络:默认情况下,Kubernetes集群中所有Pod之间可以互相通信(“全连通”)。NetworkPolicy可以限制哪些Pod可以访问特定Pod,哪些外部IP可以访问。(2)控制出入流量:入站流量(Ingress)限制哪些来源可以访问当前Pod;
2026-06-07 08:30:00
358
原创 【K8s】Pod调度、configMaps
节点亲和性 是K8s调度器用来吸引Pod到特定节点的一组规则。它提供了比更强大的功能,支持条件运算符和软硬两种调度策略。节点亲和性分为硬亲和性(Required)和软亲和性(Preferred)两种。其中,硬亲和性要求Pod必须调度到满足规则的节点上,在找不到符合条件的节点的时候,Pod会一直处于Pending状态;软亲和性是指Pod尽量调度到满足规则的节点上,但并不强制,当找不到的受会调度到其他节点,调度器会打分选择最优节点。污点(Taint) 是作用在节点上的一种标记,
2026-06-07 00:07:18
338
原创 【K8s】配置存储卷
Kubernetes Volume(卷) 是Pod中容器可以访问的存储目录,它解决了容器的两个核心问题:容器重启后数据丢失以及同一Pod内多个容器间文件共享。K8s Volume的生命周期与Pod相同,而不是与容器绑定。这意味着:当Pod中的容器重启时,Volume中的数据仍然保留;只有当Pod被彻底删除时,Volume中的数据是否清除才取决于具体的卷类型(例如emptyDir会清除,hostPath或PersistentVolume则可能保留)。
2026-06-05 23:25:45
441
原创 【K8s】健康检查
如果就绪探针失败,kubelet 会将该 Pod 的 IP 地址从所有匹配的 Service 的 EndpointSlice 中移除,确保不会有请求被路由到未就绪的 Pod。:当前 Pod 依赖的后端服务(如数据库、Redis、消息队列)出现故障时,可以将就绪探针设为失败,主动从负载均衡中摘除,避免返回错误响应。:在 Pod 被删除前,先让就绪探针失败,将 Pod 从流量转发中摘除,再执行关闭逻辑,实现零停机。:当 Pod 自身负载过高,可暂时标记为未就绪,让流量转向其他副本,保护自身稳定性。
2026-06-04 08:34:10
445
原创 【K8s】理解Service 对象和 Endpoints 对象
Service 定义“规则”(我要访问谁),Endpoints 定义“结果”(谁能被访问)。kube-proxy 同时监视这两个对象:根据 Service 知道规则怎么配,根据 Endpoints 知道规则指向哪个具体地址。
2026-06-03 23:04:58
410
原创 【K8s】Service发现
此时,运维人员将该Web应用对应的Service类型设置为NodePort。前端Pod只需通过该Service的名称或对应的内部域名发起请求,集群内部的DNS会自动解析为Service的虚拟IP。这样,前端完全不需要关心后端Pod的具体IP变化,实现了服务发现和负载均衡,而且这个服务不会被集群外部访问,保证了内部API的安全性。即使某台节点宕机,只要开发人员切换到另一个正常节点的IP地址和相同的NodePort,仍然可以正常访问应用,因为Service会将发往该节点端口的请求路由到后端正常的Pod上。
2026-06-03 17:28:56
521
原创 【K8s】RBAC和网络策略如何实现访问控制
RBAC防护的是API Server,是对“操作”本身的许可。可以理解为用户登录系统后的操作权限。防护的是Pod 网络,是对“流量”的隔离。可以理解为不同服务器之间的防火墙规则。它们处理的是不同层面的安全问题,没有重叠,也不能相互替代。
2026-06-02 16:24:35
339
原创 【K8s】控制器
ReplicaSet(RS) 是Kubernetes的一个控制器,负责确保指定数量的Pod副本始终在运行。值得注意的是,我们通常不直接使用ReplicaSet,而是通过Deployment控制器间接使用它,因为Deployment提供了滚动更新、回滚等更高级功能。ReplicaSet的核心作用包括:通过副本数量维持机制,确保集群中Pod的实际数量始终与用户期望值一致(多于则删除多余Pod,少于则创建新Pod);借助标签选择器精准识别并管理属于自身的Pod;同时保障Pod稳定性。
2026-06-01 22:48:17
392
4
原创 【K8s】Pod
在 Kubernetes 的早期设计中,这个概念被称为"pause" 容器,可以理解为 Pod 的根容器或基础容器,其主要职责是占位并维护 Pod 的资源,确保 Pod 的生命周期稳定。(1)作用:它是最先启动的容器,负责为整个 Pod 持有网络和 IPC 命名空间。Pod 内所有其他用户容器都会加入(共享)由这个 pause 容器创建的命名空间。(2)为什么需要它。
2026-05-26 23:23:41
585
原创 【K8s】命名空间 Namespace
命名空间(Namespace) 是 K8s 中用于将集群资源划分为多个虚拟集群的机制。它允许在同一物理集群中实现多租户隔离、资源配额管理和环境区分(如开发、测试、生产)。核心作用(1)资源隔离:不同命名空间中的资源(Pod、Service、ConfigMap 等)逻辑上相互独立,但网络默认互通。(2)访问控制:结合 RBAC 可以为不同命名空间设置不同的权限策略。(3)资源配额:使用 ResourceQuota 限制单个命名空间可消耗的 CPU、内存、存储等资源。(4)管理便捷。
2026-05-25 23:30:39
165
原创 【K8s】解惑:K8s 与 Docker 的关系
Kubernetes(K8s)与Docker并非替代关系,而是分工协作。Docker作为容器运行时负责构建镜像和启动容器,而K8s作为编排平台专注于调度和管理。2020年K8s弃用Docker作为默认运行时转向containerd,但Docker镜像仍可兼容使用。两者通过CRI接口实现解耦,K8s支持多种运行时选择。从操作对比可见,Docker适合单机容器管理,K8s则提供自动化扩缩容、故障恢复等集群级功能。实际应用中,开发者常用Docker构建测试镜像,再通过K8s进行生产环境部署和管理。
2026-05-21 13:59:22
813
原创 K8s初探
Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。当容器数量从单个扩展到成百上千时,K8s通过声明式API和自动化能力简化管理,提供自动扩容、故障恢复、滚动更新等功能。其核心架构分为控制平面(APIServer、Scheduler等)和工作节点(Kubelet、KubeProxy等),前者负责全局决策,后者运行实际容器。K8s支持服务发现、负载均衡、存储编排等核心功能,使大规模容器管理变得简单高效。
2026-05-20 23:50:55
552
原创 RH134问答1:提高命令行运行效率
当你输入一个命令(例如 ls、date、grep)时,Shell 会按照 PATH 变量中列出的目录顺序,依次在这些目录中寻找与命令同名的可执行文件。/bin/bash,系统就会强制使用 Bash 来运行它,从而确保脚本中特有的语法(如数组、[[ ]] 条件判断等)能被正确识别。,Shell 模式匹配(如 *.txt)用于匹配文件名,正则表达式用于匹配文本内容,两者 * 含义不同(正则中 * 表示重复前一字符)。等,必须使用 \.、\*、\?,防止 Shell 解释正则中的特殊字符(如 $、*、^、\)。
2026-05-20 22:35:47
535
原创 RH134问答3:分析和存储日志
syslog 消息是遵循标准 syslog 协议的日志消息。它们拥有固定的格式,包含时间戳、主机名、应用程序名称、优先级等信息,易于被系统工具(如 rsyslog)统一收集、分析和路由。大部分系统服务和内核消息都属于此类。非 syslog 消息是不遵循 syslog 协议的日志消息。这通常是某些应用程序为满足特定需求而自定义格式的输出,记录在自定义的日志文件中。
2026-05-19 10:31:13
509
原创 RH134问答2、4:调度未来任务、归档传输文件
放在/etc/crontab文件中,这是cron的主配置文件,通常用于配置系统维护或周期性任务,需要在命令前指定用户名。例如:定义一个周期性系统作业,让系统以 root 用户的身份,每周日凌晨 2 点执行一个备份脚本 /usr/local/bin/backup.sh,并且以 alice 用户的身份,每天下午 3 点执行一个清理任务 /home/alice/cleanup.sh。
2026-05-19 10:06:35
414
原创 RH134问答5:调优系统性能
普通用户将自己拥有的进程(PID是5678)nice值从0改为5,对应的命令是:renice -n 5 -p 5678。例如,将PID为1234的进程的nice值设为10,对应的命令是:sudo renice -n 10 -p 1234。就可以看到进程的 nice 级别,在后面加上 --sort=-nice ,就可以按nice的从高到低的顺序排列。,nice 值越低,对应的进程的优先级越高,进程会获得更多的 CPU 时间;基本语法:renice -n <新nice值> -p <PID>
2026-05-17 23:32:31
237
原创 RH134问答6:管理SELinux安全性
强制访问控制(MAC)是一种由系统根据预先配置的全局策略来管理所有主体(如进程)对客体(如文件)访问的安全模型。在RHEL 9中,SELinux便是MAC的一个具体实现。主要特点:(1)非自主性:用户不能随意覆盖或修改系统强制的安全策略。访问权限由系统策略决定,而非资源所有者。(2)最小权限原则:MAC能够为每个进程(如Web服务器httpd、数据库mysqld)授予其完成任务所需的最小且精确的权限,限制其超出范围的任何操作。(3)更强的防御能力。
2026-05-16 23:47:48
344
原创 RH34问答12:运行容器
(1)轻量化:容器共享宿主机操作系统内核,无需封装完整的客户机操作系统,镜像大小通常为几十到几百 MB(虚拟机为 GB 级)。(2)资源消耗低:容器是进程级隔离,CPU、内存开销远小于虚拟机;同样硬件可运行更多容器实例。(3)启动速度快:容器毫秒至秒级启动,虚拟机需分钟级。(4)可移植性:容器打包应用及其所有依赖(库、配置文件等),可在任何支持 OCI 标准的系统上运行。(5)快速并行运行:可快速创建、销毁大量容器,适合微服务和 CI/CD。(6)隔离机制。
2026-05-16 00:23:35
460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅