Kubernetes平台概述
【深圳站|3天烧脑式Kubernetes训练营】培训内容包括:Kubernetes概述、架构、日志和监控,部署、自动驾驶、服务发现、网络方案等核心机制分析,进阶篇——Kubernetes调度工作原理、资源管理及源码分析等。
Kubernetes是容器管理平台, 运行企业级、云应用和web可扩展的IT负载。它是建立在谷歌奠定的15年运行容器化应用的经验基础上。这本电子书的目的是突出Kubernetes如何被早期使用者部署。它涉及到使用模式和生产环境使用Kubernetes的用户的关键部署场景。我们也会看到一些公司,如:华为、IBM、英特尔和Red Hat,他们努力推动Kubernetes前进。
容器编排的崛起
容器的概念已经存在了十多年。主流UNIX的操作系统(OS),如Solaris、FreeBSD和Linux内建支持容器,但Docker是真正面向开发和IT运维团队,使容器变成可管理和可访问。Docker已经演示容器可以驱动应用程序可扩展性和可移植性。开发人员和IT运维人员开始转向使用容器包装各种语言的代码和依赖关系 。容器在DevOps流程中也发挥了至关重要的作用。他们已成为建设自动化和持续集成和持续部署(CI / CD)管道的一个组成部分。对容器的兴趣导致了OCI格式的形成。业界也目睹了容器的各种实现,如标准的LXD,CoreOS的Rocket, Windows容器cri-o(已经被Kubernetes孵化器审查通过), VMware集成容器的vSphere 。
虽然这些核心实现围绕单个容器生命周期,而典型的生产应用需要处理运行在跨主机上的容器的负载。处理跨主机和要求复杂结构的生产环境需要一些管理工具,一些流行的解决方案包括Docker Datacenter,Kubernetes和Mesosphere DC/OS。
容器编排已经影响了传统PaaS平台的结构,它们将提供开放和有效的模式支持打包、部署、隔离、服务发现、扩容和滚动更新。最主流的PaaS解决方案已经拥抱容器,并有新的PaaS 建立在容器编排之上实现管理平台。客户可以选择部署,或面向IT运维,部署核心容器编排工具; 或面向开发者,使用PaaS平台 。
容器编排已经驱动企业和新兴的初创公司采用容器起重要作用。
Kubernetes架构
像大多数的分布式计算平台,一个Kubernetes集群包括至少一个主节点和多个计算节点。主节点暴露应用程序接口(API),调度部署和管理整个集群。Node:每个节点都有一个容器运行时,如Docker或Rocket,以及与主节点通信的agent 。节点还运行日志、监视、服务发现和可选附加组件的其他组件。节点是Kubernetes集群的工作负荷节点,他们给应用提供计算,网络,存储资源。节点可能是云上的虚拟机或数据中心的裸机。
Pod:Pod是一个或多个容器的集合。Pod是Kubernetes管理的核心单元,作为共享相同上下文和资源的容器的逻辑边界,分组进程。在运行时,pods可以通过创建副本扩容, 确保部署始终运行所需数量的pods。
Replica sets:通过维护一组预定义的pods,提供所需的规模和可用性。单个pod或replica set能通过services暴露给内部或外部消费者。services通过特定的标准将一组Pods关联来实现对pods的发现。通过键值对的标签和选择器来关联pods,任何与标签匹配的新pod将自动被服务发现。
Kubernetes的对象信息(如pods,replica sets和services)提供给主节点。基于需求定义和资源使用情况,主节会在指定节点调度pod,该节点从容器镜像仓库中拉取镜像,并协调本地容器运行时启动容器。
etcd:etcd是CoreOS开源分布式健值数据库,作为kubernetes集群所有组件的(single source of truth ) SSOT。主节点需要etcd获得节点状态、pods状态和容器状态参数信息。Kubernetes框架通过创建应用和底层架构的抽象层,达到模块化和可扩展。
关键设计原则
Kubernetes的设计原则是可扩展性、可用性,安全将任务分发到可用的资源。本节将重点介绍一些Kubernetes的关键属性。负载可扩展性
应用程序打包成微服务部署在Kubernetes上 。这些微服务是由多个容器分组成pods。每个容器设计只执行一个任务。pod可以由无状态容器或状态容器组成。无状态的pod可以轻易按比例要求扩展或通过动态自动扩展。Kubernetes1.4支持平行pod自动扩展,即可以基于CPU自动扩展replication controller中pods数量。未来的版本将通过定义自动扩展原则,支持用户量度和阈值。谷歌云托管Kubernetes运行支持集群自动扩展。当所有可用节点的pods扩展时,Kubernetes会协同底层基础设施向集群添加节点。
一个应用程序是微服务架构,以容器封装部署为pods,可以利用Kubernetes的极端的扩展功能。虽然这主要是适用于无状态的pods, Kubernetes通过pet sets增加支持持久化工作负载,如:NoSQL数据库与关系数据库管理系统(RDBMS);同时扩展无状态的应用,如:Cassandra集群和MongoDB副本集。这种能力使弹性的、无状态的Web层和持久的、有状态的数据库共同运行在相同的基础设施上。
高可用
当代工作负载要求在基础设施和应用水平上的可用性。在扩展集群中,一切都容易失败,这使得生产负载的高可用性是严格必要的。更多的容器编排引擎和PaaS提供实现应用程序的可用性, Kubernetes设计用来解决基础设施和应用程序的可用性。在应用方面,Kubernetes通过replica sets,replication controllers和pet sets确保应用程序的高可用。运维能定义在某个指定时间点的最小pods数。如果容器和pod因为错误崩溃,预设策略能回到预定的配置部署。有状态负载通过pet sets能被配置成高可用的。
对于基础设施的可用性,Kubernetes已经支持大范围的分布式文件系统的存储:如NFS和GlusterFS,块存储设备如Amazon EBS和谷歌计算引擎persistent disk,专业容器存储插件如:Flocker。通过增加一个可靠的可用的存储层,Kubernetes保证有状态的工作负载的高可用性。
Kubernetes集群的每个组件-etcd, API服务器,节点–可配置成高可用。通过负载均衡器和健康检查确保应用程序的高可用。
安全
Kubernetes的安全性可以通过多层次的配置。API接口通过传输层安全TLS,确保用户使用最安全的机制认证。Kubernetes集群有两类用户-服务账户直接由Kubernetes管理的,普通用户认为是由一个独立的服务管理。服务帐户由API服务器自动创建的Kubernetes API管理的。管理集群内运行的进程的每一个操作必须由已验证的用户启动;该机制确保集群的安全性。部署Kubernetes集群内应用可以利用secret的概念来安全地访问数据。一个secret是Kubernetes对象,包含少量的敏感数据,如密码、令牌或密钥,从而减少意外的数据暴露的风险。用户名和密码以base64编码存储一个Kubernetes集群内。在运行时,pods通过安装的卷或环境变量访问secret。需要注意的是,secret对同一集群命名空间的所有用户都可用。
通过部署网络策略限制pods的网络流量。Kubernetes的网络策略是规范pods选择如何相互通信以及与其他网络的通信。这对于在多层部署中不暴露于其他应用程序的pods是非常有用的。
可兼容性
Kubernetes的设计在选择操作系统、Docker运行时,处理器架构,云平台和PaaS提供了选择的自由。Kubernetes集群可以配置在主流Linux系统上,包括CentOS,CoreOS,Debian,Fedora,Red Hat Linux的Ubuntu。它可以部署运行在本地开发机;云平台,如AWS,Azure和谷歌云;基于KVM的虚拟环境,vSphere和libvirt;及裸机。用户可以启动Docker或rkt,未来新的容器运行时的容器。
通过federation,集群可以被混合匹配运行在跨多云提供商和私有部署。这将给容器化的工作负载带来混合云能力。客户可以无缝移动工作负载从一个部署目标转移到另一个部署目标。我们将在下一节讨论混合架构。
原文链接:Use Cases for Kubernetes(翻译:范彬)
===============================================================
译者介绍:范彬,从事微服务、Docker和Kubernetes容器技术等方面的工作。可以关注译者的微信公众号:范范米饭。
原文发布时间为:2017-04-24
本文作者:范彬
本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。
原文标题:Kubernetes平台概述

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Oracle瞄准Docker生态圈
本文讲的是Oracle瞄准Docker生态圈【编者的话】Oracle和Docker正在合作使得开发者更容易使用两家公司的技术。 【深圳站|3天烧脑式Kubernetes训练营】培训内容包括:Kubernetes概述、架构、日志和监控,部署、自动驾驶、服务发现、网络方案等核心机制分析,进阶篇——Kubernetes调度工作原理、资源管理及源码分析等。 通过Oracle数据库,中间件和开发工具出现在Docker验证过的应用市场中,目的是开发者可以从Docker库中直接将Big Red产品拉下来,进行现代应用的开发,测试和部署。 现在可用的产品包括Oracle Database、MySQL、Java 8 SE Runtime Environment、WebLogic Server、Coherence和Instant Client。 Mark Cavage,Oracle软件开发部门副总裁说,“Docker为软件开发和部署现代应用提供了革命性的方式,但是企业中关键性应用仍然是例外。”“通过Docker技术,Oracle为成千上万开发者提供了企业级解决方案的基石,以满足它们对应用容器化必备的安全...
- 下一篇
我只有两天。
日全食后,一直有不详的预感,低潮来临的预感,一直暗暗恐慌一直暗暗抵抗,因为我越来越害怕低潮了,不是我能力越来越弱,而是它的能量越来越强,让我越来越难恢复,越来越需要更长的时间慢慢恢复。 终于,我还是掉进去了。 导火线是什么呢?前天晚上我处理一个很小的设计,并在亢奋的状态下用了整整一个通宵去完成,整个过程中我都很兴奋,因为我觉得我又做了一个完美的设计。可是当我做完提交昏昏睡去,一觉醒来,重新坐到电脑面前进行审视的时候,却不断否定这个设计,一点又一点,一点又一点,最后竟没有一处让我满意,这个设计根本就不能把我想表达的东西呈现出来,反而它传递出无数的问号和疑惑,就像自己千辛万苦的创造了一个垃圾。5个小时,这个成型的设计连5个小时都没能沉淀下来,存活下来…… 然后,然后就是一种从天堂坠入地狱的情绪开始在血液流淌,不知不觉的迅速蔓延、燎原。终于到昨天晚上的时候开始在表面熊熊燃烧,我终于知道它还是来了,我被巨大的绝望包围了,我开始自我否定,从工作否定到生活,从性格否定到为人,我把自己批得一无是处,非常的无助。 我无法下手去做任何事情甚至不敢说话,因为好像我每做一件事,每说一句话都会让我在几分钟后感...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- Mario游戏-低调大师作品
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境