CNCF 云原生容器生态系统概要

该培训深入探讨Kubernetes核心概念,包括集群安装、运维管理与架构规划,同时涉及组件、监控和网络知识。此外,讲解了Kubernetes API接口的二次开发及DevOps理念。还涵盖了Docker在企业中的应用和运维实践。
摘要由CSDN通过智能技术生成

CNCF(Cloud Native Compute Foundation) 是 Linux 基金会旗下的一个组织,旨在推动以容器为中心的云原生系统。从 2016 年 11 月,CNCF 开始维护了一个名为 Cloud Native Landscape [1]的 repo,汇总目前比较流行的云原生技术,并加以分类,希望能为企业构建云原生体系提供参考。


2017 年 12 月 06 日,Landscape 的 v1.0 版本发布,本文就按照下面这种图介绍云原生系统的大致情况。



云原生以容器为核心技术,分为运行时(Runtime)和 Orchestration 两层,Runtime 负责容器的计算、存储、网络;Orchestration 负责容器集群的调度、服务发现和资源管理。


往下是基础设施和配置管理,作为容器底层的基石。容器可以运行在各种系统上,包括公有云、私有云、物理机等;容器还依赖自动化部署工具、容器镜像工具、安全工具等运维系统才能工作。


往上是容器平台上的应用层,类似于手机的 App Store,图中分为数据库和数据分析、流处理、SCM 工具、CI/CD 和应用定义几类,每个公司根据业务需求会有不同的应用体系。


右边有两块:平台和观察分析。平台是指基于容器技术提供的平台级的服务,比如常见的 PaaS 服务和 Serverless 服务。观察分析是容器平台的运维,从日志和监控方面给出容器集群当前的运行情况,方便分析和 debug。


NOTE:因为图中给出的软件很多,所以文中会挑选一些比较有名的以及本人比较熟悉的介绍,会略过一些信息;此外,也因为个人的水平有限,并没有对所有产品都一一使用过,因此有些内容未免有偏颇或者错误之处,如果读者发现,还望能不吝指出。


1. Cloud(云)

容器需要运行在操作系统上,系统可以运行在虚拟机或者物理机上。从使用方式上来分,操作系统这层(Iaas)可以分为公有云和私有云。


公有云


公有云国外以亚马逊 AWS、微软 Azure、谷歌 GCP、DigitalOcean 为代表,国内有阿里云、腾讯云、华为云,此外 IBM、Oracle、Fujitsu 都有自己的云产品,Joyent 也是国外很有名的云计算公司;Packet 是物理机云服务商,直接为用户提供物理机资源。


企业一般会选择其中一个平台来使用,也有不少企业同时选择两种或者多种云服务商,以提高可用性和避免厂商锁定。


私有云


私有云是指用户在自己的数据中心搭建的云服务,除了自己研发之外,常见搭建私有云的方法有 VMware(商业化的虚拟化软件) 和 OpenStack(Python 编写的开源 IaaS 平台软件);此外 MaaS 提供物理机自动安装和管理服务,分为免费版和收费版;Foreman 是虚拟机和物理机的系统配置工具。


建设私有云的成本很高,但是当公司成长到一定规模的时候,私有云建设也是必要的一件事。除了能缩减成本,也能提高技术实力,而且也有更多的灵活性满足内部的各种需求。


2. Provisioning(部署)

有了物理机和虚拟机,在运行容器服务之前,我们还需要为容器准备标准化的基础环境,以及保证基础设施的自动化,拿盖房子来比较,IaaS 和这部分共同组成了容器平台的地基。


Host Management / Tooling


自动化配置工具,保证容器运行的系统配置的一致性,并提供升级、补丁等功能,一般也可以用来 Bootstrap 容器服务。


这里的几家软件功能大同小异:


  • Ansible 比较简洁,用 SSH 来自动化部署,使用 Python 编写

  • CFEngine 是这个领域非常老的工具,可以说是配置管理的元老,用 C 编写,因此性能会更好,但是学习曲线也更曲折

  • Chef 用 Ruby 编写,而且配置文件格式也是 ruby DSL,因此对于 Ruby 程序员非常亲切友好

  • SaltStack 采用 ZeroMQ 作为消息队列,实现 master-salve 模式,兼具性能和灵活性,但同时整个系统也更加复杂

  • Puppet 是这个领域的老大哥,以成熟稳定著称,社区文档也更丰富


这篇博客[2]和这篇文章[3]比较了 CFEngine vs Puppet vs Chef vs Ansible vs Salt 这几个工具的异同,如果纠结如何选型,推荐阅读。


其实,对于大多数需求,根据开发语言、配置文件风格等选择其中一种就行。


Infrastructure Automation


IaaS 平台提供了基础设施服务,但是对于复杂的场景来说,直接使用这些服务提供的接口还是会很麻烦,所以有了基础设施自动化。这部分做的事情就是能够让基础设施的配置自动化,一次完成多个资源的部署,提高效率。


  • Bosh:CloudFoundry 旗下的产品

  • Cloudify:云应用编排系统,能够让用户定义软件,然后部署到不同的云环境中

  • CloudFormation:AWS 提供的基础配置服务,能够通过配置文件定义要创建的各种 AWS 服务,然后一键完成集群或者系统的搭建

  • Ubuntu Juju:Ubuntu 提供的管理工具,能够自动化把几百种服务部署到不同的平台

  • Terraform:HashiCorp 旗下的基础设施配置工具,通过定义一份配置文件,Terraform 能够在不同云提供商运行服务,是 Infrastructure as Code 的信奉者

  • Manage IQ:统一管理云主机、容器、网络、存储的 IT 平台

  • Kubicorn:管理多个 Kubernetes 集群的工具,集群可以在不同的云上

  • Helm:Kubernetes 软件包安装工具,能够安装多个 Kubernetes 资源,类似于 Ubuntu 的 APT 工具


总的来说,这些工具就是在云平台或者 Kubernetes 平台上再封装一层,让用户能够通过一次定义,在不同平台部署多个资源或者服务,并做到版本升级和跟踪。如果云平台提供相关服务(比如 AWS 的 CloudFormation)直接使用即可,如果是混合云,则需要选择 Juju、Terraform 这样的管理工具。


Container Registries


容器的镜像 Registry 是容器平台的基础需求,毕竟所有的容器应用就是通过镜像来定义的,镜像服务分为自建和公有服务两种。


很多公司提供了它们公开的容器 Registr 服务,比如 Docker 官方的 Registry,亚马逊 ECR(Elastic Container Registry)、Azure 和 Google 云 Registry、此外 Quay、Project Atomic、JFrog Artifactory 也是比较著名的容器镜像服务提供商。


Harbor 是开源的企业级容器镜像管理平台,Portus 专门为 Docker Registry 提供授权服务。


国内一般企业会选择自建 Registry,因为国外的 Registry 访问速度都很慢,而国内并没有非常流行的 Registry 服务(当然很多容器服务公司都会提供 Registry 服务),另一方面自建 Registry 的技术并不复杂。


Secure Images


随着镜像和容器标准化的完善,镜像和容器的安全也越来越受到企业的关注。虽然在大多数情况下,安全往往是软件开发者最后才关心的事情,但是容器安全却是不容忽视的一个环节。


Notary 和 TUF(the update framework) 是 CNCF 旗下的两个项目,TUF 是开源的安全和验证标准,Notary 是它的一个实现,Notary 可以用来验证镜像的安全性,也可以用来安全地发布软件包。


  • Clair:CoreOS 开源的容器安全性分析工具

  • Twistlock 是云原生系统的安全性平台

  • NeuVector 是网络安全分析工具

  • Aqua 也是容器安全平台,提供镜像、容器、用户认证、网络流量限制等多种安全功能

  • Anchore 提供了一系列容器环境安全分析、审查和扫描工具


Key Management


和安全相关的另一个问题是机密信息,包括密码数据、密钥等。


Keywhiz、Pinterest 开源的 Knox、Lyft 开源的密码存储工具 Confidant 和 HashiCorp 开源的 Vault 想要解决机密信息的存储,它们通过加密的方式把内容保存到后端存储中,而且提供了 Auditing 等额外功能。


SPIFFE 和 SPIRE 是一对的,SPIFFE 定义了服务的认证标准和认证信息的标准,SPIRE 是它的一个实现,但是目前还没有达到生产可用。


3. Runtime(运行时)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值