アプリの管理を開始します
お先にどうぞ "Kubernetes クラスタを Astra Control に追加"をクリックして、クラスターにアプリケーションをインストールし(Astra Controlの外部)、Astra Controlの[アプリケーション]ページに移動してアプリケーションを定義します。
実行中のポッドを使用してストレージリソースを含むアプリケーション、または実行中のポッドを使用しないストレージリソースを含むアプリケーションを定義および管理できます。ポッドが実行されていないアプリケーションは、データ専用アプリケーションと呼ばれます。
アプリケーション管理の要件
Astra Control には、次のアプリケーション管理要件があります。
-
ライセンス:10個を超えるネームスペースを管理するには、Astra Controlサブスクリプションが必要です。
-
名前空間:アプリケーションは、Astra Controlを使用して、単一クラスタ上の1つ以上の指定された名前空間内で定義できます。アプリケーションには、同じクラスタ内の複数のネームスペースにまたがるリソースを含めることができます。Astra Controlでは、複数のクラスタ間でアプリケーションを定義する機能はサポートされていません。
-
ストレージクラス:ストレージクラスを明示的に設定したアプリケーションをインストールし、アプリケーションのクローンを作成する必要がある場合、クローン処理のターゲットクラスタには、元 々 指定されたストレージクラスが必要です。ストレージクラスを明示的に設定したアプリケーションを、同じストレージクラスを含まないクラスタにクローニングすると、失敗します。
-
* Kubernetes リソース * : Astra Control で収集されない Kubernetes リソースを使用するアプリケーションには、アプリケーションデータの完全な管理機能がない可能性があります。Astra Control では、次の Kubernetes リソースが収集されます。
ClusterRole
ClusterRoleBinding
ConfigMap
CronJob
CustomResourceDefinition
CustomResource
DaemonSet
DeploymentConfig
HorizontalPodAutoscaler
Ingress
MutatingWebhook
NetworkPolicy
PersistentVolumeClaim
Pod
PodDisruptionBudget
PodTemplate
ReplicaSet
Role
RoleBinding
Route
Secret
Service
ServiceAccount
StatefulSet
ValidatingWebhook
サポートされているアプリインストール方法
Astra Control は、次のアプリケーションインストール方法をサポートしています。
-
* マニフェストファイル * : Astra Control は、 kubectl を使用してマニフェストファイルからインストールされたアプリケーションをサポートします。例:
kubectl apply -f myapp.yaml
-
* Helm 3 * : Helm を使用してアプリケーションをインストールする場合、 Astra Control には Helm バージョン 3 が必要です。Helm 3 (または Helm 2 から Helm 3 にアップグレード)を使用してインストールされたアプリケーションの管理とクローニングが完全にサポートされています。Helm 2 でインストールされたアプリケーションの管理はサポートされていません。
-
オペレータが導入したアプリケーション:Astra Controlは、ネームスペースを対象とした演算子を使用してインストールされたアプリケーションをサポートしています。一般的には、「パスバイリファレンス」アーキテクチャではなく「パスバイバリュー」アーキテクチャで設計されています。インストールする演算子とアプリケーションは、同じ名前空間を使用する必要があります。このような名前空間を使用するには、演算子の deployment.yaml ファイルを変更する必要があります。
これらのパターンに続くいくつかのオペレータアプリを次に示します。
-
K8ssandra では、 In Place リストア処理がサポートされます。新しいネームスペースまたはクラスタにリストアするには、アプリケーションの元のインスタンスを停止する必要があります。これは、ピアグループ情報がインスタンス間通信を行わないようにするためです。アプリケーションのクローニングはサポートされていません。
Astra Controlでは、「パスバイリファレンス」アーキテクチャ(CockroachDBオペレータなど)で設計されたオペレータをクローニングできない場合があります。クローニング処理では、クローニング処理の一環として独自の新しいシークレットが存在する場合でも、クローニングされたオペレータがソースオペレータから Kubernetes シークレットを参照しようとします。Astra Control がソースオペレータの Kubernetes シークレットを認識しないため、クローニング処理が失敗する場合があります。
-
クラスタにアプリをインストールします
お先にどうぞ "クラスタが追加されました" Astra Controlを使用すると、アプリケーションをインストールしたり、クラスタ上の既存のアプリケーションを管理したりできます。1つ以上の名前空間にスコープされているすべてのアプリケーションを管理できます。
Astra Controlは、Astra Controlでサポートされているストレージクラス上にストレージがある場合にのみ、ステートフルアプリケーションを管理する。Astra Control Serviceは、Astra Control Provisionerまたは汎用CSIドライバでサポートされるすべてのストレージクラスをサポートします。
アプリケーションを定義します
Astra Controlがクラスタ上のネームスペースを検出したら、管理するアプリケーションを定義できます。を選択できます 1つ以上のネームスペースにまたがるアプリケーションを管理します または ネームスペース全体を単一のアプリケーションとして管理。データ保護処理に必要な精度のレベルが重要になります。
Astra Controlを使用すると、階層の両方のレベル(ネームスペースとそのネームスペースまたはスパニングネームスペース内のアプリケーション)を別 々 に管理できますが、いずれか一方を選択することを推奨します。Astra Control で実行したアクションは、ネームスペースレベルとアプリケーションレベルの両方で同時に実行される場合、失敗する可能性があります。
たとえば、「Maria」に対して、毎週同じ頻度でバックアップを作成するように設定することもできますが、同じネームスペースにある「MariaDB」をバックアップする頻度を高く設定する必要があるとします。これらのニーズに基づいて、アプリケーションを個別に管理する必要があります。また、シングルネームスペースアプリケーションとして管理する必要はありません。 |
-
KubernetesクラスタをAstra Controlに追加。
-
クラスタにインストールされているアプリケーションが1つ以上あります。 サポートされているアプリケーションのインストール方法については、こちらをご覧ください。
-
Astra Controlに追加したKubernetesクラスタ上の既存のネームスペース。
-
(オプション)すべてのにKubernetesラベルを付けます "サポートされるKubernetesリソース"。
ラベルは、 Kubernetes オブジェクトに割り当てて識別できるキーと値のペアです。ラベルを使用すると、 Kubernetes オブジェクトのソート、整理、検索が簡単になります。Kubernetes のラベルの詳細については、 "Kubernetesの公式ドキュメントを参照してください"。
-
開始する前に、を理解しておく必要があります "標準ネームスペースとシステムネームスペースの管理"。
-
Astra Controlのアプリケーションで複数の名前空間を使用する場合は、を検討してください "ネームスペースの制約を持つユーザロールの変更" アプリケーションを定義する前に。
-
Astra Control APIを使用してアプリケーションを管理する方法については、を参照してください "Astra の自動化と API に関する情報"。
アプリケーションとして管理するリソースを定義します
を指定できます "アプリケーションを構成するKubernetesリソース" Astra Controlで管理したい。アプリケーションを定義すると、Kubernetesクラスタの要素を1つのアプリケーションにグループ化できます。このKubernetesリソースの集まりは、ネームスペースとラベル選択条件によって分類されます。
アプリケーションを定義することで、クローン、スナップショット、バックアップなどのAstra Control操作に含めるものをより細かく制御できます。
アプリケーションを定義するときは、保護ポリシーを使用して複数のアプリケーションにKubernetesリソースを含めないようにしてください。Kubernetesリソース上の保護ポリシーが重複していると、原因 のデータが競合する可能性があります。 |
アプリケーションネームスペースへのクラスタを対象としたリソースの追加の詳細については、こちらをご覧ください。
ネームスペースリソースに関連付けられているクラスタリソースを、自動的に含まれるアストラコントロールに加えてインポートできます。特定のグループ、種類、バージョンのリソースを含むルールを追加し、必要に応じてラベルを付けることができます。この処理は、Astra Controlに自動的に含まれないリソースがある場合などに実行します。
Astra Controlに自動的に含まれる、クラスタを対象としたリソースを除外することはできません。
以下を追加できます apiVersions
(APIバージョンと組み合わせたグループ)。
リソースの種類 | 1回あたりのバージョン(グループ+バージョン) |
---|---|
|
rbac.authorization.k8s.io/v1 |
|
rbac.authorization.k8s.io/v1 |
|
apiextensions.k8s.io/v1、apiextensions.k8s.io/v1beta1 |
|
apiextensions.k8s.io/v1、apiextensions.k8s.io/v1beta1 |
|
admissionregistration.k8s.io/v1 |
|
admissionregistration.k8s.io/v1 |
-
[アプリケーション(Applications)]ページで、[定義( Define)]を選択します
-
[アプリケーションの定義(* Define application)]ウィンドウで、アプリケーション名を入力します。
-
[Cluster]ドロップダウン・リストから、アプリケーションが実行されているクラスタを選択します。
-
「名前空間」ドロップダウンリストからアプリケーションの名前空間を選択します。
アプリケーションは、Astra Controlを使用して、単一クラスタ上の1つ以上の指定された名前空間内で定義できます。アプリケーションには、同じクラスタ内の複数のネームスペースにまたがるリソースを含めることができます。Astra Controlでは、複数のクラスタ間でアプリケーションを定義する機能はサポートされていません。 -
(オプション)各ネームスペースにKubernetesリソースのラベルを入力します。ラベルまたはラベルの選択基準(クエリー)を1つ指定できます。
Kubernetes のラベルの詳細については、 "Kubernetesの公式ドキュメントを参照してください"。 -
(オプション)「名前空間の追加」を選択し、ドロップダウンリストから名前空間を選択して、アプリケーションの名前空間を追加します。
-
(オプション)追加するネームスペースのラベルまたはラベルの選択基準を1つ入力します。
-
(オプション)Astra Controlに自動的に含まれるリソースに加えて、クラスタを対象としたリソースを含めるには、*クラスタを対象とした追加のリソースを含める*をチェックし、次の手順を実行します。
-
「含めるルールを追加」を選択します。
-
グループ:ドロップダウンリストから、リソースのAPIグループを選択します。
-
*kind *:ドロップダウンリストから'オブジェクトスキーマの名前を選択します
-
バージョン:APIのバージョンを入力します。
-
ラベルセレクタ:必要に応じて、ルールに追加するラベルを指定します。このラベルは、このラベルに一致するリソースのみを取得するために使用します。ラベルを指定しないと、Astra Controlは、そのクラスタに指定されている種類のリソースのすべてのインスタンスを収集します。
-
エントリに基づいて作成されたルールを確認します。
-
「 * 追加」を選択します。
クラスタを対象としたリソースルールは必要な数だけ作成できます。[アプリケーションの定義の概要]にルールが表示されます。
-
-
[ * 定義( Define ) ] を選択します
-
[定義(Define *)]を選択した後、必要に応じて他のアプリケーションについても同じ手順を繰り返します。
アプリケーションの定義が完了すると、アプリケーションがに表示されます Healthy
「アプリケーション」ページのアプリケーションのリストに表示されます。クローンを作成し、バックアップとスナップショットを作成できるようになりました。
追加したアプリケーションの保護列に警告アイコンが表示されている場合は、バックアップされておらず、まだバックアップのスケジュールが設定されていないことを示しています。 |
特定のアプリケーションの詳細を表示するには、アプリケーション名を選択します。 |
このアプリに追加されたリソースを表示するには、*リソース*タブを選択します。Resource列でリソース名のあとの番号を選択するか、Searchでリソース名を入力して、追加のクラスタを対象としたリソースを確認します。
アプリケーションとして管理するネームスペースを定義します
ネームスペースのリソースをアプリケーションとして定義することで、ネームスペース内のすべてのKubernetesリソースをAstra Control管理に追加できます。この方法は、アプリケーションを個別に定義するよりも望ましい方法です "特定のネームスペース内のすべてのリソースを管理および保護することを意図しています" 同様の方法で、共通の間隔で実行します。
-
クラスタページで、クラスタを選択します。
-
[名前空間]タブを選択します。
-
管理するアプリケーションリソースを含む名前空間のアクションメニューを選択し、*アプリケーションとして定義*を選択します。
複数のアプリケーションを定義する場合は、名前空間リストから選択し、左上隅の*アクション*ボタンを選択して、*アプリケーションとして定義*を選択します。これにより、個 々 のネームスペースに複数のアプリケーションが定義されます。マルチネームスペースアプリケーションについては、を参照してください アプリケーションとして管理するリソースを定義します。 [システムネームスペースを表示(Show system Namespaces)]チェックボックスを選択して、アプリケーション管理で通常はデフォルトで使用されないシステムネームスペースを表示します。 "詳細はこちら"。
プロセスが完了すると'名前空間に関連付けられているアプリケーションが[関連アプリケーション]列に表示されます
[テクニカルプレビュー] Kubernetesのカスタムリソースを使用したアプリケーションの定義
カスタムリソース(CR)を使用してアプリケーションとして定義することで、Astra Controlで管理するKubernetesリソースを指定できます。たとえば、特定のネームスペース内のすべてのリソースを同様の方法で共通の間隔で管理および保護する場合は、それらのリソースを個別に管理するか、またはネームスペース内のすべてのKubernetesリソースを個別に管理する場合は、クラスタ対象のリソースを追加できます。
-
カスタムリソース(CR)ファイルを作成し、という名前を付けます(例:
astra_mysql_app.yaml
)。 -
アプリケーションに名前を付けます。
metadata.name
。 -
管理するアプリケーションリソースを定義します。
spec.includedClusterScopedResourcesAstra Controlに自動的に含まれるもののほかに、クラスタを対象としたリソースタイプも含めます。
-
* spec.includedClusterScopedResources*:_(オプション)_含めるクラスタスコープのリソースタイプのリスト。
-
*groupVersionKind *:_(オプション)_unambiguouslyは種類を識別します。
-
group:_(groupVersionKindが使用されている場合は必須)含めるリソースのAPIグループ。
-
version:_(groupVersionKindが使用されている場合は必須)_含めるリソースのAPIバージョン。
-
kind:_(groupVersionKindを使用する場合は必須)_kind含めるリソースの種類。
-
-
*labelSelector *:_(オプション)_リソースセットのラベルクエリ。ラベルに一致するリソースのみを取得するために使用されます。ラベルを指定しないと、Astra Controlは、そのクラスタに指定されている種類のリソースのすべてのインスタンスを収集します。matchLabelsとmatchExpressionsの結果はANDで処理されます。
-
matchLabels:_(省略可能)_{key, value}ペアのマップ。matchLabelsマップ内の1つの{key, value}は、keyフィールドが"key"、演算子が"in"、value"のみを含むvalues配列を持つmatchExpressionsの要素に相当します。要件はANDで処理されます。
-
matchExpressions:_(オプション)_ラベルセレクタの要件のリスト。要件はANDで処理されます。
-
*key *:_(matchExpressionsを使用する場合は必須)_ラベルセレクタに関連付けられたラベルキー。
-
演算子:_(matchExpressionsが使用されている場合は必須)_値のセットに対するキーの関係を表します。有効な演算子:
In
、NotIn
、Exists
およびDoesNotExist
。 -
* values *:_(matchExpressionsを使用する場合は必須)_文字列値の配列。演算子が
In
またはNotIn
、values配列must_not_be empty。演算子がExists
または `DoesNotExist`values配列は空である必要があります。
-
-
-
spec.includedNamespacesアプリケーション内のこれらのリソースに名前空間とリソースを含めます。
-
* spec.includedNamespaces*:_(必須)_リソース選択のための名前空間とオプションのフィルタを定義します。
-
ネームスペース:(必須) Astra Controlで管理するアプリケーションリソースを含むネームスペース。
-
*labelSelector *:_(オプション)_リソースセットのラベルクエリ。ラベルに一致するリソースのみを取得するために使用されます。ラベルを指定しないと、Astra Controlは、そのクラスタに指定されている種類のリソースのすべてのインスタンスを収集します。matchLabelsとmatchExpressionsの結果はANDで処理されます。
-
matchLabels:_(省略可能)_{key, value}ペアのマップ。matchLabelsマップ内の1つの{key, value}は、keyフィールドが"key"、演算子が"in"、value"のみを含むvalues配列を持つmatchExpressionsの要素に相当します。要件はANDで処理されます。
-
matchExpressions:_(オプション)_ラベルセレクタの要件のリスト。
key
およびoperator
は必須です。要件はANDで処理されます。-
*key *:_(matchExpressionsを使用する場合は必須)_ラベルセレクタに関連付けられたラベルキー。
-
演算子:_(matchExpressionsが使用されている場合は必須)_値のセットに対するキーの関係を表します。有効な演算子:
In
、NotIn
、Exists
およびDoesNotExist
。 -
* values *:_(matchExpressionsを使用する場合は必須)_文字列値の配列。演算子が
In
またはNotIn
、values配列must_not_be empty。演算子がExists
または `DoesNotExist`values配列は空である必要があります。
-
-
-
YAMLの例:
apiVersion: astra.netapp.io/v1 kind: Application metadata: name: astra_mysql_app spec: includedNamespaces: - namespace: astra_mysql_app labelSelector: matchLabels: app: nginx env: production matchExpressions: - key: tier operator: In values: - frontend - backend
-
-
データを入力した後、
astra_mysql_app.yaml
正しい値を持つファイルを作成し、CRを適用します。kubectl apply -f astra_mysql_app.yaml -n astra-connector
システムネームスペースについて教えてください。
Astra Controlは、Kubernetesクラスタ上のシステムネームスペースも検出します。これらのシステムネームスペースはデフォルトでは表示されません。システムアプリケーションリソースのバックアップが必要になることがまれです。
選択したクラスタの[ネームスペース]タブからシステムネームスペースを表示するには、[システムネームスペースを表示]チェックボックスをオンにします。
Astra Control 自体は標準のアプリケーションではなく、「システムアプリケーション」です。 Astra Control 自体は管理しないでください。Astra Control 自体は、管理用にデフォルトでは表示されません。 |