kubernetes(k8s)架构及核心概念

K8s基础原理

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

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

简介

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. 资源类型:spa

基础资源: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组件:

相关文章
相关标签/搜索