初版: 2021年8月7日
2021/10/3,2022/2/2 新しい記事のリンクを追加、前提条件のアップデート
2021/1/7 ACC v21.12 に対応
はじめに
Astra Contro Centerは、オンプレミスでのK8sアプリケーションのデータのライフサイクルを管理するためのソリューションです。
ステートフルなワークロードのデータ保護、バックアップ、移行を容易にし、運用負荷を低減します。
本投稿は、Astra Controlのインストールについて記載しています。
関連投稿一覧
- NetApp Tridentとは
- NetApp Astra とは
- NetApp Astra Service を使ってみる ①GKE事前準備編
- NetApp Astra Service を使ってみる ②AKS事前準備編
- NetApp Astra Service を使ってみる ③Astra UI操作編
- NetApp Astra Control のインストール 【本投稿】
- NetApp Astra Control を使ってみる ①UIの操作編
- NetApp Astra Data Store とは
前提条件
ACCのインストールには、以下が必要となります。
ACCをデプロイする環境の必要要件
準備するもの | 詳細 |
---|---|
NetAppストレージ (ACCの管理データの保存先) |
|
ACCを展開するK8sクラスタ |
|
イメージ格納用のプライベートレジストリ | ACCのイメージをPushするためのプラベートイメージレジストリ |
(オプション) オブジェクトストレージ | AWS S3、AWS S3互換ストレージ、NetApp StorageGrid、OntapS3 など (互換ストレージは全ての機能に対応しない場合があります) |
ACCライセンス | こちらより入手(self-managed softwareの方を選択ください)、もしくは営業担当にお問い合わせください |
ACCで管理するK8sクラスタの必要要件
準備するもの | 詳細 |
---|---|
NetAppストレージ (アプリケーションのPVの保存先) |
ONTAP バージョン 9.5以上 ※ ONTAPストレージは、事前にNetApp Tridentにてバックエンドとして登録しておく必要があります ※ ONTAPストレージをバックエンドとしたデフォルトのStorageClassを作成しておく必要があります |
ACCに登録するK8sクラスタ |
|
ネットワーク・その他の要件
プロダクト | ポート | プロトコル | 方向 | 用途 |
---|---|---|---|---|
ACC | 443 | HTTPS | Ingress | UI/APIアクセス Port443が、ACCをホストしているクラスタと各管理対象クラスタの間で双方向に開いていることが必要 |
ACC | 9090 | HTTPS | Ingress (ACCをホストしているクラスターへ) Egress(各管理対象クラスタの各workerノードのノードIPアドレスからのランダムポート) |
メトリクスデータの送信 各管理対象クラスタがACCをホストしているクラスタの9090ポートにアクセスできることが必要 |
Trident | 34571 | HTTPS | Ingress | Node-Pod通信 |
Trident | 9220 | HTTP | Ingress | メトリクスエンドポイント |
ACCでは、デフォルトのストレージクラスを設定する必要があります。
ACCでは、Astra Tridentが提供する以下のドライバをサポートしています。
ドライバ | プロトコル |
---|---|
ontap-nas | NFS |
ontap-nas-flexgroup | NFS |
ontap-san | iSCSI |
ontap-san-economy | iSCSI |
セットアップ手順
以下にAstra Control Center をセットアップする流れを記載します。
Astra Control のイメージバンドルをダウンロード
NetAppのサポートサイトのダウンロードページ から「Astra」というキーワードで検索し、「Astra Control Center」のページに移動してソフトウェアをダウンロードします。
kubectlコマンドを実行する端末に、ダウンロードしたソフトウェアを解凍します。
$ tar -vxzf astra-control-center-[Astraのバージョン].tar.gz
$ cd astra-control-center-[Astraのバージョン]
ダウンロードしたイメージをローカルレジストリに格納
ダウンロードしたバンドルの中には、3つのCustom Resource Definition(CRD)のYAMLファイルとイメージが格納されています。
まずは、ダウンロードしたイメージをローカルのレジストリにPushします。
ここでは、ローカルレジストリのパスは、pregistry11.green.lab:5000 を使用しています。
$ export REGISTRY=pregistry11.green.lab:5000
$ sudo docker login $REGISTRY
for astraImageFile in $(ls images/*.tar) ; do
astraImage=$(sudo docker load --input ${astraImageFile} | sed 's/Loaded image: //')
sudo docker tag ${astraImage} ${REGISTRY}/${astraImage}
sudo docker push ${REGISTRY}/${astraImage}
done
$ sudo docker images
Pushしたイメージが表示されます
Astra Control Operator のインストール
Astra Control Center のインストールの前に、Astra Control Operatorと呼ばれるリソースを作成します。
Astra Control Operator 用のNameSpaceを作成
まずは、Astra Control Operator用のNameSpaceとSecretを作成します。
$ kubectl create ns netapp-acc-operator
namespace/netapp-acc-operator created
$ kubectl create secret docker-registry astra-registry-cred -n netapp-acc-operator --docker-server=pregistry11.green.lab:5000 --docker-username=[プライベートレジストリのログインユーザ名] --docker-password=[プライベートレジストリのログインパスワード]
secret/astra-registry-cred created
Astra Control Operator の設定ファイルの編集
astra_control_center_operator_deploy.yaml の以下の部分を編集します。
- spec.template.spec.container[kube-rbac-proxy].image の「ASTRA_IMAGE_REGISTRY」の値をローカルレジストリのパスに変更します。
[変更前]
image: ASTRA_IMAGE_REGISTRY/kube-rbac-proxy:v4.8.0
[サンプル]
image: pregistry11.green.lab:5000/kube-rbac-proxy:v4.8.0
- spec.template.spec.container[acc-operator].image の「ASTRA_IMAGE_REGISTRY」の値をローカルレジストリのパスに変更します。
[変更前]
image: ASTRA_IMAGE_REGISTRY/acc-operator:21.10.19
[サンプル]
image: pregistry11.green.lab:5000/acc-operator:21.10.19
- spec.imagePullSecretsの値を以下のサンプルのように「astra-registry-cred」に変更します。 (Secretを使用しない場合は削除)
[変更前]
imagePullSecrets: []
[変更後]
imagePullSecrets:
- name <ローカルレジストリ用のSecret名>
[サンプル]
imagePullSecrets:
- name "astra-registry-cred"
Astra Control Operator のインストール
Astra Control Operatorをインストールします。
$ kubectl apply -f astra_control_center_operator_deploy.yaml
namespace/netapp-acc-operator created
customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io created
role.rbac.authorization.k8s.io/acc-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role created
clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding created
configmap/acc-operator-manager-config created
service/acc-operator-controller-manager-metrics-service created
deployment.apps/acc-operator-controller-manager created
netapp-acc-operator namespaceに、Podが起動したのを確認します。
$ kubectl get pods -n netapp-acc-operator
NAME READY STATUS RESTARTS AGE
acc-operator-controller-manager-79449fb54-crd85 2/2 Running 0 3m33s
Astra Control Center のインストール
Astra Control Center 用のNameSpaceを作成
Astra Control Center用のNameSpaceとSecretを作成します。
$ kubectl create ns netapp-acc
namespace/netapp-acc created
[サンプル]
$ kubectl create secret docker-registry astra-registry-cred -n netapp-acc --docker-server=pregistry11.green.lab:5000 --docker-username=[プライベートレジストリのログインユーザ名] --docker-password=[プライベートレジストリのログインパスワード]
secret/astra-registry-cred created
Astra Control Center の設定ファイルの編集
astra_control_center_min.yaml の以下の部分を編集します。
- spec.astraVersion: Astraのバージョンを記入
- spec.astraAddress: Astra にアクセスするためにブラウザで使用するFQDNに変更
- spec.autoSupport: インターネットに接続されていないサイトの場合は、enrolled=falseに変更
- spec.email: 管理者のメールアドレスを入力
- spec.imageRegistry.name: イメージをプッシュしたレジストリのパスに変更
- spec.imageRegistry.secret: レジストリの認証情報を含むk8s secretに変更。(Secretを使用しない場合は削除)
[サンプル]
apiVersion: astra.netapp.io/v1
kind: AstraControlCenter
metadata:
name: astra
spec:
accountName: "Example"
astraVersion: "21.12.60"
astraAddress: "greenlab.astra.netapp.io"
autoSupport:
enrolled: true
email: "midorio@netapp.com"
firstName: "Midori"
lastName: "Oge"
imageRegistry:
name: "pregistry11.green.lab:5000"
secret: "astra-registry-cred"
Astra Control Center のインストール
Astra Control Centerをインストールします。
$ kubectl apply -f astra_control_center_min.yaml -n netapp-acc
astracontrolcenter.astra.netapp.io/astra created
STATUSが全てRunningとなったことを確認します。(10分程度かかります)
$ kubectl get pods -n netapp-acc
NAME READY STATUS RESTARTS AGE
NAME READY STATUS RESTARTS AGE
acc-helm-repo-7f5c474976-qdmxm 1/1 Running 0 11m
activity-7f858dcbcb-fj97n 1/1 Running 0 7m7s
api-token-authentication-fklsp 1/1 Running 0 7m38s
api-token-authentication-lmnfh 1/1 Running 0 7m38s
api-token-authentication-nlfgz 1/1 Running 0 7m38s
asup-6bc77bb6db-kgc8q 1/1 Running 0 7m23s
authentication-5c9dfb679d-zkwl6 1/1 Running 0 6m13s
bucketservice-68776ddd9b-28p58 1/1 Running 0 7m25s
cert-manager-6f6575d578-rg9mk 1/1 Running 0 63s
cert-manager-cainjector-f48957988-c95z7 1/1 Running 0 63s
cert-manager-webhook-c9867676-vztmd 1/1 Running 0 63s
cloud-extension-6444468547-xw44c 1/1 Running 0 7m9s
cloud-insights-service-785d59cbc7-gsczz 1/1 Running 2 7m35s
composite-compute-84b8444469-h7h86 1/1 Running 0 7m28s
composite-volume-fb99bcb97-smgmf 1/1 Running 0 7m13s
credentials-795ff94f95-nc4rt 1/1 Running 0 7m11s
entitlement-5848dc8cdc-4g8hq 1/1 Running 0 7m19s
features-847bd5859f-zlpc8 1/1 Running 0 7m33s
fluent-bit-ds-2dwmt 1/1 Running 0 5m52s
fluent-bit-ds-7hd9p 1/1 Running 0 5m52s
fluent-bit-ds-lc2cw 1/1 Running 0 5m52s
fluent-bit-ds-pjlb8 1/1 Running 0 5m52s
fluent-bit-ds-r8gjv 1/1 Running 0 5m52s
fluent-bit-ds-xqmdr 1/1 Running 0 5m52s
graphql-server-6bbbb9b549-55wx8 1/1 Running 0 5m45s
identity-7c8df44768-8wkw6 1/1 Running 0 7m15s
influxdb2-0 1/1 Running 0 10m
krakend-b7bd66976-2rjvt 1/1 Running 0 5m37s
license-779cb8bff7-p55nc 1/1 Running 0 7m1s
login-ui-577c49df76-965l8 1/1 Running 0 5m42s
loki-0 1/1 Running 0 10m
monitoring-operator-6f5c9bbd8-wtqdn 2/2 Running 0 6m5s
nats-0 1/1 Running 0 10m
nats-1 1/1 Running 0 10m
nats-2 1/1 Running 0 10m
nautilus-8cf5f8f49-5vv7n 1/1 Running 0 2m41s
nautilus-8cf5f8f49-6ztzb 1/1 Running 0 7m21s
openapi-766b95cb96-84c6z 1/1 Running 0 7m44s
polaris-consul-consul-25pc7 1/1 Running 0 10m
polaris-consul-consul-49bm5 1/1 Running 0 10m
polaris-consul-consul-js27g 1/1 Running 0 10m
polaris-consul-consul-server-0 1/1 Running 0 10m
polaris-consul-consul-server-1 1/1 Running 0 10m
polaris-consul-consul-server-2 1/1 Running 0 10m
polaris-mongodb-0 2/2 Running 0 10m
polaris-mongodb-1 2/2 Running 0 9m42s
polaris-mongodb-2 2/2 Running 0 8m55s
polaris-ui-84b54b87cc-2gr24 1/1 Running 0 5m31s
polaris-vault-0 1/1 Running 0 10m
polaris-vault-1 1/1 Running 0 10m
polaris-vault-2 1/1 Running 0 10m
public-metrics-775d95d754-chnrr 1/1 Running 1 7m46s
storage-backend-metrics-6d4b78bd85-cjddz 1/1 Running 0 7m3s
storage-provider-bdd5685c4-fpnr8 1/1 Running 0 7m42s
telegraf-ds-6zc76 1/1 Running 0 5m52s
telegraf-ds-7zb5z 1/1 Running 0 5m52s
telegraf-ds-fxdmq 1/1 Running 0 5m52s
telegraf-ds-gldj5 1/1 Running 0 5m52s
telegraf-ds-jx529 1/1 Running 0 5m52s
telegraf-ds-pd2wt 1/1 Running 0 5m52s
telegraf-rs-bvq44 1/1 Running 0 5m52s
telemetry-service-5c4d549c78-b2hbg 1/1 Running 0 7m17s
tenancy-5bc74bf9f5-k7n67 1/1 Running 0 7m40s
traefik-5d795d96cc-8qrxr 1/1 Running 0 109s
traefik-5d795d96cc-h55tw 1/1 Running 0 94s
trident-svc-7df87f9cf6-bx7x6 1/1 Running 0 7m30s
vault-controller-fc55bc469-md4wq 1/1 Running 0 7m57s
インストール完了確認
以下のコマンドでインストールのログを確認します。
$ kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
以下の「Successfully Reconciled AstraControlCenter」メッセージが出ていればインストールは完了しています。
{"level":"info","timestamp":"2022-01-07T05:03:59.550Z","logger":"acc.controllers.AstraControlCenterReconciler","msg":"Successfully Reconciled AstraControlCenter in 305.639µs","AstraControlCenter":"netapp-acc/astra","reconcileType":"NoOp"}
また以下を実行し、
$ kubectl get acc -o yaml -n netapp-acc
結果に、deploymentState: Deployed
の行が含まれていることを確認します。
インストールがうまくいかない場合は、以下のコマンドでACC Operatorのログを確認ください。
WebUI にログイン
インストールが完了したら、ブラウザで astra_control_center_min.yamlで指定したFQDN(「astraAddress」の値)にアクセスします。
ログインユーザ名は、astra_control_center_min.yamlで指定した「email」の値となります。
初期パスワードは、以下のコマンドで確認できます。UUIDの頭に「ACC-」をつけた値を入力してください。
$ kubectl get astracontrolcenters -n netapp-acc
NAME UUID
astra 1cfb739d-de93-441c-85b9-605a02fb670f
初期パスワードを変更する画面が表示されますので、要件に従って新しいパスワードを入力します。
ログインができましたので、次はこのUIを使ったAstra Control Centerの操作方法について記載しようと思います。
NetApp Astra Control を使ってみる ①UIの操作編 に続きます。