【前提条件】
やりたかったことは単純に「VPC(Virtual Private Cloud)環境内に OpenShift クラスタを1つ作る」ことでした。既に VPC 自体はサブネット含めて作成済みで、バックアップストレージの Cloud Object Storage インスタンスも作成済みです。 後はこの VPC 内に OpenShift クラスタをスペックやワーカーノード数を指定して作るだけ、という状況です。
【CLI コマンド】
以下 CLI コマンドを記載します。ここまでに "ibmcloud login" は実行済みであるとします。
詳しくは下記参考ページを参照いただきたいのですが、VPC 内に OpenShift クラスタを作るための CLI コマンドは以下のようになります:
$ ibmcloud oc cluster create vpc-gen2 --name (クラスタ名) --zone (作成先ゾーン名) --vpc-id (作成先 VPC ID) --subnet-id (作成先サブネット ID) --flavor (ワーカーノードのフレーバー) --version (OpenShift バージョン) --cos-instance (Cloud Object Storage の CRN) --workers (1ゾーンあたりのワーカーノード数)
で、このコマンドを実行するためには(上記コマンド内にも括弧がたくさんあるように)指定する必要がある多くのパラメータ情報を事前に集めておく必要があります。というわけでまずはパラメータ情報を収集するための CLI コマンドから説明します。
まず "--name" パラメータで指定する「クラスタ名」は自分で自由に指定することができるので説明は不要だと思います。次に "--zone" パラメータで指定する「作成先ゾーン名」ですが、これは目的のゾーンが例えば「大阪3」であったとして、この「大阪3」を指定するための文字列です。これを調べるには次のコマンドでゾーン一覧を取得して、そこから目的のゾーンの ID を取り出します(青字が入力コマンドです):
$ ibmcloud oc zone ls --provider vpc-gen2 OK ID Name Metro Flavors au-syd-1 au-syd-1 Sydney - au-syd-2 au-syd-2 Sydney - au-syd-3 au-syd-3 Sydney - br-sao-1 br-sao-1 Sao Paulo - : eu-gb-3 eu-gb-3 London - jp-osa-1 jp-osa-1 Osaka - jp-osa-2 jp-osa-2 Osaka - jp-osa-3 jp-osa-3 Osaka - jp-tok-1 jp-tok-1 Tokyo - jp-tok-2 jp-tok-2 Tokyo - jp-tok-3 jp-tok-3 Tokyo - us-east-1 us-east-1 Washington D.C. - :
この結果から「大阪3」を使う場合に指定するゾーン名が "jp-osa-3" であることが分かります。
次に作成先の「VPC ID」です。VPC が決まっていても、その ID を取り出して指定する必要があります。これは以下のコマンドを実行することで取り出せます:
$ ibmcloud oc vpcs --provider vpc-gen2 OK Name ID Provider xxxxxxx-vpc-osa ****-********-****-****-****-************ vpc-gen2 :
目的の VPC 名と照らし合わせることで ID を確認することができます("****-********-****-****-****-************" という値であったと仮定します)。
作成先の「サブネットID」も調べる必要があります。普段は名称で扱っていて、ID を意識することがあまりないのですが CLI 操作時には必要な情報です。これは以下のコマンドで "xxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" であることが確認できます:
$ ibmcloud oc subnets --provider vpc-gen2 --vpc-id (VPC ID) --zone (ゾーン名) OK Name ID Public Gateway Name Public Gateway ID IPv4 CIDR Block Available IPv4 Addresses sn-xxxxxxxxxxx-03 xxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx pgw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 10.xxx.xxx.0/24 244
ワーカーノードのフレーバー(スペック)も実行時に指定する必要のある情報です。これは以下のコマンドでフレーバーの一覧を取得し、目的のフレーバーの ID を取り出します。今回は "bx2.16x64" というスペックのフレーバーを使うことにします:
$ ibmcloud oc flavors --zone (ゾーン名) --provider vpc-gen2 OK For more information about these flavors, see 'https://ibm.biz/flavors' Name Cores Memory Network Speed OS Server Type Storage Secondary Storage Flavor Class Provider bx2.16x64 16 64GB 24Gbps UBUNTU_20_64 virtual 100GB 0B, * bx2 vpc-gen2 bx2.2x8† 2 8GB 4Gbps UBUNTU_20_64 virtual 100GB 0B bx2 vpc-gen2 bx2.32x128 32 128GB 25Gbps UBUNTU_20_64 virtual 100GB 0B, * bx2 vpc-gen2 b : :
OpenShift のバージョンも指定する必要がある項目ですが、これは普通に "4.11_openshift" などと指定できます。またゾーンあたりのワーカーノード数も普通に "2" などと数字で指定可能です。
最後に Cloud Object Storage の CRN を取得します。これは取得が面倒なのですが、作成済みリソースの一覧を取得し、そこから目的の Cloud Object Storage サービスを探して、その ID を見つける、という方法で取得します:
$ ibmcloud resource service-instances --long OK : : ID: crn:v1:bluemix:public:cloud-object-storage:global:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:: GUID: xxxxxxxxxxxxxx Name Cloud Object Storage for me Location global : :
これで OpenShift クラスタを作成するために必要な最低限の情報が揃いました:
情報 | 値 |
---|---|
ゾーン名 | jp-osa-3 |
VPC ID | ****-********-****-****-****-************ |
サブネット ID | xxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
ワーカーノードのフレーバー | bx2.16x64 |
OpenShift バージョン | 4.11_openshift |
1ゾーンあたりのワーカーノード数 | 2 |
Cloud Object Storage の CRN | crn:v1:bluemix:public:cloud-object-storage:global:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:: |
これらの情報を使って以下のコマンドを実行します:
$ ibmcloud oc cluster create vpc-gen2 --name (クラスタ名) --zone jp-osa-3 --vpc-id ****-********-****-****-****-************ --subnet-id xxxx-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --flavor bx2.16x64 --version 4.11_openshift --cos-instance crn:v1:bluemix:public:cloud-object-storage:global:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:: --workers 2 Creating cluster... OK Cluster created with ID ***************************
成功すると上述のようにクラスタ ID("***************************")が表示され、「デプロイ中」のステータスとなります。
なお、マルチゾーンで作成する場合は上記の作業を行ってシングルゾーンでクラスタを作成した上で、追加するゾーンのゾーン名とサブネット ID を取得してから以下のコマンドを実行してワーカープールにワーカーノードを追加します:
$ ibmcloud oc zone add vpc-gen2 --zone (追加するゾーン名) -c (クラスタ名) --worker-pool (追加先のワーカープール名) --subnet-id (サブネットID)
OK
これで IBM Cloud のダッシュボード画面にアクセス
【参考】
https://cloud.ibm.com/docs/openshift?topic=openshift-cluster-create-vpc-gen2&interface=cli