🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> ### `Kubernetes` 特点 * `Kubernetes`能提供一个以“**容器为中心的基础架构**” * 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud) * 可扩展: 模块化, 插件化, 可挂载, 可组合 * 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展 > ### `架构` ![](https://i.loli.net/2019/03/19/5c9098e77c216.png) * `Kubernetes`核心组件 * **etcd**保存了整个集群的状态; * **apiserver**提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; * **controller manager**负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; * **scheduler**负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上; * **kubelet**负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理; * **Container runtime**负责镜像管理以及Pod和容器的真正运行(CRI); * **kube-proxy**负责为**Service**提供**cluster**内部的服务发现和负载均衡; 除了核心组件,还有一些推荐的Add-ons: * kube-dns负责为整个集群提供DNS服务 * Ingress Controller为服务提供外网入口 * Heapster提供资源监控 * Dashboard提供GUI * Federation提供跨可用区的集群 * Fluentd-elasticsearch提供集群日志采集、存储与查询 * `Master`节点主要还是负责管理和控制 * `Master`节点包括`API Server`、`Scheduler`、`Controller manager`、`etcd` * `API Server`是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅” * `Scheduler`负责对集群内部的资源进行调度,相当于“调度室” * `Controller manager`负责管理控制器,相当于“大总管” * `etcd`,k8s系统的资源(数据)存储的地方,是整个k8s的基石,一个高可用强一致性的服务发现存储仓库,etcd本身非常好的提供了数据的持久化存储和服务发现的支持。 ![](https://i.loli.net/2019/03/19/5c9093c4b0ee0.png) * `Node`节点是工作负载节点 * `Node`节点包括`Docker`、`kubelet`、`kube-proxy`、`Fluentd`、`kube-dns`、`pod` * `Pod`是`Kubernetes`最基本的操作单元。一个`Pod`代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。 * `Kubelet`,主要负责监视指派到它所在`Node`上的`Pod`,包括创建、修改、监控、删除等。 * `Kube-proxy`,主要负责为`Pod`对象提供代理。 * `Fluentd`,主要负责日志收集、存储与查询。 ![](https://i.loli.net/2019/03/19/5c9094fbe7e9b.png) > ### 使用 * `Lables`,`Selectors` * `Volume` * `Nodes` * `Pod` * `Deployment` * `Service` * `Ingress` <br/> <br/> *** 参考: [Kubernetes 架构](http://docs.kubernetes.org.cn/251.html) [我所理解的K8S](https://juejin.im/entry/5ba0ae026fb9a05cfb3da88f)