黑基Web安全攻防班
安基网 首页 IT技术 网络管理 查看内容

只花10分钟就能了解Kubernetes!

2018-9-14 02:14| 投稿: xiaotiger |来自: 互联网


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 当Docker 成为流行趋势之后,Kubernetes获得快速发展,成为最常用的容器编排工具。那么问题来了,Kubernetes为什么重要?什么是Kubernetes?什么时候使用?如何使用?本文将按照各个要点,逐一总结! 1、Kubernetes ...

当Docker 成为流行趋势之后,Kubernetes获得快速发展,成为最常用的容器编排工具。那么问题来了,Kubernetes为什么重要?什么是Kubernetes?什么时候使用?如何使用?本文将按照各个要点,逐一总结!

1、Kubernetes为什么重要?

在Kubernetes没出现以前,我们都认为容器是云管理平台应用部署的最佳工具。容器为软件开发和运维提供了新视角,通过使用容器,软件开发人员可以很容易地将应用打包,它既可以把应用程序拆分为分布式组件,也可以整体移植一个应用,而不像传统的虚拟机那样需要安装复杂的插件。

当整个世界开始走向分布式架构,当企业变得更加依赖网络、依赖计算,当单块应用开始迁移到微服务,我们的用户更希望通过微服务单独扩展关键功能,并能够处理数百万客户业务。因此,Docker容器、Mesos和AWS ECS等工具出现在企业应用名录中,这些工具为用户创建和部署微服务提供了更好的一致性、可移植性和更简单的操作方式。

但是,一旦企业应用变得更成熟和复杂,就需要在多台机器上运行多个容器。用户需要确定匹配多少个容器,容器的存储方式、存储数据量、性能需求等,如果这些工作全部用人工来统计,那简直是噩梦。

为解决容器的编排需求,Kubernetes应运而生!

2、什么是Kubernetes?

当容器管理成为Docker时代最重要的需求,谷歌做出了大胆决定,开放内部项目Borg。为了进一步增强容器管理功能,谷歌又开发了Kubernetes。这是一个开源项目,可自动化、大规模部署和管理容器应用过程。

于是,2014年年中,Kubernetes正式诞生,并在很短的时间内成长为开源社区,受到来自谷歌、Red Hat和许多其他公司工程师的热捧。

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。简单理解,kubernetes是一个开源的容器管理系统,用于管理云平台中多个主机上的容器化的应用。Kubernetes的目标是,让部署容器化的应用变得简单和高效,Kubernetes提供了应用部署,规划,更新和维护的一种新机制。

kubernetes的一些功能包括:管理容器集群、提供部署应用的工具、根据需要扩展应用、对现有容器应用的更改进行管理、能优化容器下的底层硬件的使用。另外,kubernetes还能管理跨机器的容器,解决Docker跨机器容器之间的通讯问题。

实际上,Kubernetes提供了比基础框架更多的内容,用户可以选择不同的应用框架、语言、监视工具和日志管理的类型等。虽然kubernetes不能完全当作服务平台,但绝对是一个很完整的PaaS。

3、Kubernetes具体应用场景是怎样的?

Kubernetes的工作原理


KubernetesMaster:提供集群管理控制中心,是最主要的控制单元,管理各系统之间的工作负载和通信。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。

Etcd:一个开源的用于配置共享和服务发现的高性能的键值存储系统,由CoreOS团队开发,也是CoreOS的核心组件。Kubernetes使用“Etcd”存储集群的配置数据,对集群内部组建进行协调。

API- server: 是接收和修改REST请求的中央控制系统,用作控制集群的前端。此外,这是唯一与Etcd集群通信的东西,确保数据存储在Etcd中。

scheduler:是关键角色,它决定了任务何时被调度运行,也决定一次任务运行中,哪些节点可以被执行。被判定执行的节点会被scheduler通过MQ或FaaS发送给worker执行。不同业务的任务有独立的scheduler负责调度,发送任务到指定的Worker上。

Controller:是一个控制器,在后台运行许多不同的控制器进程,用以控制集群的共享状态,并执行例行任务。当服务发生任何更改时,控制器会发现更改,并开始以新的状态工作。

Worker Node:也被称为Kubernetes或Minion节点,它包含管理容器之间的网络(如Docker)和主节点之间的通信信息,并按照计划将资源分配给容器

Kubelet: Kubelet确保节点中的所有容器都在运行,并处于健康状态。Kubelet负责pod的创建,以及是不是想要的状态。如果Node失败,Controller会观察到这个变化,并在另一个健康的pod上启动pod。

Container:是微服务的最低级别,放置在pod中,需要外部IP地址才能查看外部进程。

Kube Proxy:充当网络代理和负载均衡器。此外,它将请求转发到集群中的隔离网络中,主要负责为Pod对象提供代理。

cAdvisor:充当助理,负责监视和收集关于每个节点上的资源使用和性能指标的数据。

Kubernetes的优点:

1)部署简单,更具开放性

Kubernetes可以在一个或多个云环境、虚拟机或裸机上运行容器,这意味着它可以部署在任何基础设施上。此外,它兼容多个平台,使得多云策略高度灵活和可用。

2)更强大的工作负载能力和可伸缩性

Kubernetes为应用扩展提供了几个大的特性,比如:水平扩展、自动缩放、手动缩放、可复制控制器创建的Pods等。另外,Kubernetes还提供了更强大的高可用性、健康检查、流量控制和负载均衡器、自动转出和回滚等。

总结来看,Kubernetes为开发云应用奠定了更坚实的基础,Kubernetes和其他管理编配工具一样,如Marathon的Apache Mesos、Docker Swarm和AWS EC2等,提供了很棒的特性,但其他工具的份量都比Kubernetes小。


小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6600515562634215943/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部