Kubernetes部署场景

栏目: 服务器 · 发布时间: 6年前

内容简介:Kubernetes部署场景

【编者的话】这是一篇介绍生产环境使用Kubernetes的用户部署场景。

Kubernetes可以作为容器编排引擎、PaaS或者作为云原生应用的核心基础架构被用户部署到生产环境。这些用例并不相互排斥的。DevOps可以委托基于Kubernetes的PaaS层完成整个应用生命周期的管理(ALM),也可以独立部署Kubernetes管理CI/CD工具部署的应用。对于新应用程序可以使用kubernetes管理微服务架构的云原始应用,支持先进的场景,如滚动升级和金丝雀的部署。

这一部分将抓取顶级客户使用Kubernetes的案例 。在此之前,让我们仔细看一个企业的容器管理平台的重要组件。

Kubernetes部署场景

企业容器管理平台的构成部分

客户需要安装一套 工具 来有效地管理容器化应用程序的生命周期。它们构成容器管理平台核心组成部分。这种模式的平台变得越来越普遍,对于部署和管理生产级容器。至关重要。

操作系统

容器减少应用程序对底层操作系统的依赖性。运行容器的工作负载喜欢选择轻量级的操作系统,像CoreOS和RedHat Atomic Host,降低基础设施的管理成本。

容器引擎

容器引擎管理特定主机或节点上运行的容器的生命周期,编排工具和容器引擎共同调度管理集群节点的容器。Docker和rkt是两种容器引擎。

镜像仓库

镜像仓库是容器镜像的存储库。运行时编排引擎可以通过镜像仓库安全访问镜像。Docker的Trusted Registry,CoreOS的Quay Enterprise和JFrog的Artifactory都是可选择的镜像仓库。

镜像安全

镜像是容器平台非常重要的基础,需要扫描镜像的脆弱性和潜在威胁。CoreOS的Clair、Twistlock和OpenSCAP可以用于镜像扫描。

容器编排

这是管理容器工作负载的最重要部分。它提供分布式容器管理和容器调度服务。Kubernetes,Docker原生编排Swarm及Mesosphere DC/OS提供容器编排和容器管理。

分布式存储

容器需要一种新的分布式存储来管理有状态的工作负载。产品如ClusterHQ、Portworx、Joyent Manta和Diamanti提供容器存储。

监测

生产级工作负载需要不断的查看应用的状态和健康。容器监测解决方案包括基础设施监控和运行容器的监控。Datadog、Sysdig、Prometheus提供容器监控服务。

日志

通过日志分析,可以了解容器及其主机的性能、稳定性和可靠性。同任何生产的工作负载一样,日志是非常重要的。Splunk、Loggly、Logentries提供容器日志服务。

代码管理

代码管理(SCM)通常用于维护代码版本,同时,对容器化工作负载(如:镜像和Kubernetes对象)的版本也起着重要的作用。现有的SCM解决方案,如GitHub,Bitbucket和Gitlab,可以用于管理代码和容器化工作负载。

构建自动化

容器镜像作为构建CI/CD管道的一部分。通过利用现有的工作流和创建自动化管道,客户可以实现容器化应用的自动部署。专业CI/CD的工具,如Shippable,或现有的工具,像Jenkins,都可以用来扩展,作为容器化应用的自动化部署工具。

配置管理

传统的配置管理工具已经扩展支持容器。客户能混合和匹配容器化和虚拟化技术,使用统一的工具提供创建、配置、部署和管理应用程序。Chef、Puppet、Ansible和SaltStack已经增加了容器的支持,可以利用现有的playbooks和recipes管理容器化应用。

Kubernetes作为容器编排和管理工具

Kubernetes最常见的用法是管理生产级容器。客户可以选择部署开源版本的Kubernetes或使用商业版本。部署目标可能是私有部署、公共云或混合云。

在这种情况下,客户可以使用混合DevOps工具管理现有的应用和新的应用程序,并且,可以使用一组异构工具:管理镜像仓库、安全扫描、存储、网络和自动化构建。Kubernetes基础现有的工具构造容器编排和容器管理工具。客户可以使用商业版kubernetes,如Tectonic,或企业分发版Canonical。

CoreOS Tectonic

CoreOS诞生于容器的时代。Tectonic是首个基于kubernetes,端到端的企业容器编排引擎。CoreOS技术栈结合了kubernetes,并作了安全增强。用户可以获得最新的更新,以保持他们的基础架构是最新的。

对比Kubernetes,Tectonic主要作了安全增强。分布式可信计算(DTC)通过密码验证客户整个环境(从硬件到分布式集群)的完整性。当企业运行Kubernetes在一个偏远的、合作的基础设施上。 添加集群节点,验证此节点为受信节点是很重要的。即使存在潜在的妥协数据中心状况,DTC能保证集群的完整性。

同时,Tectonic在构建、存储、部署容器过程中,集成了CoreOS私有镜像仓库Quay Enterprise。

Canonical

Ubuntu发布了kubernetes Canonical分发版,商业Kubernetes已经挤入容器编排市场。Canonical为客户提供稳定的上游Kubernetes发布,以及获得上游Kubernetes分支的早期版本。主节点可以扩展独立的工作节点。工作节点可以自动轻易的移值,从公有云、私有云和裸机到Google Container Engine。Canonical除了管理容器生命周期的功能外,还包括创建删除用户访问、提供维护模式、 支持最新版本的升级。

Canonical包括如下组件:Kubernetes控制台、基于Prometheus的监控系统(收集和处理系统量度)、基于ELK的日志监控、Flannel容器网络、集成Ceph分布式存储。

Canonical使用现有的基础设施和DevOps工具,规范优化了Kubernetes运行。运行Canonical的OpenStack客户、裸机框架的(MAAS)服务、DevOps工具Juju,都可以轻易集成Kubernetes。

** Kubernetes作为一个私有PaaS平台 **

客户部署PaaS主要规范了部署和部署环境。通过使用基于Kubernetes的PaaS,他们将在同一个平台上管理传统业务应用软件和新的容器化应用。Kubernetes已被传统的PaaS供应商采用,给企业客户提供端到端的平台。基于核心容器能力,这些PaaS产品提供完整的生命周期管理容器应用。

PaaS供应商添加了额外的功能,如应用分发、消息路由、服务代理、容量规划、集成日志。PaaS没有暴露底层基础设施,是面向开发者提供的通用平台。PaaS层试图抽象kubernetes的复杂性,简化工作流。

在基于kubernetes的PaaS平台中,Apprenda和红帽OpenShift是领先的。他们提供商业支持Kubernetes。其他Kubernetes的PaaS平台,包括AppsCode和Eldarion Cloud,他们发布公共云服务。

Apprenda

Apprenda是一个企业PaaS平台,针对微软.NET客户和 java 应用程序,提供一个有效的应用部署架构。该平台设计目标是面向开发和运维团队,为现有的私有部署的企业应用提供PaaS功能。

近日,Apprenda拥抱 Docker 和Kubernetes,解决传统与新应用软件的差距。客户将能够混合和匹配DevOps过程,提供通用的DevOps过程,无论是.net应用,还是java应用程序,或容器应用。

开发者和运维团队可以使用现有的CI/CD工具维持旧的应用程序以及Kubernetes应用。虽然Apprenda PaaS不是开源软件,但通过hooks和REST API,它能够集成到其他平台。部署在Kubernetes的应用程序,可以为传统的.NET或java应用程序提供标准协议。

Apprenda是一个策略驱动的PaaS平台,运维团队通过定义粒度策略,管理应用发布、监控、合规性和安全性。这种方法满足企业客户的目标,作为现有的应用程序门户,并考虑包括容器应用。它允许部署、安全和合规策略集中定义和管理。同时在可扩展的平台上,让开发团队专注于应用程序开发。

Red hat OpenShift

红帽的OpenShift是基于kubernetes开源企业级PaaS平台的领先者。Google之后,红帽的OpenShift工程师是对kubernetes项目最活跃的贡献者。

同其他竞争者一样,红帽早期OpenShift平台是一个定制化的平台实现,后来,采用了开发者工具Docker和kubernetes,OpenShift转移到基于kubernetes引擎的PaaS平台。

OpenShift提炼Kubernetes基础结构,它是面向开发者经验的平台,它提供了一套用户接口连接Git,及专有的红帽企业Linux(RHEL)工具,Docker和kubernetes。开发者通过已有的Git工具或者集成的镜像仓库与平台交互。该平台包括一个Source-to-Image (S2I)工具,能转变开发代码变成运行的Docker容器,并保留Docker镜像分层结构。红帽基于 Kubernetes添加企业级特性,如项目、用户和组、多租户功能。在同一集群中,多部门或业务单元能部署不同的应用,并达到资源隔离。OpenShift还提供了应用程序日志的全面视图,包括实时日志、构建日志和部署日志。

DevOps团队可以使用熟悉的Docker和Kubernetes工具管理平台。OpenShift配有内置策略管理工具,着眼于用户认证和管理内置的镜像仓库。

Kubernetes作为云原始基础架构

业内人士对云原生应用的定义虽然没有确切的共识,但大多数人同意,云原始应用可以被定义为新的应用程序,打包成容器、微服务架构、运行在弹性基础架构、并通过敏捷DevOps流程管理。云原生应用与十二因子应用的原则是紧密一致的。

不是每个容器应用都是一个云原生应用。Kubernetes用来部署和管理容器应用程序。同时,Kubernetes可以管理云原生应用程序的生命周期。客户可以选择Kubernetes作为部署平台的首选,设计、开发、测试、部署和管理云原生应用程序。

这些应用被部署在现有的基础设施或PaaS的Kubernetes集群上。尽管与上面定义的场景重叠,这种情况适用于组织构建应用,他们不需要与现有的遗留应用程序交互。

云原生应用程序可以利用Kubernetes先进的功能,如滚动更新、金丝雀部署、水平pod和集群伸缩。Kubernetes作为云原生应用的基础架构,仍是在不断发展,值得指出的是,这对许多用户和组织具有战略价值。

Kubernetes作为云原生应用的基础架构包括如下项目:Intel和CoreOS的Stackanetes项目。Stackanetes是基于kurbernetes的OpenStack。它提供了高可用性、自愈、OpenStack IaaS的全部特征,并且提供Kubernetes自动化部署和管理。该项目的技术预览将在巴塞罗那OpenStack大会上发布。


以上所述就是小编给大家介绍的《Kubernetes部署场景》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从零开始学微信公众号运营推广

从零开始学微信公众号运营推广

叶龙 / 清华大学出版社 / 2017-6-1 / 39.80

本书是丛书的第2本,具体内容如下。 第1章 运营者入门——选择、注册和认证 第2章 变现和赚钱——如何从0到100万 第3章 决定打开率——标题的取名和优化 第4章 决定美观度——图片的选取和优化 第5章 决定停留率——正文的编辑和优化 第6章 决定欣赏率——版式的编辑和优化 第7章 数据的分析——用户内容的精准营销 书中从微信运营入门开始,以商业变......一起来看看 《从零开始学微信公众号运营推广》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具