Kubernetes 知识点目录
- Kubernetes 基础
1.1 什么是 Kubernetes
• 容器编排的概念
• Kubernetes 的发展历史
• 云原生和 Kubernetes 的关系
1.2 Kubernetes 的架构与工作原理
• Master 和 Node 的角色划分
• 控制平面(Control Plane)
• 集群状态的声明式管理
1.3 Kubernetes 的基本术语
• Pod、Node、Cluster、Namespace
• Label 和 Annotation
• Selector 和 FieldSelector
1.4 配置文件与资源定义
• YAML 文件结构和语法
• Kubernetes 对象的四个字段(apiVersion, kind, metadata, spec)
1.5 kubectl 工具
• 常用命令
• 命令参数详解(如 kubectl get, kubectl describe, kubectl apply)
• 调试技巧(如 kubectl exec, kubectl port-forward, kubectl debug)
- 核心组件
2.1 Master 节点组件
• API Server:架构与工作流程、认证授权、准入控制
• Scheduler:调度器算法、调度策略(Spread, Affinity)
• Controller Manager:控制器种类(ReplicationController, NodeController)
• etcd:分布式存储的作用与使用、备份与恢复
2.2 Node 节点组件
• Kubelet:与容器运行时的交互、Pod 生命周期管理
• Kube-Proxy:实现原理、iptables 模式与 IPVS 模式
• CRI:容器运行时接口(Containerd、CRI-O、Docker 支持情况)
2.3 插件与扩展
• 插件分类(CNI、CSI、CRI)
• 动态加载与热更新
- 核心资源与对象
3.1 Pod
• Pod 的定义与多容器模型
• InitContainer 的使用
• Pod 生命周期与状态(Pending, Running, Succeeded, Failed)
3.2 ReplicaSet 和 Deployment
• 部署与副本控制的区别
• 滚动更新与回滚机制
• Deployment 策略(Recreate, RollingUpdate)
3.3 StatefulSet
• StatefulSet 的特性(稳定网络标识、持久存储)
• 应用场景(如数据库、分布式存储)
• Headless Service 的使用
3.4 DaemonSet
• 特性与场景(如日志采集、监控 Agent)
• 滚动更新与策略
3.5 Job 和 CronJob
• Job 的完成策略(非并行、并行)
• CronJob 的时间调度规则
3.6 ConfigMap 和 Secret
• 区别与最佳实践
• 数据加密与安全传输
• 使用 ConfigMap 和 Secret 配置容器
3.7 Namespace
• 资源隔离与多租户支持
• 默认 Namespace 与自定义 Namespace
3.8 Service
• Service 的四种类型(ClusterIP, NodePort, LoadBalancer, ExternalName)
• Headless Service 和 StatefulSet 的结合
• 服务发现与 DNS
3.9 Ingress
• Ingress 控制器(如 NGINX, Traefik, HAProxy)
• 路由规则与 TLS 配置
• Ingress 的高级特性(Rewrite, Load Balancing)
3.10 Volume 与存储资源
• Volume 类型(emptyDir, hostPath, NFS, Ceph, GlusterFS)
• PV 和 PVC 的绑定
• StorageClass 的动态存储供应
- Kubernetes 网络
4.1 Kubernetes 网络模型
• 三层网络(Pod 网络、Service 网络、外部网络)
• Kubernetes 网络的特点(Pod 间直接通信、IP 隔离)
4.2 Service 的实现原理
• iptables 与 IPVS 实现
• External IP 和 LoadBalancer 配置
4.3 CNI 插件
• Flannel(Overlay 模式与 Host-GW 模式)
• Calico(BGP, Policy Enforcement)
• Cilium(基于 eBPF 的高性能网络)
4.4 网络策略(Network Policy)
• 网络策略的语法与配置
• Policy 的作用域与限制
4.5 Ingress 网络
• 多 Ingress 控制器的兼容性
• Ingress 网络中的 TLS 终结
- 安全性
5.1 RBAC(Role-Based Access Control)
• Role 和 ClusterRole 的定义
• RoleBinding 与 ClusterRoleBinding
• 最小权限原则(Least Privilege Principle)
5.2 ServiceAccount
• ServiceAccount 的定义与关联
• Pod 与 ServiceAccount 的绑定
5.3 Pod 安全策略(PSP)
• PSP 的配置项(如 RunAsUser, Privileged, Capabilities)
• PodSecurityAdmission 替代 PSP 的特性
5.4 数据加密与机密管理
• Secret 数据的加密存储
• etcd 数据加密配置
- 存储与持久化
6.1 Kubernetes 存储概述
• Kubernetes 对持久化存储的支持
6.2 Volume 的类型与使用场景
• emptyDir:临时存储
• hostPath:主机目录映射
• PersistentVolume(PV)与动态存储供应
6.3 CSI 插件
• CSI 的架构与原理
• 常用存储驱动(如 Ceph CSI, AWS EBS CSI)
- 调度与扩展
7.1 调度器的工作机制
• Scheduler 的工作流程
• 自定义调度器的使用
7.2 自动扩展
• Horizontal Pod Autoscaler(HPA)
• Vertical Pod Autoscaler(VPA)
• Cluster Autoscaler
7.3 节点亲和性与抗性
• NodeSelector 与 NodeAffinity
• Taints and Tolerations 的使用场景
- 运维与管理
8.1 集群安装工具
• kubeadm
• Kops
• Kubespray
8.2 灾难恢复与备份
• etcd 数据备份与恢复
• 集群状态检查与恢复
8.3 配置管理
• Helm
• Kustomize
8.4 日志与监控
• Fluentd 日志收集
• Prometheus 集群监控
• Grafana 可视化展示
- 高级特性
9.1 CRD(Custom Resource Definition)
• 自定义资源的创建与注册
• CRD 的版本控制
9.2 Operator 模式
• Operator 的设计理念
• Operator SDK 的使用
9.3 Admission Controller
• 准入控制器的种类(Validating, Mutating)
- 企业级扩展
10.1 多集群管理
• Karmada
• Cluster API
10.2 服务网格
• Istio
• Linkerd
10.3 企业级最佳实践
• 生产环境的集群设计
• 高可用架构与优化策略