Ambassador Labs 发布了集成通用的 Kubernetes 全生命周期工具

164 阅读2分钟

Ambassador Labs发布了 开发者控制平台 (DCP) 。该DCP汇集了各种工具,以支持基于Kubernetes服务的全面开发和运营。这包括流行的云原生计算基金会 (CNCF)工具,如ArgoTelepresenceEnvoy Proxy

DCP旨在通过提供一个管理必要工具的单一界面来简化代码运行的工作流程。集成在控制平面内的是一些CNCF项目与其他通用工具,如GitHub、GitLab、DataDog、Docker和Jenkins。

image.png Ambassador开发者控制平面显示了当前和未来计划的集成(来源:Ambassador Labs)

DCP与网真的整合简化了本地开发工作流程。Telepresence允许从开发人员的机器上对远程服务和数据存储进行本地代码测试。它通过为运行在Kubernetes集群中的pod创建一个双向网络代理来实现这一点。这个pod将数据从Kubernetes环境代理到本地运行进程。这样就不需要在本地运行所有必要的服务来验证和测试新的变化。

一旦变化准备好部署,DCP就会与ArgoEdge Stack集成,以简化金丝雀发布。Argo是一个工具集合,支持GitOps风格的持续部署,以及金丝雀和蓝绿部署策略。Edge Stack是Kubernetes的API网关,支持断路渐进交付速率限制等流量整形方法。

通过这些工具,可以定义一个自定义资源 (CRD)来定义一个增量的推出。这个CRD例子显示了首先将20%的流量发送到新版本的推出的声明。

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
 name: rollout-canary
spec:
 replicas: 5
 revisionHistoryLimit: 2
 selector:
   matchLabels:
     app: rollout-canary
 template:
   metadata:
     labels:
       app: rollout-canary
   spec:
     containers:
     - name: rollouts-demo
       image: argoproj/rollouts-demo:blue
       imagePullPolicy: Always
       ports:
       - containerPort: 8080
 strategy:
   canary:
     steps:
     - setWeight: 20
     # The following pause step will pause the rollout indefinitely until manually resumed.
     # Rollouts can be manually resumed by running `kubectl argo rollouts promote ROLLOUT`
     - pause: {}
     - setWeight: 40
     - pause: {duration: 40s}
     - setWeight: 60
     - pause: {duration: 20s}
     - setWeight: 80
     - pause: {duration: 20s}

一旦服务被部署,可以使用服务目录来发现哪些服务是活动的。与Emissary-Ingress和Edge Stack的集成允许服务发现以及L7流量管理。 Annotations可用于向服务添加元数据。下面的命令将把所有者注解添加到服务中:  kubectl annotate service MYSERVICE a8r.io/owner="sallydev"

服务特定视图为这些组件提供了一个集成接口。预览URLs选项允许通过网真进行本地测试。通过Argo的部署可以通过Rollouts选项完成。注释出现在页面上,允许指定Slack频道、API文档和日志。

https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9d2ec523949c4021903fe6feacbee289~tplv-k3u1fbpfcp-zoom-1.image

服务目录的注释视图显示了一个单一的服务(来源:Ambassador Labs)

Ambassador Labs 控制平面可以被免费利用。服务目录需要在集群中安装Edge Stack 1.12或更高版本和API Gateway 1.13或更高版本。通过Slack每周办公时间提供支持。