Kubernetes是什么?
Kubernetes简称k8s,在之后的笔记中,都将这么表示。
k8s是Google开源的容器集群管理系统,为容器化的应用提供资源调度、部署运行、服务发现、弹性伸缩等功能。
k8s有着以下的优秀特性:
- 强大的容器编排能力,目前很多公司都使用k8s来进行docker容器管理。
- 轻量级,k8s遵循微服务架构理念,系统划分为多个边界清晰、部署简单、功能独立的组件。
- 开放开源。
通过k8s我们可以实现:
- 快速部署应用
- 快速扩展应用
- 无缝对接新应用
- 提高资源利用率,优化硬件资源的使用
k8s核心概念
Pod
Pod是多个相关容器的组合,Pod包含的容器运行在同一台宿主机,这些容器具有相同的网络命令空间、IP地址、端口,它们之间可以通过locathost通信。
在K8s中,pod是管理调度的最小单位,Pod通过提供更高层次的抽象,提供更加灵活的部署与管理。
Replication Controller
Replication Controller负责控制管理Pod副本,确保任何时候k8s集群中都与指定数量的Pod副本在运行。如果Pod副本数少于了指定副本数,Replication Controller将会启动新的Pod副本,反之会干掉多余副本来保证Pod副本数量。
Service
Service是真实应用服务的抽象,定义了Pod的逻辑集合和访问Pod的策略。Service将代理Pod对外表现成一个单一访问接口,外部不需了解Pod的运行,提供一套简化的服务代理与发现机制。
Label
Label其实就是一对key/value,k8s中任意的API对象都可以通过label来进行标识。Label是Service和Replication Controller运行的基础,它们通过label来关联Pod。
Node
Node就是K8s中的宿主机,Pod运行在Node上。
ETCD
etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。
kube-scheduler
kube-scheduler 监视新创建没有分配到Node的Pod,为Pod选择一个Node。
作者:红雨