1. 介绍

1. 基础知识

K8s叫法的来源:Kubernetes的K和s之间有8个字符

故障切换集群(failover clusters)和负载均衡集群(load-balancing clusters)是两种最常见的集群
Kubernetes提供了统一的API以帮助容器应用、批处理job、和数据库的部署和升级

通过declarative方法部署应用: 用户在一个manifest里面写上应用的需求(网络、端口、内存、副本数量等),然后提交给Kubernetes。K8s读取manifest并决定在集群的那个node上去运行应用

由于出色的编排和路由能力,K8s是一个很好的构建微服务的企业级平台

由于K8s能决定微服务的位置,所以依靠内在的特性就支持了服务发现功能;同时Kubernetes 也支持一些著名的微服务部署工作流, 比如 滚动升级(rolling updates)、蓝绿部署(blue-green deployment) 和金丝雀部署(canary deployments).

2. K8s的架构

图片.png

2.1 Master结构

Master组件负责给node分配工作任务(workload),并管理集群状态,它是Kubernetes的控制平面,它由API服务, 调度器,控制管理器存储器(通常是用etcd实现的,etcd是一个可靠的分布式存储的key value结构的高可靠的存储机制,API server 可以使用它来存储集群的 state 和 configuration)构成。为保证高可靠性(HA), Master也可以在多个节点上进行部署.

图片.png
上图中的kubectl tool是一个 REST CLI (Command Line Interface) 客户端,它把manifest发送给API server, manifest里面写明的规则会开始执行(kick off), 此时scheduler 修改pods以使得集群状态达到manifest里面的要求.

Etcd
Etcd是一个可靠的分布式存储的key value结构的高可靠的存储机制,API server 可以使用它来存储集群的 state 和 configuration. The Etcd cluster store 一个分布式,总是保持一致性并可watchable 的data store. 它这个不同寻常的名字源自Linux etc 目录, 加上 单词
“distributed.” 这个集群存储器是集群真相的来源,所以应当实施storage redundant并对整个集群做到访问的高可靠性。 对于小的集群,Etcd是部署在Master节点上的,但是对于重要的应用来说,推荐维护一个基数数量的Etcd集群节点,比如3或者5个.

比如增加一个Pod,在架构流程上体现为如下过程:
图片.png

2.2 Cluster结构

Cluster是一系列计算主机、存储和网络资源的集合。 大规模的应用可以跨越多个集群,K8s通过跨集群的联邦机制(Federated clusters)来管理这样的应用

2.3 Nodes结构

在一个集群中,一个物理或者虚拟机就是一个Node。一个node上可以包含多个pods,pod是K8s的部署单元。另外,集群上的每个节点可以运行多个K8s组件,最重要的是kubelet和kube proxy(当然节点上还有Container Engine),有些节点上则会运行 Kubernetes master


图片.png

你可能感兴趣的:(1. 介绍)