kubernetes 概念初识
快速索引命令行,对k8s的概念的快速了解
基础概念
- Master: 集群控制节点,其中的资源存储在etcd中
- kube-apiserver: CRUD 所有资源的唯一入口
- kube-controller-manager: 资源的自动化控制中心
- kube-scheduler: 负责资源调度的进程
- Node: 工作负载节点
- kubelet: 负责 Pod 对应的容器的创建,启停,实现集群管理的基本功能
- kube-proxy: 实现 Kubernetes Service 的通信与负载均衡机制的重要组件
- Docker Engine: 负责本机的容器管理工作
- Pod: 基本的业务单元,每个Pod中都有一个特殊的“根容器”- Pause 容器。 1. 通过 Pause 容器代表整个 Pod 的状态。2. 多个业务容器共享 Pause 容器的 IP 和 Volume,简化业务容器间的通讯和文件共享。 静态 Pod存在于某个具体 Node 的文件中;普通 Pod存储于etcd中,由 Master 进行调度。
- Endpoint: Pod IP + 容器 Port 的形式存在, 1个 Pod 存在0到多个。
- 资源配额限制: Requests 是最小申请量, Limis 是最大允许使用量,尝试超出则进行重启。
- CPU: 100~300m 等价于 0.1 ~ 0.3 个 CPU。绝对值配额。
- Memory: 单位是内存字节数。
- Label: key=value 的键值对,可以附加于各种资源对象上,实现分组管理功能。查询筛选需要使用 Label Selector 表达式来实现对象查询。
- Selector: matchLabels 和 matchExpressions 同时设置时条件为 AND,则需要两者同时满足才能命中。
- matchLabels: 匹配定义的一组 label
- matchExpressions: 基于集合的筛选条件
- Replication Controller: 简称 RC,定义期望的场景。 注意:删除 RC 不会影响已经创建的Pod,可以设置 replicas=0 来删除 Pod。也可以使用 stop 和 delete 命令一次性删除 RC 和其控制的所有 Pod。 Rolling Update 是每停止一个旧的Pod,同时创建一个新的 Pod的形式进行替换升级。
下一代的RC: Replica Set,区别是可以支持集合的 Label Selector。
- Pod 期望的副本数量
- 用于筛选目标 Pod 的 Label Selector
- 创建新的 Pod 的 Pod 模版
- Deployment: 使用 Replica Set 来实现,可以认为是 RC 的一次升级。
- HorizontalPodAutoscaler:
- StatefulSet:
- Service: 指代微服务架构中的一个微服务。
- Job:
- Volume:
- emptyDir: 生命周期和pod的生命周期相同,用于临时空间
- hostPath: 为Pod挂载宿主机的文件或目录,注意k8s无法管理宿主机的资源
- gcePersistentDisk: google 的永久磁盘
- awsElasticBlockStore:
- nfs:
- Persistent Volume:
- Namespace:
- Annotation:
- ConfigMap: 配置集中化
常用命令
1 | # 常用命令 |