欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Kubernetes

程序员文章站 2022-05-15 13:32:44
1、简介 首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 Kube ......

1、简介

      首先,他是一个全新的基于容器技术的分布式架构领先方案。kubernetes(k8s)是google开源的容器集群管理系统(谷歌内部:borg)。在docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
  kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。

2、解决的问题

1、服务器环境
kubernetes是使用docker进行容器管理的,所以天生具备docker的所有特性,只需要使用相应环境的docker镜像就可以运行服务,还需要关心宿主机是redhat、centos还是ubuntu,只要在宿主机上安装docker环境即可,相比传统运维,减少了各种依赖环境的冲突,降低运维成本,也方便整体服务的迁移。

2、服务器资源管理
对于kubernetes来说,是不关心有几台服务器的,每个服务器都是一个资源对象(node),kubernetes关心的是这个node上有多少可用的cpu和内存。例如现在有两台服务器

server01 (4c16g), 已用(2c7.5g)
server02 (4c16g), 已用(3c13g)
现在有一个服务servicea需要部署,servicea申明自己运行需要至少3g内存,这时kubernetes会根据调度策略将其部署到server01上,很明显server01的资源是更加充足的。实际上kubernetes的调度策略要复杂的多,kubernetes会监控整体服务器资源的状态进行调度,而以前的运维方式只能由人工判断资源使用

3、服务容灾恢复
说简单点,就是服务挂了之后,能够自动恢复。例如现在有一个servicea,运行在server01上,kubernetes会通过内部的kubelet组件监控servicea服务进程的状态,一旦发现进程丢失(服务本身挂掉或者整个server01的服务器挂掉),就会尝试换一台资源充足的服务器重新部署servicea并启动,这样就可以确保我们的服务一直是可用状态,而不需要人工维护。

4、可视化管理

在kubernetes中,所有的概念都抽象成不同的对象,而所有的对象都是可以通过图形化界面进行管理和监控的,当然了,也同时提供了命令行客户端kubectl进行管理。