“ 今天认识下主角Kubernetes吧,真的是一个神奇的家伙!”
神奇的家伙
01.初识Kubernetes
Kubernetes是Google与RedHat共同主导的开源项目。它主要解决的问题是,编排,调度,容器云,集群管理,同时在不同的发展阶段,Kubernetes需要着重解决的问题是不同的。不过对于大多数的人来说,我们希望Kubernetes项目带来的体验是:现在我有了应用的容器镜像,请帮我在一个给定的集群上把这个应用运行起来。进一步的,它还需要给我提供路由网管、水平扩展、监控、备份、容灾恢复等运维功能。
它的整体架构如下:
控制节点,即Master节点。由三个独立组件组合而成,负责API服务的kube-apiserver、负责调度的kube-scheduler和负责容器编排的kube-controller-manager。整个集群的持久化数据是由kube-apiserver处理之后保存在etcd中。
计算节点,最核心的部分是kubelet组件,主要负责同容器运行时打交道。Kubelet还会与Device Plugin插件交互,该插件是用来管理GPU等宿主机物理设备的主要组件。Kubelet还会调用网络插件和存储插件为容器配置和网络和持久化存储。
02.组件关系
二话不说,先来张经典图镇楼
· Pod
· Container(容器)
· Label(
)(标签)
· Replication Controller(复制控制器)
· Service(
)(服务)
· Node(节点)
· Kubernetes Master(Kubernetes主节点)
Pod,是一组功能相关的Container的封装,共享存储和Network Namespace,是K8S调度和作用运行的基本单位(Scheduler调度,Kubelet运行),容易“走失”,需要Workload和Service的“呵护”。
Workload (Deployment, StatefulSet, DaemonSet, Job...),是一组相关的Pod的封装。
Service,Pod“防失联”,给一组Pod设置反向代理。
现在看这些概念可能还是有些晕晕的,不过没事儿,后面我们一起继续加油学习!!