51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1218|回复: 0
打印 上一主题 下一主题

CNCF会重蹈OpenStack的覆辙吗?|航海日志 25

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-9-16 21:27:20 | 只看该作者 回帖奖励 |正序浏览 |阅读模式


    CNCF 会重蹈 OpenStack 的覆辙吗?


    CNCF(Cloud Native Computing Foundation),即云原生计算基金会,于 2015 年 7 月成立,隶属于 Linux 基金会,初衷围绕“云原生”服务云计算,致力于维护和集成开源技术,支持编排容器化微服务架构应用。
    由于最近大佬级别的云提供商的加入,云原生计算基金会(CNCF)很快就站在了开源容器世界的中心。在过去的几个星期里, CNCF 吸引了微软和亚马逊的 Web 服务 (AWS)的加入。他们的加入对于这个本来就隶属于 Linux 基金会的组织来说,无疑是如虎添翼。
    而伴随着 Kubernetes 的成功,和市场对于容器技术的需求逐渐扩大,CNCF 的声势也日渐浩大。微软和 AWS 相继加入 CNCF,对于 CNCF、开源和 Kubernetes 来说, 也是一个巨大的胜利。
    尽管这些会给 CNCF 带来规模和潜在的影响,但组织仍然面临挑战。
    CNCF 执行董事 Dan Kohn 表示:
    CNCF 一直非常专注于确保所有成员在迅速扩张的组织中都有各自的代表性。CNCF 的最大优势是他们足够新兴,所以他们能够向前人学习,其的愿景是只犯新的错误, 而不是照搬过去的错误。所以推断 CNCF 会重蹈 OpenStack 的覆辙,这样的论断是错误的。
    而对 OpenStack 来说,许多运营商早期的时候使用 OpenStack 来实现他们的 SDN 计划,而现在供应商社区则无法提供所需的解决方案。同时,OpenStack 存在的一些问题还归咎于它无法处理一些较大成员的不同需求。
    而为了规避这样的问题,CNCF 留出了在供应商之上添加更多产品的余地,让社区来决定其有用性。这样他们的生存和死亡由自身的优势决定,但 OpenStack 社区人为地支撑着将死的平台。
    同时,Dan Kohn 也承认 Kubernetes 一直处于爆炸性增长的状态。如果能管理这一增长,则能实现组织目前最大的成就。
    Kubernetes 1.7.4 版本发布


    8 月 17 日, Kubernetes 1.7.4 版本发布了,相比 1.7.3 版本共有 17 处明显变化,例如:

      修复创建或更新 ELB 会修改全局定义的 Security Group Bug
      修复 kubefed 在不同版本 RBAC 创建问题
      修复 API Server Watch Cache 中一个 Bug
      Azure:允许 VNet 在一个单独的资源组中
      Cluster Autoscaler -修复了与 taints 相关的问题,并更新了 kube – proxy cpu请求
      以 Stackdriver 模式收集来自 Heapster 的 Metrics
      GCE:Bump GLBC 版本更新到 0.9.6
      更新 Heapster 版本 1.4.1

    Docker Tips:将容器的文件重定向到您的 Docker 主机


    每隔一段时间,我都需要将容器的文件转存到我的 Docker 主机上。在这里向大家提供一种简单的方法。
    有时为了调试,您可能想将容器内部的配置文件的内容复制到 Docker 主机,以便您在自己喜欢的代码编辑器中打开它,或将其发送给别人。这对于已经运行的 Docker 容器来说非常方便,并且您不希望用 volume 重新启动它,因为你想要立刻就获取这个文件。
    完成以下两点你就可以达成目的:# 重写那个镜像的 Dockerfile 的 CMD, 来cat到你想要的文件
    以上步骤将打印出容器的 /etc/hosts 文件的内容# 修改命令将该输出重定向到 Docker 主机上的新文件。
    你可以运行命令
    ls -la /tmp | grep alpinehosts
    来进行验证。
    当然,如果您在 Docker 主机上运行 Windows 而不是 MacOS 或 Linux,则你的命令需要进行一些小的调整。例如,在 Windows 上不起作用。如果您使用 PowerShell 等,您将需要 Google 一下如何将输出重定向到文件。
    另外,在这两种情况下,您都需要将
    Cat
    指令安装在 Docker 镜像中,但所有主要的 Linux 版本都已经默认安装了(包括 Alpine)。
    从环境变量到 Docker secrets
    12 Factor app
    12 Factor app 中的第三项告诉我们要将配置存储在环境中。
    它还提供了以下内容的示例:

      资源处理数据库,Memcached 和其他后台服务
      对外部服务的认证,如 Amazon S3 或 Twitter
      部署的规范主机名

    我们想知道如今是否仍然推荐这种方法,并且使用它的风险程度。在这篇文章中,我们将一个简单的应用程序为例,看看如何修改它以更安全的方式来处理这些敏感的信息。
    在 Docker 世界运行的应用
    在过去的几年中,我们看到了许多应用在开发和部署方面都产生了变化。这主要是因为Docker 平台的流行。应用程序现在主要采用微服务体系结构:它们由多个隔离式服务组成。使用 Docker Compose 文件格式定义微服务应用程序现在非常普遍。此格式定义了服务及其使用的组件(网络,卷,...)。以下是用于定义由以下组成的 Web 应用程序的 Docker Compose 文件(其默认名称为 docker-compose.yml)的简单示例:version: "3.3"
    使用环境变量处理 AWS 凭据
    当我们深入了解 api 服务,假设这需要 AWS S3 的一些凭据。api 服务是在 Node.js 中编写的。使用 aws-sdk npm 模块连接到 Amazon API 的代码类似于以下内容。// Middleware handling user's profile images
    以上代码中所需的配置模块在一些其他配置内容中定义了 AWS 凭据。我们在这里看到,每个元素从一个环境变量获取它的值。// config.js
    然后,当通过 Docker Compose 运行应用程序时,我们通过环境键指定这些环境变量。api:
    这的确是处理这个问题的一个方式,但是,将这些敏感信息以纯文本格式化是非常危险的。
    处理具有 Docker secrets 的 AWS 凭据
    有几种方式可以以安全的方式处理这些信息。使用 Docker secrets 就是其中之一。
    我们不再在环境变量中以纯文本定义凭据信息,而是从中创建 docker secrets。$ echo "BucketName"| docker secret create AWS_BUCKET_NAME -
    secrets 创建成功。使用 docker secret ls 。$ docker secret ls
    但他们的内容无法被检索。例如,如果我们检查与关键字 AWSACCESSKEY_ID 相关联的 secret,我们只会获取元数据,而不是其实际内容。$ docker secret inspect 5txxg3fslf9g5z1o4i19vvmcr
    创建了 secret 以后,我们就可以在 Docker Compose 文件中引用它们。secrets: AWS_BUCKET_NAME: external: true AWS_ACCESS_KEY_ID: external: true AWS_SECRET_ACCESS_KEY: external: true  
    在 Docker Compose 文件中,我们还需要修改 api 服务的描述,以便使用这些 secrets。api:
    当一个服务需要访问一个 secret 时,默认情况下,它被安装在该服务的每个容器中的临时文件系统中。
    由于我们的应用程序仅在此阶段检查环境变量,因此需要进行更新。
    这可以用一个简单的模块来实现,只需要从`/run/secrets`中读取一个 secret。这在以下代码中说明。// secrets.js
    然后,我们可以修改配置文件,以便它使用 secrets.js 模块的 get 函数:...
    对于每个 key,我们首先检查它是否作为 secret 存在。如果没有的话,我们仍然使用环境变量。
    这一期的『航海日志』就到这里,下期再浪~
    参考链接

      https://www.sdxcentral.com/articles/news/can-cncf-avoid-pitfalls-that-have-hampered-openstack/2017/08/
      https://www.kubernetes.org.cn/2562.html
      https://nickjanetakis.com/blog/docker-tip-16-redirect-a-containers-file-onto-your-docker-host
      https://medium.com/lucjuggery/from-env-variables-to-docker-secrets-bc8802cacdfd

    作者介绍

    莫非 Beck:DaoCloud 微服务攻城狮,吃饱了就困的一流段子手。
    刘玺元 Boring:DaoCloud 市场部门(伪)程序猿。

    复制链接,查看船长的过去
    http://blog.daocloud.io/edu170814/?utm_source=toutiao&utm_medium=social&utm_campaign=edu170821&utm_content=hanghairizhi

    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 17:50 , Processed in 0.105405 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表