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。

作者:红雨