Overview
ZCP v2 の最も重要な機能は Multi Cluster サポートです。 ZCP v1では、各クラスタごとにZCPがインストールされ、そのクラスタにのみアプリケーションをデプロイし、ログを収集し、監視メトリックを収集できました。 ZCP v2は、Control Planeクラスタを中心に複数のData Planeクラスタを管理し、アプリケーションをデプロイし、データを収集する集中型で構成されています。
ZCP v2のアプリケーション(以下、ZCP Application。一般的に言うアプリケーションと用語を区別するため)とDeployment Groupは、単一クラスタではなくマルチクラスタに対するCI / CDのための概念です。 CI/CDとは最終的にアプリケーションをビルドし、自分が望む環境にビルドしたアプリケーションをデプロイする過程を継続的に実行できるように自動化したものです。単一クラスタを対象にCI / CDを実行する場合、ビルド→展開につながるプロセスが一度だけ実行されても大きな問題はありません。ただし、マルチクラスタがターゲットである場合(デプロイするターゲット環境が複数ある場合)、ビルドは一度だけ実行され、デプロイメントをターゲットのみに置き換えて複数回実行できる構成が可能でなければなりません。 ZCP v2では、アプリケーションを構築するためのZCPアプリケーションと、必要なクラスタにデプロイするためのデプロイメントグループという概念を作成し、ビルドとデプロイのプロセスを分離しました。
Deployment Groupは、アプリケーションがデプロイされるターゲット環境をグループ化した概念です。デプロイメント環境は Kubernetes クラスタを対象としており、AKS、EKS、IKS、Native Kubernetes などのさまざまな Kubernetes をサポートし、特定の CSP (Azure、AWS、IBM など) に依存しません。 Deployment Groupには、1つ以上のKubernetesクラスターと1つのNamespaceを指定できます。 Deployment Groupを介してデプロイを実行すると、Deployment Groupで指定されているすべてのクラスターのNamespaceに同じアプリケーションがデプロイされます。
Deployment Group には 1 つ以上の ZCP Application をデプロイでき、ZCP Application ごとにデプロイメント形式を設定できます。デプロイの実行時にUIで指定したデプロイの形式はKubernetes Deployment yamlで作成され、自動的にGitサーバーに保存されます。保存された yaml ファイルは ArgoCD を介して配布先クラスタに適用されます。
Deployment Groups リスト照会画面です。
登録されているデプロイメントグループのリストが照会されます。
- (1)ページング機能:右側のページング機能により、リストの本数を10個、20個、30個、50個、100個単位で指定して画面で表示できます。
- (2)デプロイメントグループのリスト:デプロイメントグループのリストです。 Deployment Group 名、説明、Namespace、Cluster 個数、Application 個数情報が表示されます。
- (3) Deployment Group 名: Name 項目をクリックすると詳細画面に移動します。
- (4)機能ボタン:各Deployment Groupに対して複数のアクションを実行します。ボタンをクリックして詳細画面に移動するか、削除機能を実行します。
Deployment Groupの作成
新しいデプロイメントグループを作成します。
Deployment Group 画面で、左上の Create Deployment Group ボタンをクリックします。
Deployment Group 作成画面です。
以下は、画面内の入力項目の説明です。
- Name: Deployment Group 名で必要な入力値です。同じrealmとproject内で一意の値です。
- Display Name: Deployment Group の表示名です。
- Description: Deployment Group の詳細な説明です。
- Namespace : Deployment Group が配置される kubernetes の名前空間名です。 Namespaceはすべてのプロジェクトでユニークでなければなりません。
各項目の正しい値を入力すると、保存ボタンが有効になります。 SaveボタンをクリックするとDeployment Groupが作成され、作成されたDeployment Groupの編集画面に自動的に移動します。
Deployment Groupの編集
Deployment Group を編集します。編集画面は、Overview、Basic Info、Clusters、Resources、Applications、Ingressタブで構成されています。
Dashboardを使う
クラスタの追加/編集
Deployment Group をデプロイするクラスターのリストを管理します。
画面上部の[Clusters]タブをクリックします。
リスト内の項目の説明です。
- Cluster Name: Cluster 名です。
- Provider: Cloud platform provider。
- Type: Cluster のタイプです。
- Status: Cluster の稼働状態で Ready/Stop/Unknown 値で表示されます。
- Health: Cluster の Health 状態で green/yellow/red 色で表示されます。
- CPU Request:Cluster内のDeployment GroupのCPU Request使用率の値。
- CPU Limit:Cluster内のDeployment GroupのCPU Limit使用率の値。
- Mem Request: Cluster 内の Deployment Group の Mem Request 使用率の値です。
- Mem Limit: Cluster の Deployment Group の Mem Limit 使用率の値です。
- Actions: 機能ボタンの集まりで、左から順に次のような機能を担当します。
Configuration: Cluster Configuration 設定
Delete: Cluster を削除
クラスタの追加
Clusterを追加するには、画面の左上隅にある[Add Cluster]ボタンをクリックします。クラスタの追加ポップアップ画面が開き、追加できるクラスタのリストが表示されます。

追加するクラスタのチェックボックスを選択し、[Add Cluster]ボタンをクリックします。クラスタの追加ポップアップ画面が閉じ、リストに追加したクラスタが表示されます。 Cluster が追加されると、Deployment Group の作成時に設定した namespace がその Cluster に自動的に作成されます。
Cluster Configurationの設定
Clusterの[Actions]項目内にある[Configuration]ボタンをクリックします。
Cluster Configurationポップアップ画面が開きます。 Configuration画面は、Resource Quota、Limit Range、Labelsタブで構成されています。既存に保存された設定がある場合は、検索が完了した状態でポップアップ画面が開きます。
ClusterのResource Quotaを設定します。
- Resource Quotaタブをクリックします。
- 設定する項目に値を入力し、画面下部の「保存」ボタンをクリックすると保存が完了します。
- 画面下部のDeleteボタンをクリックすると、設定したResource Quotaを削除できます。
ClusterのLimit Rangeを設定します。
- [Limit Range]タブをクリックします。
- 設定する項目に値を入力し、画面下部の「保存」ボタンをクリックすると保存が完了します。
- 画面下部のDeleteボタンをクリックすると、設定したLimit Rangeを削除できます。
Clusterのラベルを設定します。
- [ラベル]タブをクリックします。
- Labels 項目に値を入力し、画面下部の Save ボタンをクリックすると保存が完了します。
- 画面下部のDeleteボタンをクリックすると、設定したラベルを削除できます。
クラスタの削除
Deployment Group で、削除するクラスターの Actions 項目内の Delete ボタンをクリックします。実際のClusterが削除されるのではなく、Deployment Groupのメンバーから抜けてしまうのです。 Deployment Groupに追加されたときに作成されたNamespaceが削除され、その中に配布されたすべてのリソースが削除されますのでご注意ください。
リソースの追加/編集
Clusterに配布されるkubernetesリソース(Persistent Volume Claims、ConfigMaps、Secrets)を管理します。
画面上部の[リソース]タブをクリックします。リソース画面は次のように構成されています。
- (1)Deployボタンとcluster別リソースメニュー:Clustersタブに登録されたcluster名がメニュー形式で照会されます。各クラスタ名はサブメニューとしてPersistent Volume Claims、ConfigMaps、Secretsメニューを持ちます。
- (2) リソースの編集: Cluster でリソースを作成または編集します。
- (3)リソースリスト:Clusterに登録されているリソースのリストを照会します。
Persistent Volume Claimの設定
リソース画面の左側のメニューからクラスタを選択し、クラスタのサブメニューからPersistent Volume Claimsメニューを選択します。
Persistent Volume Claim(以下PVC)を生成できる画面と、クラスタに登録されているPVCのリストが照会されます。
PVC生成画面です。
各項目の正しい値を入力すると、保存ボタンが有効になります。保存ボタンをクリックするとPVCが作成され、画面下部のリストに自動的に追加されます。
リスト内の項目の説明です。
- Name: PVC 名です。
- Bound:kubernetesのPVCのステータス値。
- Volume: kubernetes の PVC の VolumeName 値。
- Capacity: Storage Size。
- アクセスモード:アクセスモードです。
- Storage Class: Storage Class 名です。
- Age:kubernetesのPVCのAge値。
- Status: CREATED/DEPLOYED/UPDATED/UNKNOWN のいずれかの値として表示されます。
- Actions: 機能ボタンのコレクションで削除機能をする Delete ボタンが存在します。
PVCリストのActions項目のDeleteボタンをクリックすると、そのPVCをクラスタから削除できます。追加または削除されたPVCはclusterにすぐには反映されず、Deploy機能によって反映されます。
ConfigMapの設定
リソース画面の左側のメニューからクラスタを選択し、クラスタのサブメニューからConfigMapsメニューを選択します。
ConfigMapを作成できる画面と、clusterに登録されているConfigMapのリストが表示されます。
ConfigMap 生成画面です。
各項目の正しい値を入力すると、保存ボタンが有効になります。 Save ボタンをクリックすると ConfigMap が作成され、画面下部のリストに自動的に追加されます。
リスト内の項目の説明です。
- Name: ConfigMap 名です。
- Data:ConfigMap内のDataの数。
- Age:kubernetesのConfigMapのAge値。
- Status: CREATED/DEPLOYED/UPDATED/UNKNOWN のいずれかの値として表示されます。
- Actions: 機能ボタンのコレクションで削除機能をする Delete ボタンが存在します。
ConfigMapリストでName項目をクリックすると、そのConfigMapの内容が入力画面に表示され、編集した内容はSaveボタンをクリックして保存できます。
ConfigMap リストで Actions 項目の Delete ボタンをクリックすると、その ConfigMap をクラスタから削除できます。追加または削除されたConfigMapはclusterにすぐには反映されず、Deploy機能によって反映されます。
Secret 設定
Resources画面の左側のメニューからclusterを選択し、clusterのサブメニューからSecretsメニューを選択します。
Secret を生成できる画面と、cluster に登録されている Secret のリストが照会されます。
Secret 生成画面です。
各項目の正しい値を入力すると、保存ボタンが有効になります。 Save ボタンをクリックすると Secret が生成され、画面下部のリストに自動的に追加されます。
リスト内の項目の説明です。
- Name: Secret 名です。
- Type: Secret の Type です。
- Data: Secret 内の Data の数です。
- Age: kubernetes の Secret の Age 値です。
- Status: CREATED/DEPLOYED/UPDATED/UNKNOWN のいずれかの値として表示されます。
- Actions: 機能ボタンのコレクションで削除機能をする Delete ボタンが存在します。
Secret リストで Name 項目をクリックすると、その Secret の内容が入力画面に照会され、編集した内容は Save ボタンをクリックして保存できます。
Secret リストで Actions 項目の Delete ボタンをクリックすると、その Secret を cluster から削除できます。追加または削除された秘密はクラスタにすぐには反映されず、デプロイ機能によって反映されます。
Resource Deploy
作成/編集/削除されたPersistant Volume Claims、ConfigMaps、Secretsリソースをクラスタに反映します。
Resources画面の左側のメニューからclusterを選択し、上部のDeployボタンをクリックします。
アプリケーションの追加/編集
Deployment Groupに含めるアプリケーションのリストを管理します。
画面上部の[アプリケーション]タブをクリックします。
リスト内の項目の説明です。
Name: Application 人です.
Description: Application 説明です.
Ref Pipelines: Deployment Groupに含まれているアプリケーションのパイプラインのリスト。
Source Repo.: Application の source リポジトリアドレスです。
Image Registry: アプリケーションのビルドイメージアドレス。
Last Build Status: Applicationの最後のビルド状態です。
Actions: 機能ボタンの集まりとして、左から順に次のような機能を担当します。
Detail: Application 編集
History: Application Deploy History 照会
Configuration: Application Configuration 設定
Deploy: Application Deploy
Delete: Application 削除
Application 追加
アプリケーションを追加するには、画面の左上隅にある[アプリケーションの追加]ボタンをクリックします。
アプリケーションの追加ポップアップ画面が表示されます。
- 画面上部の「Choose Application」項目で、追加するアプリケーションを選択します。
- 照会されたアプリケーションのパイプラインリストから追加するパイプラインのチェックボックスを選択し、Auto Deployかどうかを設定します。 Auto Deployが有効になると、そのパイプラインのビルドが成功するたびに自動的にデプロイが実行されます。
- 画面上部のYaml Generation Policyを選択します。 Yaml Generation PolicyがAlwaysの場合、展開を実行するたびにDeployment、Service yamlを完全に再生成し、Git serverに保存されているすべての値を上書きします。 Image Only に設定すると、Deployment yaml の最初のコンテナのイメージパスのみを変更して保存します。
- 画面上部の History Count で保持する配布履歴の数を指定します。
アプリケーションのパイプライン選択が完了したら、画面下部の[アプリケーションの追加]ボタンをクリックします。 「アプリケーションの追加」ポップアップ画面が閉じ、リストに追加したアプリケーションが表示されます。
アプリケーションの編集
登録されたアプリケーションのパイプラインを編集します。
ApplicationのActions項目のDetailボタンをクリックします。アプリケーション編集ポップアップ画面が開き、アプリケーションの詳細が表示されます。
画面の詳細については、アプリケーションの追加画面を参照してください。
アプリケーション構成の設定
アプリケーションの構成を設定します。
ApplicationのActions項目のConfigurationボタンをクリックすると、Configuration設定がポップアップ画面に表示されます。構成はクラスターごとに設定されているため、画面はクラスター固有のデプロイメント仕様とアドバンスト(ヘルスチェック、環境、ボリューム、 Tolerations、Affinities)設定で構成されています。既存に保存された設定がある場合は、検索が完了した状態でポップアップ画面が開きます。
ApplicationのDeployment Specを設定します。
画面上部のタブでクラスタを選択します。
Deployment Spec の画面で値を入力し、画面下部の Save ボタンをクリックすると保存が完了します。
ApplicationのAdvanced項目を設定します。以下はEnvironments項目の例です。
[Advanced]タブで、EnvironmentsまたはEnv Referencesを選択します。[Environments] タブでは、ConfigMap、Secret の値を環境変数として指定できます。
Env Referencesタブでは、ConfigMap、Secretを丸ごとenvFromに設定できます。
값을 입력하고 화면 하단의 Save 버튼을 클릭하면 저장이 완료됩니다.
Application Deploy
アプリケーションをクラスタにデプロイします。
ApplicationのActions項目のDeployボタンをクリックします。アプリケーションのビルド履歴がポップアップ画面として表示されます。
デプロイするパイプラインのビルド番号を選択し、画面下部のデプロイボタンをクリックします。
Deploy の結果は、Application Deploy History ルックアップ画面で確認できます。
デプロイするアプリケーションの構成が設定されていない場合は、次のエラーメッセージを出力します。
Application Deploy History 照会
アプリケーションのデプロイ履歴を照会します。
ApplicationのActionsエントリのHistoryボタンをクリックします。 Deploy History リストが画面の右側で開きます。
Application Deployment History Countで指定した数のDeploy Historyのリストを表示できます。
History画面のリストからDeploy Logボタンをクリックすると、clusterごとのデプロイ結果を照会できます。
アプリケーションの削除
Deployment Groupに含まれているアプリケーションを削除します。
ApplicationのActions項目のDeleteボタンをクリックします。このとき、Cluster に実際にデプロイされた Deployment, Service も同様に削除されます。
Ingressの設定
Clusterに展開するIngressを管理します。
画面上部の「Ingress」タブをクリックします。 Ingress 画面は次のように構成されています。
(1)Deployボタンとclusterリスト:Clustersタブに登録されたcluster名がリスト形式で照会されます。
(2) Ingress 編集: Cluster で Ingress を作成または編集します。
(3)Ingressリスト:Clusterに登録されているIngressのリストを照会します。
Ingressの設定
Ingress画面の左側のメニューからclusterを選択します。
Ingressを作成できる画面と、clusterに登録されているIngressのリストが表示されます。
Ingress 生成画面です。
各項目の正しい値を入力すると、保存ボタンが有効になります。 Save ボタンをクリックすると Ingress が生成され、画面下部のリストに自動的に追加されます。
リスト内の項目の説明です。
- Name: Secret 名です。
- Domain: Secret の Domain です。
- Tls Secret: Secret の Tls Secret です。
- Age:kubernetesのIngressのAge値。
- Status: CREATED/DEPLOYED/UPDATED/UNKNOWN のいずれかの値として表示されます。
- Actions: 機能ボタンのコレクションで削除機能をする Delete ボタンが存在します。
IngressリストでName項目をクリックすると、そのIngressの内容が入力画面に表示され、編集した内容はSaveボタンをクリックして保存できます。
Ingress リストで Actions 項目の Delete ボタンをクリックすると、その Ingress を cluster から削除できます。追加または削除されたIngressはclusterにすぐには反映されず、Deploy機能によって反映されます。
Ingress Deploy
作成/編集/削除されたIngressをclusterに反映します。
Resources画面の左側のメニューからclusterを選択し、上部のDeployボタンをクリックします。