AWS上でのマネージド OpenShift サービス ROSA (ろさ) の提供開始 / 使い方

こんにちは、OpenShift を担当しています、花田です。

2021/3/31 より、Red Hat 版の Kubernetes である OpenShift のマネージドサービスである ROSA (ろさ/ろーさ:Red Hat OpenShift Service on AWS ) の提供が、AWS上で開始されています。

OpenShiftは、オンプレのベアメタルサーバーの上でも、VMware の上でも OpenStack の上でも RHV(Red Hat Virtualization)の上でも、AWSの上でも、Azure の上でも、GCPの上でもテスト済みなので、場所を選ばず、どこでも同じ知識で運用を回す事ができるというのが大きな特徴です。

もともとOSD(OpenShift Dedicated) という AWS / GCP上で提供するOpenShiftのマネージドサービスが存在しています。OSDも引き続きサービスを提供していますが、契約は AWSRed Hat の両方と行う必要がありました。

ROSAは、AWSのサービスとして、AWSコンソールからの作業だけで契約が完了するため、マネージドサービスとしての敷居がぐっと下がった形になります。(細かい違いはあるのですが、ここではとりあえず置いておきます)

ROSAマニュアルはこちらに公開されていますが、これを読んでいくのは細かくて大変なので、今回はざっくりと使い方を見て行きたいと思います。

1. AWS 周りの準備

AWS の CLI環境を準備する

もしまだ AWS の CLI を使える環境を整えてない場合は、次の手順に従ってAWSCLIコマンドをセットアップします。 AWS CLI バージョン 2 のインストール、更新、アンインストール

AWSコンソール上で ROSAを有効にする

AWS のコンソールにログインして、画面上の検索ボックスで「ROSA」を検索すると以下のような画面が出てくるので、クリックして有効にします。 この作業は最初の一回だけ必要です。

f:id:yuhki-hatenua:20210607113700p:plain
ROSA有効化画面
以上で、AWS周りのセットアップは完了です。30秒程度で以下のように画面が変化するはずです。

f:id:yuhki-hatenua:20210607114010p:plain
有効化の完了
CLI で操作できるように rosa というコマンドが用意されています。実行ファイル一つです。 ダウンロードしてパスを通しておきます。(後ほど、手順のまとまり具合的な観点で、もう一回同じダウンロード手順が出てきますがここでダウンロードした人は無視して下さい。)

AWSサービスの Quota を確認する

また素のAWSのアカウントの場合は、リソースの Quota の上限に引っかかってクラスターが作れないかもしれません。 もしクラスターの作成が上手くいかない場合は、マニュアルの「Required AWS service quotas」の項目に書いてある必要なリソース量を確認し、上限を上げて下さい。

私の環境の場合は、EBSがマニュアル上は、最小300必要となっているのですが、50が 設定されてました。

f:id:yuhki-hatenua:20210718112341p:plain
AWS の Quota 画面

ここでは、クォータの引き上げをリクエストをクリックして、上限を300にするリクエストをします。 f:id:yuhki-hatenua:20210718112248p:plain

リクエストの処理状況も AWS コンソールから確認できます。

f:id:yuhki-hatenua:20210718113719p:plain
Quota リクエストの状態

自分の使っている会社のアカウントのサービス契約形態がわかってないのですが、処理が終わるまで平日で1~2時間、日曜で 6時間くらいかかりました。

2. RedHat 周りの準備

契約面では、AWS上のコンソールで全て完結するのですが、OpenShift のサブスクリプション管理の観点で Red Hat のクラウドサービスにもアカウントを作る必用があります。 アカウントを作るのは完全に無料で、後から何かが請求されたりクレジットカードを登録するなどの必要もありません。

cloud.redhat.comからユーザーアカウントを作成します。

この cloud.redhat.com は、OpenShift 以外にも Red Hat 製品のサブスクリプションの管理(だけではないのですが)を管理できるクラウドサービスになっています。

後で ROSA クラスターを作成する時に、このサイト経由で発行される API token が必要になります。 この API token が無いとインストールのためのモジュールをダウンロードする事もできませんし、当然、その後のアップデートも受ける事もできません。

とりあえずは、ユーザーを作って、cloud.redhat.comに、ログインできる事が確認できればOKです。

cloud.redhat.com へのログインは、この後の手順で出てくるtokenを取得以降は必要ありません。(が、このcloud.redhat.com 上でホストされている、OCM (OpenShift Cluster Manager) という管理ツールは運用において、いろいろと便利に使う事ができます。こちらの記事「マネージド OpenShift サービス ROSA(ろさ) の構成を覗いてみる」のROSA クラスターの管理 (OCM : OpenShift Cluster Manager)もご参照下さい)

3. CLI 周りの準備

ROSAでは、2種類のコマンド・ライン・ツールを使用します。一つはrosaコマンドと、もう一つはocコマンドです。

rosa のコマンドのダウンロードと初期化

ROSA CLI Downloads | Red Hat OpenShift Service on AWSより、rosa コマンドをダウンロードしてパスを通しておきます。 バイナリー一個の単純なものです。AWSCLIがセットアップされた環境で動作するように作られているので AWSCLIを事前にセットアップしておく必要があります。

rosa version でコマンドがセットアップできてる事を確認します。

$ rosa version
1.0.9
$ 
AWS の quota 条件を満たしているか rosa verify quota で確認する

AWS では、各サービス毎にサービスクォータと呼ばれる使う事ができるリソースの上限が設定されています。 マニュアルの「Required AWS service quotas」の項目に、ROSAを実行するためのサービスクォーターについてかかれていますが、rosaコマンドを導入した後は、rosa verify quota コマンドでこの条件が満たされているか確認できます。

以下は EBSQuotaに引っかかっている例です。

$ rosa verify quota --region=ap-northeast-1
I: Validating AWS quota...
E: Insufficient AWS quotas
E: Service ebs quota code L-D18FCD1D General Purpose SSD (gp2) volume storage not valid, expected quota of at least 300, but got 50
$ 

もし、Quota上限にひっかかっている場合は、1. AWS 周りの準備AWSサービスの Quota を確認する に戻って、AWSのQuota設定の上限を上げる申請をしてください。 このブログでは最低限の記述にとどめていますが、他にも AWSの必要な権限が設定されているか確認できる rosa verify permissions 等のコマンドがあります。詳しく知りたい方はマニュアルのこの辺りを卸参照下さい。

rosa init を実行する
$ rosa init

と実行すると

$ rosa init 
To login to your Red Hat account, get an offline access token at https://cloud.redhat.com/openshift/token/rosa
? Copy the token and paste it here

と出てくるはずです。 上記のメッセージの中に出てくる https://cloud.redhat.com/openshift/token/rosa の部分をクリックして API token を取りに行きます。 ここで手順の2番目で作成した、Home - cloud.redhat.com のアカウントが必要になります。

Terms & Condition 等の画面がでてきますが、

f:id:yuhki-hatenua:20210607140656p:plain
Terms and Conditions

最終的に以下の画面にたどり着きます。ここに見えている文字列 (token) をコピーして CLI に貼り付けます。

f:id:yuhki-hatenua:20210607140853p:plain
token 画面

token を貼り付けて enter を押すと、初期化が終わります。

$ rosa init 
To login to your Red Hat account, get an offline access token at https://cloud.redhat.com/openshift/token/rosa
? Copy the token and paste it here: ****************************************************************************************************
*****************************************************************************************************************************************
*****************************************************************************************************************************************
*****************************************************************************************************************************************
*****************************************************************************************************************************************
<略>
Run `rosa download oc`  to downlaod the latest version, then add it to your PATH
$

この時点で AWS上に osdCcsAdmin という IAM ユーザーが作成されているはずです。

oc コマンドのダウンロードと解凍

rosa init の最後の出力に rosa downlad oc を実行して oc コマンドをダウンロードしなさい。とあるのでダウンロードします。 oc コマンドは kubectl を拡張した OpenShift のコマンドです。kubectl と同じように使える + α の機能が使えるようになります。

$ rosa download oc
$ tar -xzf openshift-client-linux.tar.gz 

パスは適当に通しておきます。

ocコマンドはkubectlの拡張コマンドです。クラスターにアクセスするコマンドで、クラスターができてないこの時点では使えませんので、パスが通っている事だけ確認できたら次に進みます。

4. ROSA クラスターの作成

いよいよ ROSA クラスターの作成に入ります。ここでは rosa-cluster という名前を付けますが、この部分は好みに応じて置き換えて下さい。

Worker Node 2本の最小構成のクラスターを作成する場合

(Master Nodeを含め、全てが単一AZに作成されます)

f:id:yuhki-hatenua:20210610103229p:plain
Single AZ 最小構成

$ rosa create cluster --cluster-name  rosa-cluster

※ このコマンド例では、Master/Infra/Worker = 3 x m5.xlarge / 2 x r5.xlarge /2 x m5.xlargeEC2 構成でクラスターが作成されます。

Worker Node 3本の Multi AZ構成 のクラスターを作成する場合

( --multi-az を指定。Master NodeInfra Node も3つの AZに分散されて配置されます)

f:id:yuhki-hatenua:20210610103255p:plain
Multi AZ 最小構成

$ rosa create cluster --cluster-name rosa-cluster --multi-az

※ このコマンド例では、Master/Infra/Worker = 3 x m5.xlarge / 3 x r5.xlarge /3 x m5.xlarge の EC2 構成でクラスターが作成されます。

クラスターの作成完了待ち

クラスター作成完了までは、40分ほど時間がかかります。完了を Watch するには、以下のコマンドでログを確認する事ができます。

$ rosa logs install --cluster=rosa-cluster  --watch

完了のメッセージ

time="2021-05-24T05:46:58Z" level=debug msg="               API: 1s"
time="2021-05-24T05:46:58Z" level=debug msg=" Bootstrap Destroy: 1m32s"
time="2021-05-24T05:46:58Z" level=debug msg=" Cluster Operators: 17m12s"
time="2021-05-24T05:46:58Z" level=debug msg="           Console: 1s"
time="2021-05-24T05:46:58Z" level=info msg="Time elapsed: 37m38s"
I: Cluster 'rosa-cluster' is now ready
time="2021-05-24T05:46:59Z" level=info msg="command completed successfully" installID=g7qz882d
time="2021-05-24T05:46:59Z" level=info msg="saving installer output" installID=g7qz882d
time="2021-05-24T05:46:59Z" level=debug msg="installer console log: level=info msg=Credentials loaded from default AWS environment variables\nlevel=info msg=Consuming Install Config from target directory\nlevel=info msg=Manifests created in: manifests and openshift\nlevel=warning msg=Found override for release image. Please be warned, this is not advised\nlevel=info msg=Consuming Openshift Manifests from target directory\nlevel=info msg=Consuming Worker Machines from target directory\nlevel=info msg=Consuming OpenShift Install (Manifests) from target directory\nlevel=info msg=Consuming Master Machines from target directory\nlevel=info msg=Consuming Common Manifests from target directory\nlevel=info msg=Ignition-Configs created in: . and auth\nlevel=info msg=Consuming Bootstrap Ignition Config from target directory\nlevel=info msg=Consuming Worker Ignition Config from target directory\nlevel=info msg=Consuming Master Ignition Config from target directory\nlevel=info msg=Credentials loaded from default AWS environment variables\nlevel=info msg=Creating infrastructure resources...\nlevel=info msg=Waiting up to 20m0s for the Kubernetes API at https://api.rosa-cluster.3fof.p1.openshiftapps.com:6443...\nlevel=info msg=API v1.20.0+75370d3 up\nlevel=info msg=Waiting up to 30m0s for bootstrapping to complete...\nlevel=info msg=Destroying the bootstrap resources...\nlevel=info msg=Waiting up to 40m0s for the cluster at https://api.rosa-cluster.3fof.p1.openshiftapps.com:6443 to initialize...\nlevel=info msg=Waiting up to 10m0s for the openshift-console route to be created...\nlevel=info msg=Install complete!\nlevel=info msg=To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/output/auth/kubeconfig'\nlevel=info msg=Access the OpenShift web-console here: https://console-openshift-console.apps.rosa-cluster.3fof.p1.openshiftapps.com\nREDACTED LINE OF OUTPUT\nlevel=info msg=Time elapsed: 37m38s\n" installID=g7qz882d
time="2021-05-24T05:46:59Z" level=info msg="install completed successfully" installID=g7qz882d
vscode ➜ /workspaces/rosa $ ./rosa logs install --cluster=rosa-cluster  --watch

念のため状態を確認したい場合は、以下のような状態と構成の確認コマンドもあります。

$ rosa describe cluster   --cluster=rosa-cluster
管理ユーザーの作成

クラスターができたら、以下のコマンドで管理ユーザー(cluster-admin) を作成してみます。

$ rosa create admin --cluster=rosa-cluster
W: It is recommended to add an identity provider to login to this cluster. See 'rosa create idp --help' for more information.
I: Admin account has been added to cluster 'rosa-cluster'.
I: Please securely store this generated password. If you lose this password you can delete and recreate the cluster admin user.
I: To login, run the following command:

   oc login https://api.rosa-cluster.3fof.p1.openshiftapps.com:6443 --username cluster-admin --password amya9-7pass8-sS9HF-DDQdeg

I: It may take up to a minute for the account to become active.

コマンド出力にログイン用のURLや、 cluster-admin のパスワードが表示されているので、メモしておきます。

本番環境では作法としてよろしくないのですが、私は実験用の環境しか作成しないので、コピペしてローカルにテキストで保管してしまっています。

echo "oc login https://api.rosa-cluster.3ogw.p1.openshiftapps.com:6443 --username cluster-admin --passwordamya9-7pass8-sS9HF-DDQdeg" > login-memo.txt
ログイン

管理ユーザーを作成した時に出力された管理ユーザー名 (cluster-admin) とパスワードが表示されるので、それでログインしてみます。(管理ユーザーを作った直後だと Login failed (401 Unauthorized) が出る事があります。その場合は少し待ってみましょう)

$ oc login https://api.rosa-cluster.3fof.p1.openshiftapps.com:6443 --username cluster-admin --password aqja9-7atm8-sS9HF-QeSBB

oc get nodes コマンドで、作成されている node を確認します。ここでは、--multi-az オプションを付けてクラスターを作成したので Worker Nodeが3本あります。

$ oc get nodes
NAME                                              STATUS   ROLES          AGE     VERSION
ip-10-0-132-255.ap-northeast-1.compute.internal   Ready    worker         6h36m   v1.20.0+75370d3
ip-10-0-136-188.ap-northeast-1.compute.internal   Ready    infra,worker   6h17m   v1.20.0+75370d3
ip-10-0-158-164.ap-northeast-1.compute.internal   Ready    master         6h47m   v1.20.0+75370d3
ip-10-0-165-17.ap-northeast-1.compute.internal    Ready    master         6h47m   v1.20.0+75370d3
ip-10-0-171-207.ap-northeast-1.compute.internal   Ready    infra,worker   6h17m   v1.20.0+75370d3
ip-10-0-181-41.ap-northeast-1.compute.internal    Ready    worker         6h39m   v1.20.0+75370d3
ip-10-0-200-141.ap-northeast-1.compute.internal   Ready    infra,worker   6h16m   v1.20.0+75370d3
ip-10-0-206-1.ap-northeast-1.compute.internal     Ready    worker         6h37m   v1.20.0+75370d3
ip-10-0-222-207.ap-northeast-1.compute.internal   Ready    master         6h47m   v1.20.0+75370d3

Multi AZ 構成では、Master Node 3本、Infra Node 3本、Worker Node 3本が作成されている事がわかります。 Master NodeInfra Node は、Red Hat 社が Managed として管理します。

Infra Nodeとは、OpenShift独自の概念で、ものはWorker Nodeと同じものです。実際の運用管理環境では、Monitoring や Log 収集などを統合的に行うアプリ(コンテナ)が必要で、OpenShiftでは運用管理用のコンテナを、ユーザーワークロードと分割して配置するために、Worker NodeInfra Nodeと分かるラベルを付けて、そこに配置する形で別途管理しています。いづれにしてもROSAでは、Red Hatがマネージする対象のNodeなのでユーザーが気にする必要はありません。

ログアウト

ログアウトは以下の通りです。

$ oc logout 

5. Worker Node の追加 (Machineset と Machinepool)

ROSA では、Machiepool という概念が導入されています。Machinepoolは、同じインスタンス・タイプをグループ化した概念です。

ROSAWorker Nodeを増やすには、Machinepool内のWorker Node を追加する。という形を取ります。

既存の Worker Nodeと同じインスタンスタイプを増やしたい場合は、既存 (Default) の Machinepool 内の replica の数を増やします。この DefaultMachinepool は、初期の本数以下にしたり消す事はできませんが、増やす事は可能です。

別のインスタンスタイプを追加したい場合は、新しいMachiepoolを追加します。

一方で、OpenShift に詳しい方であれば、OpenShift では、Machinesetというインスタンスのグループ化の概念があるのをご存じだと思います。

これらはどう違うのか確認してみます。

Machineset の確認

ますは、MachineSet を確認してみます。

 $ oc get machineset -A
NAMESPACE               NAME                                        DESIRED   CURRENT   READY   AVAILABLE   AGE
openshift-machine-api   rosa-cluster-wchgs-infra-ap-northeast-1a    1         1         1       1           6h24m
openshift-machine-api   rosa-cluster-wchgs-infra-ap-northeast-1c    1         1         1       1           6h24m
openshift-machine-api   rosa-cluster-wchgs-infra-ap-northeast-1d    1         1         1       1           6h24m
openshift-machine-api   rosa-cluster-wchgs-worker-ap-northeast-1a   1         1         1       1           6h55m
openshift-machine-api   rosa-cluster-wchgs-worker-ap-northeast-1c   1         1         1       1           6h55m
openshift-machine-api   rosa-cluster-wchgs-worker-ap-northeast-1d   1         1         1       1           6h55m

名前から、Worker Node 用に各 AZ毎 に3つ、Infra Mode 用に各 AZ毎 に3つ、Machineset が作成されているのがわかります。 図で表すとこんな感じです。

f:id:yuhki-hatenua:20210607183842p:plain
machineset

OpenShift では、Machinesetに含まれる Nodeの数を、UIやコマンドで簡単に増減させる事ができるようになっています。

補則1: ROSA cluster 作成時に --multi-az オプションを付けなかった場合は、MachineSet は以下のように作成されました。

$ oc get machineset -A
NAMESPACE               NAME                                          DESIRED   CURRENT   READY   AVAILABLE   AGE
openshift-machine-api   rosa-cluster-247vl-infra-ap-northeast-1a      2         2         2       2           16m
openshift-machine-api   rosa-cluster-247vl-worker-ap-northeast-1a     2         2         2       2           47m
$

コマンド出力には現れていませんが、Master Nodeを含め、単一の AZ に全ての Node が作成されています。

補則2:

MachineSet の操作は、Red Hat の管理している Infra Node も変更できてしまうし、Machinepool の概念が導入されているのでユーザーとしては直接触る必要がないのではないだろうか。と思い、MachineSetが変更できるか試して見ました。

$ oc whoami
cluster-admin
$ oc scale machineset rosa-cluster-247vl-mypool-1-ap-northeast-1a --replicas=2 -n openshift-machine-api
Error from server (Prevented from accessing Red Hat managed resources. This is in an effort to prevent harmful actions that may cause unintended consequences or affect the stability of the cluster. If you have any questions about this, please reach out to Red Hat support at https://access.redhat.com/support): admission webhook "regular-user-validation.managed.openshift.io" denied the request: Prevented from accessing Red Hat managed resources. This is in an effort to prevent harmful actions that may cause unintended consequences or affect the stability of the cluster. If you have any questions about this, please reach out to Red Hat support at https://access.redhat.com/support
$ 

と、例えcluster-admin でも MachineSetは、変更できないようになっていました。ユーザーが Worker Nodeを増やしたい場合は、Machinepool を使用して変更する。という事のようです。

Machinepool の確認

前述したように ROSAでは Machiepool とうい概念が定義されています。 Machinepool は、oc コマンドではなく rosa コマンドで確認する事ができます。まずここが、Machineset と大きく違います。

では Machinepool を確認してみます。

$ rosa list machinepools --cluster=rosa-cluster
ID       AUTOSCALING  REPLICAS   INSTANCE TYPE          LABELS    TAINTS    AVAILABILITY ZONES
Default  No                3      m5.xlarge                                   ap-northeast-1a, ap-northeast-1c, ap-northeast-1d

Machiepool では、Worker Nodeのみが表示され、また AWS 独自の概念である m5.xlarge のような INSTNANCE TYPE や、AZ の名前が表示されています。

Machineset は、環境に依存しない OpenShiftの概念であるため特定のベンダーに依存した部分が隠ぺいされている一方、rosa コマンドで取得できるMachinepool では、AWSの独自の概念をそのままコマンド出力に含めています。

また、ROSAでユーザーの管理対象外である Infra Nodeは、Machinepool の対象に含まれてない事がわかります。その他にも AZ をまたいで一つのプールが構成されており、Machinepool は、ユーザーが自分の関心対象である Worker Nodeだけにフォーカスした管理作業ができるように作られた、新しい概念である事が見て取れます。

f:id:yuhki-hatenua:20210607185728p:plain
default の Machinepool

ちなみに出力のカラムにAUTOSCALINGのカラムがある事からもわかるように、Machinepool内でのWorker NodeAutoscaling も可能です。

Machinepool の追加

ROSAでは、別のインスタンスタイプを追加する場合、Machinepoolを作成し、新しい Worker Node インスタンスを追加します。Single AZの場合は本数は1本から追加できますが、Multi AZ 環境の場合は、3の倍数で Worker Nodeを追加する必要があります。

Machinepool の追加は以下のように行います。

$ rosa create machinepool --cluster=rosa-cluster
? Machine pool name: mypool-1                       # 追加する Machinepool に付ける名前
? Enable autoscaling (optional): No                    # AutoScaleの有効、無効を選択できる。
? Replicas: 3                      # Multi AZ (--mluti-az オプションを付けて cluster を作成した場合は 2を入れるとエラーになった。3の倍数の必要あり) 
? Instance type: [Use arrows to move, type to filter, 
? for more help]
m5.4xlarge
c5.4xlarge
r5.4xlarge
> r5.8xlarge
p3.8xlarge
m5.8xlarge
c5.9xlarge
<もっとある>
Labels: env=dev
? Taints (optional):
INFO: Machine pool 'mypool-1' created successfully on cluster 'rosa-cluster'INFO: To view all machine pools, run 'rosa list machinepools -c rosa-cluster'
$

追加するインスタンスタイプはリストから選択する事ができます。このブログの作成時点でサポートされているインスタンスタイプは、マニュアルによるとこちらになります。

追加した MachinePool を確認してみます。

$ rosa list machinepools --cluster=rosa-cluster
ID   AUTOSCALING  REPLICAS INSTANCE  TYPE   LABELS       TAINTS AVAILABILITY ZONES
Default     No    3     m5.xlarge               ap-northeast-1a, ap-northeast-1c, ap-northeast-1d
mypool-1    No    3     m5.xlarge        env=dev        ap-northeast-1a, ap-northeast-1c, ap-northeast-1d
$

新しいMachinepoolmypool-1ができています。 図で表すとこんな感じです。

f:id:yuhki-hatenua:20210607183919p:plain
追加された Machinepool mypool-1

ここでは出力は省略しますが、Machinepool が作成された裏では、MachineSet が、AZ 毎にそれぞれ作られていました。

同じインスタンスサイズでMachinPool を作ってしまったので、DefaultMachinePool がいらないな…と思ったので、数を0にできるか確認してみます。

$ rosa edit machinepool --cluster=rosa-cluster --replicas=0 Default
ERR: Default machine pool for AZ cluster requires at least 3 compute nodes
$

DefaultMachinepool の最低で3本という数は変更できないようです。

別のサイズのインスタンスを追加する場合は、Machinepool が2つ以上できる事になりますが、その際は、MachinepoolTaintLabelを付ける事で、Podを振り分ける事になりそうです。

補則:

ROSA cluster 作成時に --multi-az オプションを付けなかった場合は、Machinepool に作成する Node の本数は 1 でも大丈夫でした。

$ rosa list machinepools -c rosa-cluster
ID        AUTOSCALING  REPLICAS  INSTANCE TYPE  LABELS      TAINTS    AVAILABILITY ZONES
Default   No           2         m5.xlarge                            ap-northeast-1a
mypool-1  No           1         r5.xlarge      env=test              ap-northeast-1a

6. Cluster の削除

マニュアルのこの部分に従って、クラスターを削除します。

クラスターの削除は、作成時と同じで rosaコマンドで行います。

$ rosa delete cluster --cluster=rosa-cluster --watch

Cloud Formation のスタックが残っているので、それも消すには以下のコマンドを実行します。( 消す前に確認した所、Cloud Formationの残骸は無いように見えたのですが… 少なくても作成された IAM User が消されます)

$ rosa init --delete-stack

次回は ROSAの構造の内部をもう少し深掘りしてみます。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。