kubernetes(k8s)架构及核心概念

K8s基础原理

k8s中文社区: https://www.kubernetes.org.cn/

k8s快速入门: http://www.dockone.io/article/932

简介

Kubernetes 简单的说就是一个容器集群编排工具

Kubernetes 是为生产环境而设计的容器调度管理系统,对于负载均衡、 服务发现、高可用、滚动升级、自动伸缩等容器云平台的功能要求有原生支持

一个K8s集群是由分布式存储(etcd)、服务节点(Minion, etcd现在称为Node)和控制节点(Master)构成的。所有的集群状态都保存在etcd中,Master节点上则运行集群的管理控制模块。Node节点是真正运行应用容器的主机节点,在每个Minion节点上都会运行一个Kubelet代理,控制该节点上的容器、镜像和存储卷等。

1. Master(管理节点)核心组件:

  • API-Server ---k8s系统对外接口,提供Restful API供客户端和其他组件调用,支持水平扩展
  • Scheduler  ---负责对资源进行调度,具体负责分配某个请求的Pod到某个节点上
  • Controller  ---对不同资源的管理器,维护集群的状态,包括故障检测、自动扩展、滚动更新等
  • Etcd           ---作为K/V数据库,存放集群状态和配置相关数据

                      

2. Node(工作节点)核心组件:

  • Kubelet --- 节点上最主要的工作代理,汇报节点状态并实现容器组的生命周期管理
  • Kube-proxy --- 代理对抽象应用地址的访问,负责配置正确的服务发现和负载均衡转发规则(通常利用iptables规则)
  • Container runtime --- 本地容器引擎 (标准仅支持docker(rkt,cri-o,frakti等其他类型的容器使用CRI封装好的外部命令))

3. Addons(可选组件):

  • DNS --- 记录启动的容器组和服务地址,为集群提供dns服务
  • CNI  --- 容器网络插件必选(Flannel,calio,...)
  • WebUI  --- web界面
  • ...

4. 资源类型:

基础资源:Pod / Service / Namespace / Volume

高级资源控制器(建立在基础资源之上):ReplicaSet / Deployment / Daemonset / statefulSet / Job

 

  • Client通过service-ip(cluster-ip)访问Service
  • Service通过Label(Label select)来关联到Pod
  • Service也有可能会被删除,所以Client还是要通过DNS解析获得service-ip
  • Pod  --- 容器运行所在地,也是k8s操作的最小单元。  同一个Pod内的容器默认时共享网络的,并且可以使用同一存储卷

5. Kubernetes Network

 

K8S的架构图:

 

K8S组件:

 

posted @ 2019-05-28 22:23  阿拉米苏  阅读(2162)  评论(0编辑  收藏  举报