认识k8s

简介

k8s是一个基于容器技术的分布式架构,由google经历了十几年的大规模应用容器技术的一个成果。它提供了完备的集群管理能力,包括安全防护,多租户应用,服务发现和注册,负载均衡,故障发现和自我修复,服务滚动升级和在线扩容等等。

组成

术语

Master

集群控制点点,负责整个集群的管理和控制,k8s上所有的控制命令都会发给它,通常需要单独的虚拟机来部署。

master内部主要有:

  1. kube-apiserver

对外提供rest接口,支持k8s中资源的crud。

  1. kube-crontroller-manager

资源自动化控制中心。

  1. kube-scheduler

资源调度中心。

  1. etcd

存储着每个服务的具体信息。

Node

集群中除了master之外的节点。进行具体的工作负载。每个node节点都包含:

  1. kubelet

负责Pod中容器的创建和启动,同时和master实现集群管理功能。

  1. kube-proxy

实现服务间的通信和负载均衡。

  1. docker-engine

docker引擎,负载本机的容器的管理。

Pod

k8s操作的最小单元,内部包含2个容器:

  1. pause容器

负责监测pod的是否存活。

  1. 业务容器

具体业务容器。

Replication Controller

控制着每个pod个数的期望值,主要负责用户集群的高可用。

Deployment

Rc的一次升级,增加了任务执行的反馈。常用场景:

  1. 创建deployment对象,完成pod副本的创建。

  2. 检查pod部署状态。

  3. 部署新的deployment,进行镜像升级。

  4. 回退到上一次部署。

HPA

pod横向自动扩容。

Label

标签,提供了label selector标签选择器,来聚合一组pod。

Service

和微服务中的服务一样,定义一个服务的访问入口,通过label selector来选择具体的pod。

运作流程:

Namespace

来实现资源的隔离。

volume

基于pod的存储卷。

Last updated

Was this helpful?