第20章 Amazon Web サービス (AWS) の設定
20.1. 概要
OpenShift Container Platform は、AWS ボリュームをアプリケーションデータの永続ストレージとして使用する など、AWS EC2 インフラストラクチャー にアクセスできるように設定できます。これを実行するには、AWS を設定した後に OpenShift Container Platform ホストで追加の設定を行う必要があります。
20.1.1. Amazon Web サービス (AWS) の認証の設定
パーミッション: AWS インスタンスでは、OpenShift Container Platform でロードバランサーおよびストレージを要求し、管理できるようにするために、アクセスおよびシークレットキーを使用する Programmatic Access (プログラムによるアクセス) を持つ IAM アカウントか、または作成時にインスタンスに割り当てられる IAM ロールのいずれかが必要になります。
IAM アカウントまたは IAM ロールには、完全なクラウドプロバイダー機能を利用できるようにするためのポリシーパーミッションが必要です。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolume*", "ec2:CreateVolume", "ec2:CreateTags", "ec2:DescribeInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:DeleteVolume", "ec2:DescribeSubnets", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:DeleteSecurityGroup", "ec2:DescribeRouteTables", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupIngress", "elasticloadbalancing:DescribeTags", "elasticloadbalancing:CreateLoadBalancerListeners", "elasticloadbalancing:ConfigureHealthCheck", "elasticloadbalancing:DeleteLoadBalancerListeners", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:ModifyLoadBalancerAttributes", "elasticloadbalancing:DescribeLoadBalancerAttributes" ], "Resource": "*", "Effect": "Allow", "Sid": "1" } ] }
aws iam put-role-policy \ --role-name openshift-role \ --policy-name openshift-admin \ --policy-document file: //openshift_iam_policy
aws iam put-user-policy \ --user-name openshift-admin \ --policy-name openshift-admin \ --policy-document file: //openshift_iam_policy
OpenShift ノードインスタンスは ec2:DescribeInstance
パーミッションのみが必要ですが、インストーラーは単一の AWS アクセスキーおよびシークレットのみの定義を許可します。これは、IAM ロールを使用し、上記のパーミッションをマスターインスタンスに割り当てた後に ec2:DescribeInstance
をノードに割り当てることでバイパスできます。
20.1.1.1. インストール時の OpenShift Container Platform クラウドプロバイダーの設定
手順
アクセスおよびシークレットキーのある IAM アカウントを使用して Amazon Web Services クラウドプロバイダーを設定するには、以下の値をインベントリーに追加します。
[OSEv3:vars] openshift_cloudprovider_kind=aws openshift_clusterid=openshift 1 openshift_cloudprovider_aws_access_key=AKIAJ6VLBLISADPBUA 2 openshift_cloudprovider_aws_secret_key=g/8PmDNYHVSQn0BQE+xtsHzbaZaGYjGNzhbdgwjH 3
IAM ロールを使用して Amazon Web Services クラウドプロバイダーを設定するには、以下の値をインベントリーに追加します。
[source,yaml]
----
[OSEv3:vars]
openshift_cloudprovider_kind=aws
openshift_clusterid=openshift 1
----
<1> A tag assigned to all resources (instances, load balancers, vpc, etc) used for OpenShift.
NOTE: The IAM role takes the place of needing an access and secret key.
20.1.1.2. インストール後の OpenShift Container Platform クラウドプロバイダーの設定
Amazon Web Services クラウドプロバイダーの値がインストール時に提供されない場合でも、インストール後に設定を定義し、作成することができます。設定ファイルの設定手順に従い、マスターおよびノードを手動で設定します (OpenShift Container Platform マスターでの AWS の手動設定)。
-
マスターホスト、ノードホスト、サブネットにはすべて、
kubernetes.io/cluster/<clusterid>,Value=(owned|shared)
のタグが必要です。 1 つのセキュリティーグループ (ノードにリンクされていることが望ましい) に
kubernetes.io/cluster/<clusterid>,Value=(owned|shared)
タグが必要です。-
すべてのセキュリティーグループに
kubernetes.io/cluster/<clusterid>,Value=(owned|shared)
のタグを付けないでください。 その場合、Elastic Load Balancing (ELB) がロードバランサーを作成できなくなります。
-
すべてのセキュリティーグループに