Helm 安装及配置 1. 使用官方 get-helm-3 脚本安装的 Helm v3.18.3 # 下载最新版本 Helm curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 # 授予执行权限并安装 chmod 700 get_helm.sh ./get_helm.sh # 验证安装 [root@k8s-master ~]# helm version version.BuildInfo{Version:"v3.18.3", …
Kubernetes Service 配置解析与外部应用访问 一、Service 基础配置解析 apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app # 选择器,匹配Pod标签 ports: - protocol: TCP port: 80 # Service暴露的端口 targetPort: 8080 # Pod上的端口 type: ClusterIP # Service类型 核心字段解析: selector: 通过标签选择器关联Pod ports: 端口映射配置 port: …
Kubernetes 中,Service、Endpoint 和 Pod 的关系 1. Pod 最小部署单元:Pod 是 K8S 中最小的调度单位,包含一个或多个容器(通常为 1 个)。 动态生命周期:Pod 是临时的,可能因故障、扩缩容或节点调度被重建,导致 IP 变化。 独立 IP:每个 Pod 有独立的集群内 IP(但不可靠,重启后会变化)。 2. Service 抽象服务层:Service 为一组功能相同的 Pod 提供稳定的访问入口(VIP),屏蔽 Pod 的动态变化。 核心功能: 服务发现:通过标签选择器(Label Selector)关联后端 Pod。 负载均衡:将请求均匀分发到 …
Kubernetes 资源调度 HPA:Pod基于负载指标进行水平扩缩容 安装 metrics-server 使用 HPA(Horizontal Pod Autoscaler)首先需要安装 metrics-server。
Kubernetes DaemonSet 实战:部署 Fluentd 日志收集程序 DaemonSet 核心知识点 DaemonSet 特性: 确保集群中每个节点(或符合特定条件的节点)运行一个 Pod 副本 当新节点加入集群时自动部署 Pod 适合部署系统级服务(如日志收集、监控代理等) 与 Deployment 的区别: Deployment 关注的是应用实例数量 DaemonSet 关注的是节点覆盖 典型使用场景: 日志收集(如 Fluentd、Filebeat) 节点监控(如 Prometheus Node Exporter) 网络插件(如 Calico、Weave) …
Kubernetes StatefulSet 级联删除与非级联删除 一、基本概念 1. 级联删除(Cascading Delete) 定义:删除 StatefulSet 时,自动删除其管理的所有 Pod 及关联的存储卷(PVC)。 行为:默认策略,确保资源完全清理。 适用场景:需要彻底清理 StatefulSet 及其所有依赖资源的场景。 2. 非级联删除(Non-Cascading Delete / Orphan) 定义:仅删除 StatefulSet 对象,保留其管理的 Pod 和存储卷(PVC)。 行为:Pod 和 PVC 变为“孤儿资源”,需手动管理。 适用场景:保留 Pod 数据或 …
Kubernetes StatefulSet 在删除 Pod 时才触发更新(OnDelete 策略) 一、核心机制:OnDelete 更新策略 1. 定义 在 StatefulSet 的 updateStrategy 中设置为 OnDelete 时,只有手动删除 Pod 后,StatefulSet 才会创建新版本的 Pod。
Kubernetes StatefulSet 灰度发布与金丝雀发布 一、基本概念 1. 灰度发布(Gray Release) 定义:逐步将新版本应用部署到部分 Pod,通过流量控制(如 Ingress 规则)让部分用户访问新版本,验证稳定性后全量发布。 适用场景:需要验证新版本功能或稳定性的有状态服务(如数据库、消息队列)。 2. 金丝雀发布(Canary Release) 本质:一种特殊的灰度发布,通常先部署**少量 Pod(金丝雀)**接收生产流量,确认无问题后再扩展新版本。 StatefulSet 实现:通过 partition 字段控制更新的 Pod 范围,实现分阶段更新。 …
Kubernetes StatefulSet 扩容/缩容与滚动更新 一、StatefulSet 扩容与缩容 1. 扩容(Scale Out) 命令: kubectl scale sts <statefulset-name> --replicas=<desired-number> 或直接修改 YAML 的 replicas 字段并 apply。 特点:
Kubernetes StatefulSet 简单示例模板 apiVersion: apps/v1 kind: StatefulSet metadata: name: web # StatefulSet 名称 labels: app: nginx # 应用标签 spec: serviceName: "nginx" # 关联的Headless Service名称,用于网络标识 replicas: 3 # 副本数量 selector: matchLabels: app: nginx # 必须匹配spec.template.metadata.labels # Pod …