K8s 开源平台:跨集群主机的自动化部署、伸缩、应用管理,提供以容器为中心的基础设施。
1、迅速部署应用或者定时部署
2、伸缩应用
3、无缝升级回滚应用
4、最大化利用硬件资源(每个应用只分配它所需要的资源)
容器相对于虚拟机的优势:
1、应用的敏捷创建和部署:得益于容器镜像的轻量级
2、持续的部署、集成、部署:提供可靠搞笑的容器镜像制作和部署,易于回滚(基于镜像部署时,镜像并不会改变)
3、Dev和ops 分离:在编译发布阶段创建容器镜像,而不是在部署阶段。能够将应用的运行和基础设施分离
4、开发、测试、生产三种场景,可以在笔记本也可以在公有云
5、不感知操作系统:Centos、Ubuntu,各种容器引擎,都可以。
6、以应用为中心的管理:不感知底层资源(基于虚拟机还是物理机)
7、松散,分布式、弹性、无约束的微服务
8、资源隔离:应用性能可以预测
9、资源利用率:高效率和密集度的资源利用
Kubernets可以将运行在物理或者虚拟机集群,可以将应用从主机架构的基础设施迁移到以容器为中心的基础设施。Kubernets 主要是构建以容器为中心的基础设施。Kubernets满足了将应用运行到生产环境的大部分需求:
1、容器级别的进程协作:组合复杂应用,同时保留 一个应用一个容器的模型,参考Kubernets POD的概念
2、挂载存储
3、密钥管理
4、应用健康检查
5、水平弹性伸缩
6、命名和服务发现
7、负载均衡
8、滚动升级
9、资源监控
10、日志收集
11、support for introspection and debugging
12、认证和权限控制
l Kubernets 不是一个传统的,全部包含的Paas。K8s不限制运行在k8s的应用运行环境,不区分应用和服务这两个概念。K8s目标是能够支持极端多样的负载,包含无状态、有状态、数据处理流。如果一个应用能够运行在Container,那么它就能够运行在K8s
l K8s不提供中间件服务,消息中间件,数据处理框架、数据库,不提供集群存储并不会内置到K8s,但是这些服务可以运行到K8s
l K8s 不提供一键部署的Service Market
l K8s 不会部署源码,不会build 应用。CI因人而已
l K8s 允许用户选择日志,监控,告警
l K8s 没有提供,也没有强制一个综合的应用管理系统
l K8s 没有提供也没有采用任何复杂的集群配置、维护、管理、自愈系统
K8s主要进行应用级别的管理,提供一些通用的应用管理特性:部署、扩容、负载均衡、日志、监控。然而k8s并不是单一的整理,这些默认的解决方案都是可选,可插拔的