周一见 | 零停机部署 K8s、如何在 Git 中保护 K8s Secret、无服务器失败实践
新闻
作者:才云 Caicloud
译者:bot(才云)
2019-10-07 14:52

Kubernetes 资讯

1IBM 利用红帽攫取 K8s 专业知识

近日,有外媒报道称 IBM 正在利用 Red Hat 的 Kubernetes 专业知识,使其更易于部署其区块链平台,并管理在 Kubernetes 集群上运行的开源 Apache CouchDB 实例。

IBM 区块链平台基于开源 Hyperledger Fabric 平台。它利用 Kubernetes 提高了可移植性,并使在混合云中实现智能合约、CA 等的容器化成为可能。同时,IBM 也利用由 Red Hat 去年收购的 CoreOS 开发的 Operator 软件,大大简化了 CouchDB 文档数据库的部署和管理。

IBM Cloud Databases 副总裁兼 CTO Adam Kocoloski 表示,IBM 已经在其云服务中采用 Kubernetes,但其上的大多数应用都是有状态应用,而且它们并非传统意义上的应用系统,而是新兴系统。

就 Kubernetes 在企业中的采用而言,一切可能还处于初期。但采用 Kubernetes 已经成为明确的趋势,业界对此的辩论也早已从是否采用 Kubernetes 转向更细化的内容,比如在何时部署哪种类型的容器化应用。

2关于 Serverless 的失败实践

近日,国外一位网友尝试了使用 Serverless 框架来托管 API,结果却让他大跌眼镜:速度降低了 15%,价格反而提高了 7 倍

该网友的改造对象 CardGames.io 托管在 AWS 上,它使用 S3 来存储 HTML 页面、CSS、JavaScript 和镜像,它的 API 用 C# 编写,托管在 Elastic Beanstalk 上。它有两个环境,每个环境都有 1-3 个实例,一个处于活动状态,另一个处于非活动状态。在学习了利用 Serverless 框架托管 ASP.NET Web API 的教程后,该网友发现只需在现有 API 项目中添加一个简单的配置文件、一个依赖项和一个小的启动类就可以完成托管。相比 Beanstalk,Serverless 的整体流程更精简。

但在测试环节,他却发现使用 Serverless 后整体速度下降了 15%。同时,Lambda + API Gateway 每天的花费已经超过 45 美元,是原先使用 Beanstalk 的 8 倍。

这个失败实践在短短几天内吸引了超过 10 万名工程师。许多工程师指出了该网友的一些认知误区,比如应该在 Lambda 之前使用 Application Load Balancer,而不是 API Gateway;应该将古老的 m1.small 实例升级为新的实例类型……

虽然质疑声很大,但也有很多人表示自己也存在类似疑问:新技术层出不穷,但它们不一定真正适合自己,相比盲目跟随,最好的方式似乎正是像这位网友一样从一无所知到慢慢摸索,再到认清事实。

详见:https://einaregilsson.com/serverless-15-percent-slower-and-eight-times-more-expensive/

3如何在 Git 中保护 K8s Secret

Secret 是包含键值对和一些元数据的对象,它类似于 ConfigMap,不同的是它具备安全保护。为了方便管理,我们可以把 Secret 和其他清单文件一起存储在 Git 中:

  • 借助Git,你可以免费获得完整的审计历史记录
  • 你可以重复使用相同的合并策略并批准对 Secret 的更改,就像处理其余代码一样;
  • 无论任何时候,你的代码和你的 Secret 都将保持同步

那么,我们该如何保护 Git 中的 Secret 呢?近日,DevSecOps 专家 Omer Levi Hevroni 分享了他的工作心得。

详见:https://learnk8s.io/kubernetes-secrets-in-git/

4编写、测试 Kubernetes Webhooks

最近,一位国外网友应公司要求,需要使用 Kubernetes 重新设计他们的本地数据中心。在这个过程中,他不可避免地遇到了开发 Kubernetes 原生应用程序的问题。

经过一段时间的实践和总结,他撰写了一篇文章,介绍如何使用 Kubebuilder v2 编写、测试 webhooks。请注意,本文内容冗长,仅供专业人士参考。

详见:https://ymmt2005.hatenablog.com/entry/2019/08/10/Writing_and_testing_Kubernetes_webhooks_using_Kubebuilder_v2?utm_sq=g642pouqcq

5本周 K8s 开源项目推荐secreter

  • 它包含两个组件:CLI 工具,可用于加密 Kubernetes Secrets 并将其安全存储在集群外部(VCS、工件存储库、CI/CD 密钥库等);Kubernetes Operator,用于解密加密的 Secrets 并创建 Kubernetes Secrets
  • https://github.com/amaizfinance/secreter?utm_sq=g641n3o5wt

k8s-netchecker-server

  • 这个工具主要用于检查集群节点之间的连通性,由 server 和 agent 两部分构成。
  • https://github.com/Mirantis/k8s-netchecker-server?utm_sq=g641jao6y8

kubernetes-the-kubeadm-way

  • 本教程将引导你用 Kubeadm 建立高可用 Kubernetes 集群
  • https://github.com/brightzheng100/kubernetes-the-kubeadm-way?utm_sq=g641hpl8c1

kube-start-stop

  • 这个工具可以帮你自动启动和停止 namespace 中的 Kubernetes 资源,安排资源按需按时自动扩缩规模。
  • https://github.com/LiliC/kube-start-stop?utm_sq=g641crg3kv

admission-control

  • 这是一个用于构建 Kubernetes Admission Controllers 的微框架
  • https://github.com/elithrar/admission-control?utm_sq=g6417noohk

kube-prometheus

  • 该 repo 可以帮助你利用 Prometheus 监控 Kubernetes 和在 Kubernetes 上运行的应用程序
  • https://github.com/coreos/kube-prometheus?utm_sq=g667aqyfyb

6零停机部署 Kubernetes

在本文中,作者将以 Azure 中运行的 K8s 集群的 Asp.Net Core 微服务部署为例,展示如何配置 Kubernetes 以避免在 Pod 部署期间停机。文章提出的技术思路不限于特定技术和云提供商。

详见:https://www.syntaxsuccess.com/viewarticle/deploying-kubernetes-with-zero-downtime?utm_sq=g6400mpmpz

7DevOpsDay 参会心得

九月,一位国外网友参加了在波兰举行的 DevOpsDay,并从为期两天的各类演讲、开放空间和闲聊中领悟了对“DevOps”的独特理解。

DevOps 是具有新工具的 Ops。参会前,他本以为 DevOps 指的是开发和运维合并为一个团队。但在活动中,他没有见过任何开发人员。相反地,DevOps 意味着经验丰富的运维人员更注重个人脚本,每个人都该围绕自动化做更多事

所有人都讨厌 YAML。因为每个人都需要写很多 YAML。On-call/incident-response 是 DevOps 的一项重要工作内容。会议上有专门针对这个问题的分享,尤其注重心理健康。

云监控市场已趋向饱和。尽管都把自己包装形容成了其他东西,但会议有超过一半的赞助商是云监控领域的(Prometheus 竞品)。

K8s、Terraform、Ansible 和 Packer 是会上最常提到的工具。Prometheus 在监控方面很受欢迎;会上最常见的职位似乎是 SRE(站点可靠性工程师);许多人对诸如 Istio 和 Linkerd 之类的服务网格很感兴趣,但用者寥寥。

关于软件发布的方式,大家的共识是 CI/CD pipeline 会完成构建和测试,从而生成一个 Docker 镜像,并用 Kubernetes 部署它们。所有人都喜欢容器。


675 comCount 0