Kubernetes(k8s)介绍

Google开发的自动化容器运营开源平台,操作包括部署、调度和节点间集群扩展。可以看做是管理Docker容器的工具。

  • 快速精准地部署应用程序;
  • 即时伸缩应用程序;
  • 无缝展现新特征;
  • 限制硬件用量仅为所需资源。
  • 可移动:公有云、私有云、混合云、多台云
  • 可扩展:模块化、插件化、可挂载、可组合
  • 自修复:自动部署、自动重启、自动复制、自动扩容和缩容。

一、概念

1.1 Cluster

  • Cluster 是计算、存储和网络资源的集合。
  • Kubernetes 利用这些资源运行各种基于容器的应用。

1.2 Master

  • Master 是 Cluster 的大脑,每个集群至少有一个Master。
  • 控制和管理集群,主要职责是调度,即决定将应用放在哪里运行。
  • 几乎所有的集群控制指令都是在Master节点上执行。
  • Master节点可以是物理机或者虚拟机。
  • 为了实现高可用,可以运行多个 Master。
1.2.1 关键进程:Kubernetes API Server
  • 提供Kubernetes各类资源对象的增删改查HTTP Reset接口,是整个系统的数据总线和数据中心;
  • 提供集群管理的REST API接口,包括认证、授权、集群状态变更、集群安全等。
1.2.2 关键进程:Kubernetes Controller Manager
  • 负责集群内部Node节点、Pod副本、Endpoint、Namespace、服务账号、资源配置的管理。
  • 当某个Node宕机,可以及时发现并执行自动化修复流程,确保集群处于可用状态。
1.2.3 关键进程:Kubernetes Scheduler

利用特定调度算法把Pod调度到指定Node上,即绑定操作;

1.2.4 Etcd

保存集群所有网络配置和对象状态信息。

1.3 Node

  • Master节点之外的,Node 的职责是运行容器应用。
  • Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。
  • Node可以是物理机或者是虚拟机。
1.3.1 进程:Kubelet
  • 代理进程,Node节点上的Pod管家;
  • 处理Master节点下发到本节点的任务,管理Pod和容器;
  • 定期向Master汇报本节点资源的使用情况;
1.3.2 进程:Kube-proxy

监听服务变化情况,并创建路由规则进行服务负载均衡。

1.3.2 Docker引擎

负责容器的创建和管理等工作。

1.4 Pod

  • Pod是kubernets的最小工作和调度单元,对容器而言类似逻辑主机。
  • 每个pod包含一个或多个紧密相关的容器。
  • Pod在Node节点上被创建、启动和销毁。
  • Pod中的容器会做为一个整体被master调度到一个node上运行。
  • Pod包含一个Pause容器和其他多个业务容器,业务容器共享Pause容器的网络栈和挂载卷。
  • 同一个Pod里的容器仅需通过本地就能互相通讯。

发表回复