Kubernetes(K8s)是一个用于容器编排和自动化部署、扩展、管理应用程序的开源平台。它可以解决以下问题:
- 服务发现和负载均衡:K8s可以通过内置的DNS服务自动发现并为所有容器提供唯一的访问地址,并根据其负荷分配负载。
- 自动化应用部署与水平伸缩:K8s可以自动处理应用程序的部署,并支持应用程序的自动水平伸缩,这意味着如果需要更多的计算资源,它会自动创建副本或缩放某些部件。
- 自愈:K8s可以检测到故障中的容器或节点,并在可能的情况下重新启动它们以确保应用程序的高可用性,同时还能够对容器应用程序执行滚动升级。
- 配置管理:K8s提供了一个强大的配置管理机制,可以帮助您轻松地更新运行中的应用程序,并通过集中和细粒度控制来管理应用程序和环境参数。
- 跨多云平台兼容性:K8s已经成为业界标准,易于在公有云、私有云和混合云环境中部署和管理应用程序,因此它可以让您的应用程序随时跨越多个云平台。
总之,Kubernetes为用户提供了一个可靠、灵活、便捷的容器编排和管理方案,在构建分布式应用程序和微服务架构时方便地处理大规模容器部署以及相关的任务和资源。
Kubernetes(K8s)是一款由谷歌开源的容器集群管理系统。它基于容器技术,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列功能。
进一步来说,Kubernetes是一个支持弹性运行的分布式系统框架,是一种支撑其他平台的平台型基础设施,可以帮助用户在生产环境中依托容器实施的基础架构。
Kubernetes的本质在于实现操作任务自动化,包括应用扩展、故障转移和部署模式等,因而它能代替用户执行大部分烦琐的操作任务,减轻用户负担,降低出错的概率。
01 自动装箱
构建于容器之上,基于资源依赖及其他约束自动完成容器部署且不影响其可用性,并在同一节点通过调度机制混合运行关键型应用和非关键型应用的工作负载,以提升资源利用率。
02 自我修复(自愈)
支持容器故障后自动重启、节点故障后重新调度容器到其他可用节点、健康状态检查失败后关闭容器并重新创建等自我修复机制。
03 水平扩展
支持通过简单命令或UI手动水平扩展,以及基于CPU等资源负载率的自动水平扩展机制。
04 服务发现和负载均衡
Kubernetes通过其附加组件之一的KubeDNS(或CoreDNS)为系统内置了服务发现功能,它会为每个Service配置DNS名称,并允许集群内的客户端直接使用此名称发出访问请求,而Service通过iptables或ipvs内置了负载均衡机制。
05 自动发布和回滚
Kubernetes支持“灰度”更新应用程序或其配置信息,它会监控更新过程中应用程序的健康状态,以确保不会在同一时刻杀掉所有实例,而此过程中一旦有故障发生,它会立即自动执行回滚操作。
06 密钥和配置管理
Kubernetes的ConfigMap实现了配置数据与Docker镜像解耦,需要时,仅对配置做出变更而无须重新构建Docker镜像,这为应用开发部署提供了很大的灵活性。
此外,对于应用所依赖的一些敏感数据,如用户名和密码、令牌、密钥等信息,Kubernetes专门提供了Secret对象使依赖解耦,既便利了应用的快速开发和交付,又提供了一定程度上的安全保障。
07 存储编排
Kubernetes支持Pod对象按需自动挂载不同类型存储系统,这包括节点本地存储、公有云服务商的云存储(如AWS和GCP等),以及网络存储系统,例如NFS、iSCSI、Gluster、Ceph、Cinder和Flocker等。
08 批量处理执行
除了服务型应用,Kubernetes还支持批处理作业、CI(持续集成),以及容器故障后恢复。
另一方面,以应用为中心的Kubernetes本身并未直接提供一套完整的“开箱即用”的应用管理体系, 需要基础设施工程师基于云原生社区和生态的实际需求手动构建。
我是研发岗,不是专业运维,说的可能有些不对的还请指正。k8s给我们研发带来的最大的方便就是,当我们部署一套服务(可能有多个组件,如http服务,缓存,数据库,相互之间还有依赖)的时候,对应资源需求(cpu,内存,存储,网络等),只要在yml里配置提交即可。甚至基于helm解决多组件,多版本配置等。
基于以上,做高可用,水平扩展,ab测试,日志收集分析等等,都会简单许多。核心在于用yml+docker完成了大量服务器配置工作。简单高效。
重新造了个轮子 谷歌内部都不用 不如AWS易于编程 不擅长管理复杂有状态系统。程序员为了适应K8s, 投入运维的总体成本更高了。
简单点说就是 解决了容器管理的问题 ,Kubernetes是一个开源项目,用于统一管理容器化的应用集群。Kubernetes负责在大规模服务器环境中管理容器组(pod)的扩展、复制、健康,并解决 pod 的启动、负载均衡等问题。如果说 OpenStack解决了虚拟化的编排问题 ,那么 K8s则解决了容器的编排问题 ,虚拟机时代无疑是openstack的时代,那么对应容器时代就是kubernetes的时代了。所以openstack依旧有其使用场景和价值,但是kubernetes是技术发展的选择,较高层面上说,kubernetes更加有效地提高了数据中心的资源的效率。
k8s具体功能如下:
1. 调度 ,能够自动生成容器实例;
2. 网络 ,允许容器之间互相通信;
3. 容错 ,自动在健康的节点上生成新的容器实例;
6. 可扩展 ,自动根据需要增加或者删除容器实例;
5. 服务发现 ,允许容器之间互相发现;
6. 健康检查 ,自动监测容器的健康状态;
7. 亲和、反亲和 ,生的容器可以相近或者相隔,提高可用性;
8. 滚动升级 ,容器升级不可以对业务造成影响,同时支持出错回滚。
数通畅联推出的K8s云管理平台UMC是为K8S引擎的可视化管理而开发的,数通畅联的全部产品在K8s云管理平台UMC进行部署和升级,不仅可以节约硬件成本、为客户提供更灵活的部署方式,也能为运维工作带来极大便利。AEAI 集成产品套件(AEAI iPaaS)主推基于K8S云管理平台UMC来开发、部署、管理、运维的模式,K8s云管理平台UMC支持不同产品灵活组合形成多种解决方案,支持DevOPS、CI/CD持续集成、持续交付。AEAI iPaaS平台连接应用、协同业务,实现业务集成,支撑业务中台;通过连接应用、共享数据,实现数据集成,助力数据中台建设。
数通畅联专注于企业IT架构、SOA综合集成、数据治理分析领域,感谢您的阅读与关注。