Kubernetes
一、简介
k8s、Google开源。容器编排引擎。
k8s的目标是让部署容器化的应用简单且高效【powerful】,k8s提供应用部署,规划,更新,维护的一种机制。
支持自动化部署、大规模可伸缩。应用容器化管理。
二、组成
一个k8s系统,通常称为一个k8s集群【Cluster】。
这个集群主要包括两部分:
一个Master节点(主节点)
一个Node节点(计算节点)
Master节点主要负责管理和控制。Node节点为工作负载节点,里面是具体的容器。
2.1、Master节点
Master节点包括:API Server、Scheduler、Controller Manager、ETCD。
【API Server】整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
【Scheduler】负责对集群内部的资源进行调度,相当于“调度室”。
【Controller Manager】运行管理控制器,时集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂度,他们都被编译成单个二进制文件,并在单个进程中运行。
这些控制器包括:
节点【Node】控制器。
副本【Replication】控制器:负责维护系统中每个副本的Pod。
端点【EndPoints】控制器:填充Endpoints对象(即连接Service&Pods)。
Service Account和Token控制器:微信的Namespace创建默认账户访问APIToken。
【ETCD】k8s提供的默认的存储系统,保存所有集群数据。使用时需要喂ETCD数据提供备份计划。
2.2、Node节点
Node节点包括:Docker、Kubelet、Kube-proxy、Fluentd、Kube-dns(可选)、Pod
【Docker】创建容器的
【Kubelet】主要负责监视指派到它所在Node上的Pod。包括创建,修改,监控。删除等。
【Kube-proxy】主要负责为Pod对象提供代理
【Fluentd】主要负责日志手机、存储和查询
【Pod】k8s最基本操作单元。一个Pod代表这集群运行的一个进程,它内部封装了一个或者多个相互模切关联的容器。除了Pod之外,k8s还有一个Service的概念,一个Service可以看做一组提供相同服务的Pod的对外访问接口。
三、思维导图如下: