k8s 基本架构

基于Kubernetes(K8s)的核心设计,以下是其关键基本概念的详细解析。这些概念构成了K8s容器编排系统的基石,用于自动化部署、扩展和管理容器化应用。

一、K8s核心概念概览

K8s的核心对象围绕容器生命周期管理、资源调度和服务发现展开,主要包括:

  1. **Pod**
  • **定义**:K8s最小调度单元,封装一个或多个紧密关联的容器(如主应用容器+辅助sidecar容器)。

  • **特性**:

  • 共享网络命名空间(同一IP地址)和存储卷(Volumes)。

  • 原子调度:Pod内容器始终部署在同一节点,同生共死。

  • 生命周期短暂:故障后会被重建,但IP可能变化。

  • **示例**:一个Web应用Pod可能包含Nginx容器和日志收集容器。

  1. **容器(Container)**
  • **定义**:轻量级、可移植的运行环境,打包应用代码、依赖库和配置文件。

  • **特性**:

  • 基于Linux命名空间和cgroup实现资源隔离(CPU、内存)。

  • 快速部署:秒级启动,比虚拟机更轻量。

  • 环境一致性:确保开发、测试、生产环境相同。

  • **示例**:Docker容器运行Python Flask应用,包含Python解释器和代码。

  1. **节点(Node)**
  • **定义**:K8s集群的计算单元,可以是物理机或虚拟机。

  • **类型**:

  • **Master Node**:运行控制平面组件(如API Server、Scheduler)。

  • **Worker Node**:运行应用容器,核心组件包括:

  • **Kubelet**:代理程序,管理Pod和容器生命周期。

  • **Kube-proxy**:处理网络路由和负载均衡。

  • **容器运行时**(如Docker或Containerd):负责拉取镜像、启动容器。

  1. **控制器(Controllers)**
  • **定义**:通过API Server监控资源状态,确保实际状态与期望状态一致。

  • **常见类型**:

  • **Deployment**:管理无状态应用,支持滚动更新和扩缩容。

  • **StatefulSet**:管理有状态应用(如数据库),保证Pod顺序和身份。

  • **DaemonSet**:确保每个节点运行一个Pod副本(如日志收集)。

  • **示例**:控制器自动重启故障Pod或根据负载增加副本数。

  1. **服务(Service)**
  • **定义**:抽象Pod集合,提供稳定的网络访问入口和负载均衡。

  • **特性**:

  • 解耦应用与Pod动态变化(IP漂移)。

  • 支持多种服务类型:

  • **ClusterIP**:内部集群访问。

  • **NodePort**:暴露服务到节点端口。

  • **LoadBalancer**:云提供商负载均衡器。

  1. **命名空间(Namespace)**
  • **定义**:虚拟划分集群资源,用于多团队或环境隔离(如开发、测试)。

  • **特性**:资源配额和访问控制(RBAC)可作用于命名空间。

二、核心概念关系图

```mermaid

graph LR

A应用 --> B(Pod)

B --> C容器1

B --> D容器2

B --> E共享存储

B --> F共享网络

G控制器 --> H管理Pod状态

IService --> J负载均衡Pod流量

KNode --> Lkubelet

K --> Mkube-proxy

K --> N容器运行时

```

三、关键特性总结

  • **声明式管理**:通过YAML文件定义应用期望状态(如副本数),K8s自动维持一致性。

  • **高可用性**:自动检测故障并重启/迁移Pod。

  • **弹性伸缩**:基于负载动态扩缩容(如Horizontal Pod Autoscaler)。

  • **服务发现**:Service自动更新DNS记录,简化容器间通信。

这些概念共同支撑K8s作为云原生应用的"分布式操作系统",实现自动化运维和资源优化。如需深入特定概念(如控制器或网络模型),可进一步探讨。

相关推荐
ShirleyWang0121 天前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
spider_xcxc1 天前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
ShirleyWang0122 天前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s
ShirleyWang0122 天前
DAY01 K3s 私有化部署排障复盘与 SOP
linux·服务器·k8s·k3s·企业部署
XUHUOJUN5 天前
AKS 不是安装在 Windows Server 上,而是运行在 Windows Server 之上的 Azure 平台能力
windows·架构·k8s·azure local·azure stack
Geek-Chow5 天前
Connecting kubectl to a Private EKS Cluster Over an Internal Domain
kubernetes·k8s·aws
spider_xcxc7 天前
Docker Compose 容器通信详解:同一个 Compose 文件才能互通吗?
docker·容器·k8s·容器化·容器网络
欢醉12 天前
k8s调用服务异常cannot allocate memory
kubernetes·k8s
万里侯15 天前
GitOps 漂移检测:集群里改了配置,Git 还以为一切正常
微服务·容器·k8s
spider_xcxc17 天前
云上网络基石(阿里云):深入解读阿里云VPC及其应用生态
网络·阿里云·云计算·k8s·运维开发·虚拟化