KUBERNETES01_部署方式的变迁、为什么用Kubernetes、工作原理、组件交互原理、动画演示(二)

②. 为什么用Kubernetes


容器是打包和运行应用程序的好方式。在生产环境中,你需要管理运行应用程序的容器,并确保不会停机。 例如,如果一个容器发生故障,则需要启动另一个容器。如果系统处理此行为,会不会更容易?


(这就是Kubernetes来解决这些问题的方法!Kubernetes为你提供了一个可弹性运行分布式系统的框架。 Kubernetes会满足你的扩展要求、故障转移、部署模式等。 例如,Kubernetes可以轻松管理系统的Canary部署)


Kubernetes为你提供:


①. 服务发现和负载均衡


Kubernetes可以使用DNS名称或自己的IP地址公开容器,如果进入容器的流量很大, Kubernetes可以负载均衡并分配网络流量,从而使部署稳定


②. 存储编排


Kubernetes允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等

(有一个应用需要占用了内存,k8s会给这个应用开辟一个内存,当应用销毁时,k8s自动将内存释放)


③. 自动部署和回滚


你可以使用Kubernetes描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。例如,你可以自动化Kubernetes来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。


(在6.18淘宝有一个版本,现在10.1也有一个版本,如果10.1版本上线出现问题了,也还可以回滚到6.18版本上去)


④. 自动完成装箱计算


Kubernetes允许你指定每个容器所需CPU和内存(RAM)。 当容器指定了资源请求时,Kubernetes可以做出更好的决策来管理容器的资源。


(比如:容器超内存了,将容器杀死或者转移到别的地方进行部署)


⑤. 自我修复


Kubernetes重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。


⑥. 密钥与配置管理


Kubernetes允许你存储和管理敏感信息,例如密码、OAuth令牌和ssh密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。


上一篇:Hologres揭秘:高性能原生加速MaxCompute核心原理


下一篇:netty IO模式的支持