k8s关键词
虚拟机:类似子电脑,虚拟机之间是相互隔离的
容器和虚拟机的对比
Docker本身并不是容器,它是创建容器的工具,是应用容器引擎
Docker,两句口号:
第一句:Build,Ship and Run(搭建,发送,运行)
第二句:Build once,Run anywhere(搭建一次,到处能用)
Docker技术的三大核心概念,分别是:
- 仓库(Repository)---->Docker Hub
- 镜像(Image)
- 容器(Container)
仓库管理镜像,镜像用来复制生成容器
Docker镜像,是一个特殊的文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。
镜像不包含任何动态数据,其内容在构建之后也不会被改变
困难:编排、管理和调度
K8S,就是基于容器的集群管理平台,它的全称,是kubernetes,Google创建
一个K8S系统,通常称为一个K8S集群(Cluster)
一个K8S系统,通常称为一个K8S集群(Cluster)。
这个集群主要包括两个部分:
- 一个Master节点(主节点)
- 一群Node节点(计算节点)
一看就明白:Master节点主要还是负责管理和控制。Node节点是工作负载节点,里面是具体的容器。
深入来看这两种节点。
首先是Master节点。
Master节点包括API Server、Scheduler、Controller manager、etcd。
API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。
Scheduler负责对集群内部的资源进行调度,相当于“调度室”。
Controller manager负责管理控制器,相当于“大总管”。
然后是Node节点。
Node节点包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可选),还有就是Pod。
Pod是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。除了Pod之外,K8S还有一个Service的概念,一个Service可以看作一组提供相同服务的Pod的对外访问接口。这段不太好理解,跳过吧。
Docker,不用说了,创建容器的。
Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等。
Kube-proxy,主要负责为Pod对象提供代理。
Fluentd,主要负责日志收集、存储与查询。