热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

只花10分钟就能理解Kubernetes!

当Docker成为流行趋势之后,Kubernetes取得快速发展,成为最常使用的容器编排工具。那么问题来了,Kubernetes为什么重要?什么是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的工作原理

只花10分钟就能理解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小。


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • 容器管理与容器监控influxDB
    容器管理与容器监控-influxDB什么是influxDBinfluxDB安装(1)下载镜像(2)创建容器(3 ... [详细]
author-avatar
苦中人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有