K8S是什么?

K8S是英文单词“Kubernetes”的缩写,是因为 k 和 s 之间有八个字符的关系。这个名字源于希腊语,意为“舵手”或“飞行员”。

Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。

在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

弦外音:统一开发生产环境;自动扩缩容;微服务架构利器; 节约成本。

K8S能做什么?

Kubernetes 为你提供:

  • 服务发现和负载均衡

    Kubernetes 可以使用 DNS 名称或自己的 IP 地址来曝露容器。如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

  • 存储编排

    Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。

  • 自动部署和回滚

    你可以使用 Kubernetes 描述已部署容器的所需状态, 它可以以受控的速率将实际状态更改为期望状态。例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。

  • 自动完成装箱计算

    你为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。

  • 自我修复

    Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器, 并且在准备好服务之前不将其通告给客户端。

为什么需要学习K8S?

如果你是前端工程师,错综复杂的JavaScript运行环境和框架版本让你大伤脑筋,发布上线前如临大敌,令你颤抖。

如果你是后端工程师,开发和生产环境的不一致,频频出现匪夷所思的bug。

如果你是运维工程师,频繁的上线与开发一起熬通宵解决bug令你闻风丧胆捶胸顿足。

根据目前互联网主流技术来看,对于上述问题,最好的解决方案便是容器化,比较流行的就是Docker。Docker 通过 Dockerfile 来对运行环境进行描述,编译好的镜像可以发布到仓库,应用的发布安装可以统一通过镜像运行容器,这样就保证了开发和生产环境的统一。

现在面试的时候,你也会经常被问到有没有用过docker。甚至有些面试官还会更深入的去问些,容器大规模使用编排部署、扩缩容的相关问题,这很难避开谈及Kubernetes等主流容器编排技术。

另外无论你是一位开发、运维、DBA、大数据、甚至AI工程师,在当下的互联网时代,都会考虑快速试错、最小成本。能够大幅缩短研发上线周期,灵活控制运维成本是让公司利于不败之地的不二法宝。那么K8S主要解决的就是快速迭代和自动扩缩容。

目前市场主流的容器编排厂商比较著名的主要有三个:Kubernetes, Mesos, Swarm 。随着 Kubernetes 多年来得到大家的广泛实践,它的认可度已经超过 Mesos, Docker Swarm 等,无疑它是生产环境中容器应用管理的不二之选。

总结:

Kubernetes实事上已成为容器编排技术的标准,学习Kubernetes,在工作中用好它,已经成为互联网技术人才必备的专业技能。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐