一文带你理解云原生( 六 )


Storage orchestration(存储编排)
Kubernetes 允许你自动挂载选择的存储系统 , 例如本地存储、公厂商等 。
Automatic bin packing(自动装箱)
Kubernetes 允许指定每个容器所需 CPU 和内存(RAM) 。 当容器指定资源请求时 , Kubernetes 可以做出更好的决策来管理容器的资源 。
Secret and configuration management(安全和配置管理)
Kubernetes 允许存储和管理敏感信息 , 例如密码、OAuth 令牌和 ssh 密钥 。 你可在不重建容器镜像的情况下部署和更新密钥和应用程序配置 , 也无需在堆栈配置中暴露密钥 。
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
API Service:Kubernetes 各组件通信中枢 。
资源操作的唯一入口 , 并提供认证、授权、访问控制、API 注册和发现等机制;
为 Pod ,Deployment ,Service 等各种对象提供 Restful 接口;
与 etcd 交互的唯一组件 。
Scheduler:负责资源调度 , 按照预定调度策略将 Pod 调度到相应的机器 。
Predicates(断言):淘汰制
Priorities(优先级):权重计算总分 。
Controllermanager:负责维护集群的状态 , 比如故障检测、自动扩展、滚动更新等 。
etcd:分布式的 K-V 存储 , 独立于 Kubernetes 的开源组件 。
主要存储关键的原数据 , 支持水平扩容保障元数据的高可用性;
基于Raft 算法实现强一致性 , 独特的watch 机制是 Kubernetes 设计的关键 。
kubelet:负责维护 Pod 的生命周期 , 同时负责 Volume(CVI)和网络(CNI)的管理 。
kube-proxy:负责为 Service 提供 cluster 内部的服务发现和负载均衡
kube-proxy 通过在节点上添加 iptables 规则以及从中移除这些规则来管理此端口重新映射过程 。
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
控制器模式的设计思想:
容器类比集装箱 , 集装箱固然好用 , 但是如果它各面光秃秃的 , 吊车还怎么把它吊起来摆放好呢?
Pod 对象其实就是容器的升级版 , 对容器进行组合 , 添加更多属性和字段 。 就好比在集装箱上安装了吊环 , Kubernetes 这台“吊车”可以更轻松操作容器 。