BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Ambassador開発者コントロールプレーンが一般的なKubernetesフルライフサイクルツールを統合

Ambassador開発者コントロールプレーンが一般的なKubernetesフルライフサイクルツールを統合

原文(投稿日:2021/05/19)へのリンク

Ambassador Labsは、Developer Control Plane(DCP)のリリースを発表した。DCPは、Kubernetesベースのサービスの全ての開発と運用をサポートするツールを統合して提供する。これには、ArgoTelepresenceEnvoy Proxyなどの人気のあるCloud Native Computing Foundation(CNCF)ツールが含まれている。

DCPは、必要なツールを管理するための単一のインターフェイスを提供することにより、コードシップ実行ワークフローを簡素化することを目的としている。コントロールプレーン内に統合されているのは、GitHub、GitLab、DataDog、Docker、Jenkinsなどの他の一般的なツールを備えた多数のCNCFプロジェクトである。

Ambassador Developer Control Plane showing current and future planned integrations

現在および将来計画されている統合を示すAmbassador開発者コントロールプレーン(出典:Ambassador Labs

 

DCPとTelepresenceの統合により、ローカル開発ワークフローがシンプルになる。Telepresenceを使うと、開発者のマシンからのローカルコードを実行することで、リモートサービスやデータストアに対してテストできる。これは、Kubernetesクラスタで実行されているポッドの双方向ネットワークプロキシを作成することで実行される。このポッドは、Kubernetes環境からローカルで実行中のプロセスにデータをプロキシする。これにより、新しい変更を検証およびテストするために必要なすべてのサービスをローカルで実行する必要がなくなる。

変更をデプロイする準備ができたら、DCPはArgoおよびEdge 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およびEdgeStackとの統合により、サービス検出とL7トラフィック管理ができるようになる。アノテーションを使って、サービスにメタデータを追加できる。次のコマンドは、所有者アノテーションをサービスに追加する。kubectl annotate service MYSERVICE a8r.io/owner="sallydev"

サービス固有のビューは、これらのコンポーネントのための統合されたインターフェースを提供する。Preview URLsオプションを使用すると、Telepresenceを介したローカルテストができるようになる。Argoを介したデプロイは、Rolloutsオプションを使って実行できる。アノテーションがページに表示され、Slackチャネル、APIドキュメント、ログを指定できる。

Annotated view of the Service Catalog showing a single service

単一のサービスを示すサービスカタログのアノテーション付きビュー(クレジット:Ambassador Labs

 

Ambassador開発者コントロールプレーンは無料で利用できる。サービスカタログを使うためには、Edge Stackバージョン1.12以降とAPI Gateway 1.13以降をクラスタ内にインストールする必要がある。Slackおよび毎週の営業時間でサポートを利用できる。

この記事に星をつける

おすすめ度
スタイル

BT