LoginSignup
18
4

More than 3 years have passed since last update.

OpenShiftをAWSに導入するための見積もりに必要な情報

Last updated at Posted at 2019-12-29

はじめに

OpenShiftの公式ドキュメントに記載されたインストール方法の中で真っ先に紹介されているのがAWSへのインストール(第1章 AWS へのインストール)です。このインストール方法は、他の方がQiitaの記事でもいくつか紹介(後述)されているように非常に簡単にAWS上にOpenShiftを構築することができます。OpenShiftは複数のノード上に様々なコンポーネントを導入することになりますが、それをTerraformの機能を使って一括で設定することができます。

と、ここまでは簡単にインストールできることの紹介でしたが、実際にやってみるためには事前にお決まりの儀式が必要です。そう、「見積もり」です。

見積もりに必要なAWSサービス/リソース

AWS環境の見積もりは使用するAWSサービスを洗い出す必要があります。ところが、RedHatの公式ドキュメント(第1章 AWS へのインストール)からはどんなAWSリソースを使うかの記載がありません。(なんとなく読み取ることはできはしますが、、)Web上の情報でもそこまで詳細にかかれたものは見つかりませんでした。
そこで、本記事では"1.2. クラスターの AWS へのクイックインストール"で紹介された方法でどんなAWSサービス(リソース)が出来上がるかを確認した結果を記載します。

TL;DR

こんなAWSサービスが出来上がりました。
(主要なもののみ記載)
- VPC
- NAT Gateway
- EIP
- EC2
- EBS
- AMI
- ELB
- SecurityGroup
- S3
- Route53
- IAM

環境情報

OpenShiftインストーラー: openshift-client-linux-4.2.12.tar.gz
作業端末:Windows10 Subsystem for Linux(Ubuntu:VERSION=16.04.3 LTS)にAWSCLI導入済
AWS:バージニア北部リージョン(us-east-1)

インストール

詳細なインストール方法については公式ドキュメントおよびWeb上の情報を参照ください。
今回は1.2. クラスターの AWS へのクイックインストールの方法でインストールを行いました。

注意)MFA有効化のIAMアカウントではインストール実行できません。
RedHat公式ドキュメントにも下記記載があります。(1.2. クラスターの AWS へのクイックインストール参考)

AWS プロファイルがご使用のコンピューターに保存されている場合、マルチファクター認証デバイスを使用中に生成した一時的なセッショントークンを使用することはできません。

注意してください。ハマりました。

インストール構成

本記事の環境はデフォルトの状態でOpenShiftを構成しています。参考までにクラスタ名など必要最低限の設定を入れたinstall-config.yamlファイルを記載します。

install-config.yaml
apiVersion: v1
baseDomain: iseocp2019.net
compute:
- hyperthreading: Enabled
  name: worker
  platform: {}
  replicas: 3
controlPlane:
  hyperthreading: Enabled
  name: master
  platform: {}
  replicas: 3
metadata:
  creationTimestamp: null
  name: ocp4-aws
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineCIDR: 10.0.0.0/16
  networkType: OpenShiftSDN
  serviceNetwork:
  - 172.30.0.0/16
platform:
  aws:
    region: us-east-1
pullSecret: '{"auths":***}'
sshKey: |
  ssh-rsa AAAA***

なお、OpenShiftのリソース追加・変更はこちら(1.3. カスタマイズによる AWS へのクラスターのインストール)を参考に上記yamlファイルを変更することで、対応可能です。

できたもの

インストールは3,40分程度で完了します。
インストールが完了すると下記AWSサービス/リソースができていました。
※以下、AWSサービスの主要な設定値を記載

  • VPC
リソース Nameタグ CIDR
VPC ocp4-aws 10.0.0.0/16
  • Subnet
Nameタグ CIDR
ocp4-aws-qt9tx-private-us-east-1a 10.0.128.0/20
ocp4-aws-qt9tx-public-us-east-1a 10.0.0.0/20
ocp4-aws-qt9tx-private-us-east-1b 10.0.144.0/20
ocp4-aws-qt9tx-public-us-east-1b 10.0.16.0/20
ocp4-aws-qt9tx-private-us-east-1c 10.0.160.0.20
ocp4-aws-qt9tx-public-us-east-1c 10.0.30.0/20
ocp4-aws-qt9tx-private-us-east-1d 10.0.176.0/20
ocp4-aws-qt9tx-public-us-east-1d 10.0.48.0/20
ocp4-aws-qt9tx-private-us-east-1e 10.0.192.0/20
ocp4-aws-qt9tx-public-us-east-1e 10.0.64.0/20
ocp4-aws-qt9tx-private-us-east-1f 10.0.208.0/20
ocp4-aws-qt9tx-public-us-east-1f 10.0.80.0/20

※特にAZ指定はしていませんでしたが、バージニア北部(us-east-1)の全AZにまたがって設定が入ったようです
 他のリソースも同様に全AZ分のリソースができていました。

  • Route Table
Nameタグ
ocp4-aws-qt9tx-private-us-east-1a
ocp4-aws-qt9tx-private-us-east-1b
ocp4-aws-qt9tx-private-us-east-1c
ocp4-aws-qt9tx-private-us-east-1d
ocp4-aws-qt9tx-private-us-east-1e
ocp4-aws-qt9tx-private-us-east-1f
ocp4-aws-qt9tx-public
  • Internet Gateway
Nameタグ
ocp4-aws-qt9tx-igw
  • Elastic IP
Nameタグ Elastic IP
ocp4-aws-qt9tx-eip-us-east-1a 3.209.x.x
ocp4-aws-qt9tx-eip-us-east-1b 35.170.x.x
ocp4-aws-qt9tx-eip-us-east-1c 52.0.x.x
ocp4-aws-qt9tx-eip-us-east-1d 52.1.x.x
ocp4-aws-qt9tx-eip-us-east-1e 52.54.x.x
ocp4-aws-qt9tx-eip-us-east-1f 54.226.x.x
  • Endpoint
Nameタグ サービス
-- S3
  • NAT Gateway
Nameタグ
ocp4-aws-qt9tx-private-us-east-1a
ocp4-aws-qt9tx-private-us-east-1b
ocp4-aws-qt9tx-private-us-east-1c
ocp4-aws-qt9tx-private-us-east-1d
ocp4-aws-qt9tx-private-us-east-1e
ocp4-aws-qt9tx-private-us-east-1f
  • EC2
Nameタグ インスタンスタイプ AZ 備考
ocp4-aws-qt9tx-bootstrap m4.large us-east-1a インストール作業後ターミネートされる
ocp4-aws-qt9tx-master-0 m4.xlarge us-east-1a
ocp4-aws-qt9tx-master-1 m4.xlarge us-east-1b
ocp4-aws-qt9tx-master-2 m4.xlarge us-east-1c
ocp4-aws-qt9tx-worker-us-east-1a-vmjz4 m4.large us-east-1a
ocp4-aws-qt9tx-worker-us-east-1a-5fxwz m4.large us-east-1b
ocp4-aws-qt9tx-worker-us-east-1a-4h8zq m4.large us-east-1c

メモ)インストールが開始するとbootstrap、masterノードがまず作成され管理ノードの構成が始まります。その後workerノードが作成されます。bootstrapノードはインストール作業後に自動でターミネートされます。

なんとなく、表だけで表現すると現実味がないのでキャプチャも貼っておく。
image.png

  • EBS
Nameタグ サイズ ボリュームタイプ IOPS
ocp4-aws-qt9tx-master-0 120GiB gp2 360
ocp4-aws-qt9tx-master-1 120GiB gp2 360
ocp4-aws-qt9tx-master-2 120GiB gp2 360
ocp4-aws-qt9tx-worker-us-east-1a-vmjz4 120GiB gp2 360
ocp4-aws-qt9tx-worker-us-east-1a-5fxwz 120GiB gp2 360
ocp4-aws-qt9tx-worker-us-east-1a-4h8zq 120GiB gp2 360
  • AMI
Nameタグ AMI名
ocp4-aws-qt9tx-master ocp4-aws-qt9tx-master
  • スナップショット

(確認し忘れました。。どなたか教えて下さい。。)

  • ELB
Nameタグ DNS名
ocp4-aws-qt9tx-ext ocp4-aws-qt9tx-ext-***
ocp4-aws-qt9tx-int ocp4-aws-qt9tx-int-***
a62dbe*** a62dbe***

image.png

  • SecurityGroup
Nameタグ
ocp4-aws-qt9tx-master-sg
ocp4-aws-qt9tx-worker-sg
k8s-elb-**
(default)

以下、ちょっと気になったのでインバウンド、アウトバウンドの情報をメモ。
・ocp4-aws-qt9tx-master-sg(インバウンド)

タイプ プロトコル ポート範囲 ソース
カスタム UDP 6081 master-sg
カスタム UDP 6081 worker-sg
カスタム UDP 6443 10.0.0.0/16
カスタム UDP 9000-9999 master-sg
カスタム UDP 9000-9999 worker-sg
カスタム UDP 2379-2380 master-sg
カスタム UDP 10257 master-sg
カスタム UDP 10257 worker-sg
カスタム UDP 22623 10.0.0.0/16
カスタム UDP 30000-32767 master-sg
カスタム UDP 4789 master-sg
カスタム UDP 4789 worker-sg
ICMP すべて 該当なし 10.0.0.0/16
カスタム UDP 10259 master-sg
カスタム UDP 10259 worker-sg
カスタム UDP 30000-32767 master-sg
カスタム UDP 22 10.0.0.0/16
カスタム UDP 9000-9999 master-sg
カスタム UDP 9000-9999 worker-sg
カスタム UDP 10257 master-sg
カスタム UDP 10257 worker-sg
カスタム UDP 6641-6642 master-sg
カスタム UDP 6641-6642 worker-sg

※重複しているところもあるようですが、表示されたそのままを記載しました。

・ocp4-aws-qt9tx-master-sg(アウトバウンド)

タイプ プロトコル ポート範囲 ソース
すべてのトラフィック すべて すべて 0.0.0.0/0

・ocp4-aws-qt9tx-worker-sg(インバウンド)

タイプ プロトコル ポート範囲 ソース
カスタム UDP 3000-32676 worker-sg
カスタム UDP 6081 master-sg
カスタム UDP 6081 worker-sg
すべて すべて すべて k8s-elb-sg
カスタム UDP 9000-9999 worker-sg
カスタム UDP 9000-9999 master-sg
カスタム UDP 22 10.0.0.0/16
カスタム UDP 30000-32767 master-sg
カスタム UDP 9000-9999 master-sg
カスタム UDP 9000-9999 worker-sg
カスタム UDP 10250 master-sg
カスタム UDP 10250 worker-sg
カスタム UDP 4789 master-sg
カスタム UDP 4789 worker-sg
ICPM すべて 該当なし 10.0.0.0/16

・ocp4-aws-qt9tx-worker-sg(アウトバウンド)

タイプ プロトコル ポート範囲 ソース
すべてのトラフィック すべて すべて 0.0.0.0/0
  • S3
バケット名
ocp4-aws-qt9tx-image-registry-us-east-1-***
  • Route53

・ホストグループ

ドメイン名 タイプ 備考
icpocp2019.net. パブリック 事前に準備したドメイン
ocp4-aws.icpocp2019.net. パブリック

・icpocp2019.net.
image.png

・ocp4-aws.icpocp2019.net.
image.png

  • IAM

・IAMロール

ロール名 信頼されたエンティティ
ocp4-aws-qt9tx-master-rle AWSサービス:ec2
ocp4-aws-qt9tx-worker-rle AWSサービス:ec2

まとめ

OpneShiftはTerraformをつかって簡単・一括でOpenShiftの環境をAWS上に構築することができます。構築されたAWSサービス/リソースは上記の通り多種多様なものがあります。
上記情報が今後AWS上にOpneShiftを構築する人の見積もり情報の参考になれば幸いです。

※追記:下記リンク先の情報が今回確認できたリソース情報の参考になるかと思います。
第4章 ユーザーによってプロビジョニングされた AWS へのインストール

おまけ

このOpenShift環境を削除する場合も、コマンド(openshift-install destroy cluster)一発できれいサッパリ消すことができます。
インストール後にworkerノードを追加していても特に設定変更することなく上記コマンド一発で消えることを確認しました。(→”AWS上に導入したOpenShiftを削除する” 参照)

参考

以下AWS上にOpenShiftを構築例の参考情報です。
OpenShift 4 を AWS上に構築してみた
猿でもできるOpenShift4インストール編
AWS上にOpenShift 4.1のクラスタを構築した

18
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
4