Kubernetes介绍
Kubernetes介绍
Kubernetes详细教程(一):入门、架构及基本概念-CSDN博客
官方文档
• Kubernetes(简称k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。
• 它的核心功能包括自动化容器部署、负载均衡、自我修复、存储编排以及跨集群资源管理。
• 通过Kubernetes,企业能够高效管理大规模的容器化应用,确保应用的高可用性和弹性扩展。
简单来说,Kubernetes 是容器时代的 “操作系统”,让分布式应用的管理变得简单、高效、可靠。
核心功能
自动调度:将容器放到K8S集群的任意节点中,并根据容器需要和节点负载决定目标节点。
自动修复:当健康检查发现节点问题,系统会自动将节点上的资源进行转移,并恢复功能。
自动缩扩容:通过预定义负载指标,根据指标自动触发动态缩扩容行为。
基本架构
Kubernetes架构可简单分为主节点(Master)、从节点(Node)和数据库ETCD。
Master为控制节点,负责整个集群的管理控制
Node的作用是承接工作负载
在官方文档中,又将Kubernetes架构分为两大部分:控制平面(Control Plane) 和 工作节点(Node)
1. 控制平面(管理集群的核心组件)
- API Server:所有操作的统一入口(如部署应用、查询状态),接收并处理用户 / 组件的请求。
- ETCD:集群的 “数据库”,存储集群的所有配置数据(如 Pod 定义、服务规则),保证数据一致性。
- Scheduler:负责容器(Pod)的调度,根据节点资源(CPU、内存)、亲和性规则等选择最优节点运行容器。
- Controller Manager:运行多种控制器进程(如 Deployment 控制器、Node 控制器),确保集群状态与期望状态一致(如维持 Pod 副本数)。
- Cloud Controller Manager:对接云服务商 API(如 AWS、GCP),实现与云服务的集成(如负载均衡、存储卷创建)。
2. 节点(运行容器的工作节点)
每个节点是一台物理机或虚拟机,包含以下组件:
- Kubelet:运行在每个节点上的代理,负责监控容器状态,确保容器按 Pod 定义运行。
- Kube-proxy:节点网络代理,负责维护节点上的网络规则,实现 Service 的负载均衡和 Pod 间通信。
- Runtime:负责运行容器的底层引擎(如 Docker、containerd、CRI-O 等,需兼容 CRI 接口)。
核心概念
- Pod: Kubernetes 管理的最小可部署单元。一个 Pod 包含一个或多个紧密耦合的容器(共享网络命名空间、存储卷)。通常,一个 Pod 只运行一个主应用容器和可能的辅助容器(如日志收集)。
- Deployment: 最常用的控制器对象,用于声明式地管理 Pod 的无状态应用。它负责创建、更新、回滚和确保指定数量的 Pod 副本始终运行。支持滚动更新。
- Service: 定义一组 Pod 的逻辑集合和访问它们的策略。为 Pod 提供稳定的网络端点(IP/DNS),实现负载均衡和服务发现。即使 Pod 的 IP 地址变化,Service 的访问点保持不变。
- ConfigMap & Secret: 用于将配置数据和敏感信息(分别)与容器镜像解耦,便于配置管理和安全。
- Volume: 为 Pod 中的容器提供持久化存储的能力,即使容器重启,数据也能保留。支持多种存储后端。
- Namespace: 用于在同一个物理集群中创建多个虚拟集群(逻辑分区),实现资源隔离(如为不同团队、项目或环境划分资源)。
- Ingress: 管理外部访问集群内服务的入口(通常是 HTTP/HTTPS),提供负载均衡、SSL 终止和基于名称的虚拟主机等功能。
- StatefulSet: 用于管理有状态应用(如数据库)的控制器,为每个 Pod 提供稳定的网络标识符和持久化存储。
- DaemonSet: 确保集群中所有(或部分)节点上都运行一个指定 Pod 的副本(常用于日志收集、监控代理等)。
- Job / CronJob: 用于运行一次性任务或定时任务。
与 Docker Compose 的对比
- Docker Compose 适合单机或小规模容器编排(开发 / 测试场景),依赖手动管理。
- Kubernetes 适合大规模、生产环境的容器集群管理,提供自动化、高可用、弹性伸缩等核心能力。
操作实践
1 | docker image load -i /root/kuboard.tar |
进入http://192.168.200.120:8018
用户名:admin
密码:Kuboard123

Kubernetes集群-导入集群
在终端执行命令cat /etc/kubernetes/admin.conf
将输出的信息复制到kubeconfig窗口
最后点击导入集群



kubernetes-集群信息查看
1 | kubectl get pods # 查看所有 Pod |
kubernetes-资源创建命令
1 | # 创建 Pod |