对部署流水线有了个大致的认知之后,开始学习k8s
- k8s的基本架构 kubernateskubernates这个单词起源于古希腊,是舵手的意思,所以它的logo既像一个渔网,又像一个罗盘。K8S是它的缩写,用“8”字替代了“ubernete”这8个字符。
k8s是容器编排引擎,前身是google的brog.
- 基本架构图
咱们从左往右来看这个图,最左边是client端,是操作k8S的输入端,如UI,比如k8s dashboard, command Line interface 也就是kubectl。这个api代表api server, 一个k8s集群包含一个master节点和多个node节点。其中master是管理节点,node是工作节点。Node是kubernetes集群的工作节点,可以是物理机也可以是虚拟机。
- master节点
接下来咱们看master节点,master节点呢上面的呢是master节点,一共有4个组件,master上运行的是Api server, scheduler, controller manager, etcd四个组件。其中controller manager ,api server, scheduler 构成了k8s的总控中心,负责对集群中所有资源进行管控和调度。而etcd是高可用的key/value存储系统,用于持久化存储集群中的所有的资源。 apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
- node节点
node节点,所有的业务容器都在node上运行,所有的node上要先装上docker,或者其他的容器, 运行kubelet,kube-proxy,这个两个组件是k8s的组件 docker,fluentd是第3方的组件,其中docker是容器,而fluentd是用来收集日志的组件
optional: kube-dns负责为整个集群提供DNS服务 Ingress Controller为服务提供外网入口;
Heapster提供资源监控 Dashboard提供GUI Federation提供跨可用区的集群