现在有三种部署方式,传统物理机部署、虚拟机部署、容器化部署。
我们现在所使用的云上服务器一般都是虚拟化出来的,硬件资源独立,操作系统等软件资源亦独立。
容器化的好处是更轻量,复用下层的操作系统,相当于是又抽象了一层。容器流行的原因,还在于它提供了其它好处:**********。
Kubernetes 通过提供一个框架来弹性的运行分布式系统。为你的应用负责 扩展 和 故障切换。
Kubernetes 提供什么:
1. 服务发现和负载均衡
Kubernetes 通过使用 DNS 名称或者它的 IP 地址来暴露一个容器,容器流量高时,Kubernetes 能够负载均衡和分配网络流量,以便部署是稳定的。
2. 存储编排
Kubernetes 允许根据选择自动挂载存储系统,本地存储或公有云存储等。
3. 自动发布和回滚
Kubernetes 可以描述被部署容器的目标状态,并且可以改变实际状态为理想状态。
4. 自动容器填充
你给 Kubernetes 提供集群节点来运行容器化任务。你告诉 Kubernetes 每个容器需要多少 CPU、内存。Kubernetes 能调整你节点上的容器以适应最佳的资源使用。
5. 自我修复
Kubernetes 重启失败的容器,取代、杀死那些不响应用户定义的健康检查的容器,并且不通知客户端直到它们准备好服务。
6. 秘钥和配置管理
Kubernetes 让你存储和管理敏感信息,如密码、OAuth tokens、ssh keys。你可以部署、更新秘钥和配置而不需要重新构建容器镜像,不需要在你的配置栈中暴露秘钥。
Kubernetes 不是什么:
1. 不限制支持的应用程序类型。如果一个应用可以容器中运行,那么它应该可以在 Kubernetes 上运行很好
2. 不部署源代码和构建应用程序。
3. 不提供应用程序级别的服务。
4. 不规定日志、监控和报警解决方案。
5. 不提供也不授权一个配置语言、系统。
6. 不提供也没有全面的机器配置、维护、管理或自愈系统。
7. 不是一个纯粹的编排系统,实际上它减少了编排的需要。
Reference:https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/