最早在2014年google开源的 主要做的是:容器化操作
传统化部署:脚本式或者安装的方式来实现 新的方式:容器化安装,带环境安装,关键技术:docker,docker一般用于单机编排
k8s:可以管理docker,进行容器化应用部署,使用k8s利于应用扩展,
目标:实施让部署容器化应用更加简洁和高效
大多数用户,希望kubernetes项目带来的体验是确定的:
我有应用的容器景象,请在一个给定的集群上把应用运行起来。此外,用户还希望kubernetes提供路由网关、水平扩展、监控、备份、灾难恢复等一系列运维能力。
这其实就是最经典的PasS项目的能力,用户使用docker的Compose+Swarm,完全可以自己开发出这些功能。
而kubernetes项目着重解决的问题是:
自动装箱和回滚更新
自动装箱即自我部署。Kubernetes采用滚动更新策略更新应用,一次更新一个pod,当更新过程中出现问题,Kubernetes会进行回滚更新,保证升级业务不受影响
自我修复(自愈能力)
在节点产生故障时,保证预期的副本数量不会减少,在产生故障的同时,终止健康检查失败的容器并部署新的容器,保证上线服务不会中断
水平扩展
服务发现(或者叫负载均衡):对外提供统一接口的功能
为多个容器提供统一的访问入口(内部IP地址和一个DNS名称),使所有的容器负载均衡,集群内应用可以通过DNS名称完成互相反问。
密钥和配置管理
kubernetes允许存储和管理敏感信息,如密码、OAuth令牌和SSh密钥。用户可以部署和更新机密和应用程序配置,而无须重建容器镜像,也不会在堆栈配置中暴露机密。
存储编排
Kubernetes挂载外部存储系统,将这些存储作为集群资源的一部分来使用,增强存储使用的灵活性。
弹性伸缩
kubernetes可以使用命令或基于CPU使用情况自动快速扩容和缩容应用程序,保证在高峰期的高可用性和业务低档期回收资源,降低运行成本
提供认证和授权
控制用户是否有权限使用API进行操作,精细化权限分配
资源监控
工作节点纪恒Advisor资源收集工具,可以快速实现对集群资源的监控
Master组件:主控节点
Node组件:工作节点
kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署kubernetes集群
二进制包 从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。可以学习很多工作原理,有利于后期维护
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!