私は最近、Spinnaker と Canary の展開について自分自身で実験と PoC を行っています。
ローリング リリースを実装するにはDeploy
、Spinnaker でステージを作成し、展開戦略をRollingUpdate
サーバー グループ構成に設定します。Deployment
展開戦略を変更する前に、チェックボックスがオンになっていることを確認する必要があります。
カナリア デプロイの場合は、もう少し複雑です。Canary Stage が現在 Kubernetes Deployment をサポートしているとは思いませんが (まだ)、アプリが実行されている同じ Kubernetes LoadBalancer に Canary (たとえば 1 つのレプリカ) を手動でデプロイできるようです。これは、別の Spinnaker サーバー グループを使用して行われます。
次に、カナリアをテスト/検証するまで一時停止する手動判断を Spinnaker パイプラインに追加できます。カナリアが検証されたら、手動判定を「続行」すると、新しいサーバー グループがデプロイされ、古いサーバー グループが無効になり、カナリアが破棄されます。
手動判定を使用せず、完全に自動化したい場合は、ACA ステージ (Automated Canary Analysis) を追加できます。これには、さまざまな指標を収集して ACA スコアを提供する、Spinnaker が接続できるジャッジの設定が含まれます。その後、そのスコアを使用して、デプロイを続行するか、デプロイを停止するかを決定できます。