1.Kubernetes概述

什么是Kubernetes

Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。

Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

通过Kubernetes你可以:

快速部署应用

快速扩展应用

kubectl scale deployment test-nginx-deployment --replicas=2

无缝对接新的应用功能

节省资源,优化硬件资源的使用

微服务编排

架构介绍

组件

Kubernetes集群包含有Node节点和Master节点;

Master节点中包含APIs、Scheduler、controller manager、etcd;

Node节点中包含kubelet、Proxy、Pod。

架构图

组件功能

etcd是个键值数据库,保存了整个集群的状态,可以独立于Master节点部署;

apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

kubelet负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;

Pod是Kubernetes最基本的部署调度单元,每个 Pod 可以由一个或多个业务容器和一个根容器(Pause容器:全称infrastucture container 基础容器)组成。

Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);

kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

kubectl是客户端命令,可以通过api servier使用命令行管理集群。

Add-one(插件)

kube-dns或者coredns负责为整个集群提供DNS服务;

Ingress Controller为服务提供外网入口;

Heapster或者metrics-server提供资源监控;

Dashboard提供GUI页面;

Federation提供跨可用区的集群;

Fluentd-elasticsearch提供集群日志采集、存储与查询。

分层架构


分层架构

生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴;

    Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等;

    Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等。

接口层:kubectl命令行工具、客户端SDK以及集群联邦;

管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等);

应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等);

核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境;

你可能感兴趣的:(1.Kubernetes概述)