什么是Kubernetes

Kubernetes 实际上是舵手的意思,主要是为了管理Docker容器的负载和服务

Kubernetes 主要特征

  • 以服务为中心
  • 自动化

核心概念

POD

Kubernetes 核心概念 - 图1
在K8S中,容器运行在 POD 中,一个 POD 中可以有一个或多个容器运行,同时每个 POD 还运行一个 Pause 容器,负责连接在该 POD 中的所有容器,并且对所有的容器进行健康检查并汇报给 K8S,如果有两个或多个容器关系紧密,就可以考虑放在一个 POD 中

ReplicaSet(RS)

Kubernetes 核心概念 - 图2
ReplicaSet(RS) 是 POD 的上层,负责管理 POD (数量等)

标明 POD 的数量,ReplicaSet 会监控POD的数量,当 POD 不可用的时候,会自动创建新的 POD,并保持 POD 的数量在用户定义的个数

Deployment

Kubernetes 核心概念 - 图3
Deployment 是 RS 的上层,实际上我们直接管理的就是 Deployment ,我们更新版本的时候,更新的就是 Deployment,更新完成后,Deployment 会自动帮我们创建 RS,并且滚动启动新版本的 POD,再将旧版本的 POD 取消并删除

Service

K8S 中一个重要的概念:Label(标签),我们可以给 K8S 中的组件添加 Label

Kubernetes 核心概念 - 图4
给不同的 POD 添加标签,然后通过配置 Service 管理的标签,并对外暴露 IP,对外提供服务,当客户端调用 IP 时,Service就会调用具有其标签的 POD,达到调用 POD 内容器的效果