This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第3章 OpenShift Container Platform の設定
3.1. 概要
本書では、OpenShift Container Platform に関する基本的な概念を紹介し、基本的なアプリケーションを設定できるようになります。本書は、「OpenShift Container Platform の基本環境のインストール」に沿った設定手順であるため、OpenShift の実稼働環境のデプロイやインストールには適していません。
3.2. ログイン ID プロバイダーの変更
OpenShift Container Platform インスタンスを新規インストールした場合のデフォルトの動作は、全ユーザーのログインを拒否します。この認証方法を HTPasswd に変更するには、以下を実行します。
- /etc/origin/master/master-config.yaml ファイルを編集モードで開きます。
-
identityProviders
のセクションを検索します。 -
DenyAllPasswordIdentityProvider
をHTPasswdPasswordIdentityProvider
プロバイダーに変更します。 名前ラベルの値を
htpasswd_auth
に変更し、プロバイダーセクションにfile: /etc/origin/openshift-passwd
の新しい行を追加します。identityProviders
セクションにHTPasswdPasswordIdentityProvider
を指定した例は、以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oauthConfig: ... identityProviders: - challenge: true login: true name: htpasswd_auth provider provider: apiVersion: v1 kind: HTPasswdPasswordIdentityProvider file: /etc/origin/openshift-passwd
oauthConfig: ... identityProviders: - challenge: true login: true name: htpasswd_auth provider provider: apiVersion: v1 kind: HTPasswdPasswordIdentityProvider file: /etc/origin/openshift-passwd
- ファイルを保存します。
3.3. ユーザーアカウントの作成
HTPasswdPasswordIdentityProvider
プロバイダーを使用できるようになったので、これらのユーザーアカウントを作成する必要があります。
httpd-tools パッケージを使用して、これらのアカウントを生成可能な htpasswd バイナリーを取得できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yum -y install httpd-tools
# yum -y install httpd-tools
ユーザーアカウントを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow touch /etc/origin/openshift-passwd htpasswd -b /etc/origin/openshift-passwd admin redhat
# touch /etc/origin/openshift-passwd # htpasswd -b /etc/origin/openshift-passwd admin redhat
パスワードが
redhat
のadmin
というユーザーを作成しました。続行する前に OpenShift を再起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
# systemctl restart atomic-openshift-master-api atomic-openshift-master-controllers
このユーザーアカウントに
cluster-admin
の特権を指定して、あらゆる操作ができるようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm policy add-cluster-role-to-user cluster-admin admin
$ oc adm policy add-cluster-role-to-user cluster-admin admin
oc adm
コマンドの実行時は、Ansible ホストのインベントリーファイルに記載されている最初のマスターからのみ実行する必要があります。デフォルトは、/etc/ansible/hosts です。Web コンソールやコマンドラインから、このユーザー名/パスワードの組み合わせを使用してログインします。これをテストするには、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc login -u admin
$ oc login -u admin
default
プロジェクトに変更してから、次に進みます。
oc project default
$ oc project default
詳細は、「roles」および「authentication」を参照してください。
3.4. OpenShift ルーターのデプロイ
OpenShift ルーターは、OpenShift サービスが宛先の外部ネットワークトラフィックのエントリーポイントとなります。SNI を使用する HTTP、HTTPS および TLS トラフィックをサポートし、ルーターが正しいサービスにトラフィックを送信できるようにします。
ルーターなしでは、OpenShift サービスと pod は、OpenShift インスタンスの外部にあるリソースと通信できません。
インストーラーにより、デフォルトのルーターが作成されます。
以下のコマンドを使用してデフォルトのルーターを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete all -l router=router
$ oc delete all -l router=router
新しいデフォルトのルーターを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm router --replicas=1 --service-account=router
$ oc adm router --replicas=1 --service-account=router
OpenShift ドキュメントには、「Router Overview」に関する詳細情報が含まれます。
3.5. 内部レジストリーのデプロイ
Openshift には、内部の「integrated Docker registry」がある、このレジストリーをデプロイして、イメージをローカルで管理できます。また、OpenShift は docker-registry を使用して、Docker イメージの保存、取得、ビルドだけでなく、ライフサイクル全体でイメージをデプロイ、管理します。
インストーラーは、デフォルトのレジストリーを作成します。
以下のコマンドを使用して、デフォルトのレジストリーを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc delete all -l docker-registry=default
$ oc delete all -l docker-registry=default
registry サービスアカウントを使用して、default プロジェクトに docker-registry サービスを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm registry
$ oc adm registry
3.6. レジストリー用の永続ストレージの作成
以前の手順で作成したレジストリーは、イメージとメタデータを保存し、永続ストレージが設定されていない場合には pod のデプロイメント用に一時ボリュームを使用します。この一時ボリュームは、pod が終了した時点で破棄され、レジストリーにビルドまたはプッシュされたイメージなど、すべてのデータが失われます。
レジストリー用に永続ストレージを設定するには、以下を実行します。
- お使いのネットワーク上にあるストレージサーバーを参照するボリュームをプロビジョニングします (ここではマスターにボリュームを作成します)。
- Volume Claim (ボリューム要求) を作成します。
- レジストリーサービスに要求を手動で追加します。
レジストリー用の永続ストレージのを設定する以下の手順は、レジストリーだけでなく、永続データ必要とするイメージ用のストレージにも該当します。レジストリーは、OpenShift 環境ではイメージの 1 つにすぎません。
3.6.1. 永続ボリュームのプロビジョニング
ここで記載されているように、レジストリーのボリュームファイルを作成して、registry-volume.yaml という名前を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: PersistentVolume metadata: name: registry-volume spec: capacity: storage: 3Gi accessModes: - ReadWriteMany nfs: path: /root/storage server: master.openshift.example.com
apiVersion: v1 kind: PersistentVolume metadata: name: registry-volume spec: capacity: storage: 3Gi accessModes: - ReadWriteMany nfs: path: /root/storage server: master.openshift.example.com
/root/storage というフォルダーは、必要です。サーバーエントリーがマスターを参照するように変更してください。
OpenShift でレジストリーの永続ボリュームを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f registry-volume.yaml
$ oc create -f registry-volume.yaml
3.6.2. Persistent Volume Claim (永続ボリューム要求) の作成
さきほど作成した永続ボリュームをバインドするための要求を作成します。この要求を使用して、レジストリーサービスと永続ボリュームをリンクします。
registry-volume-claim.yaml と呼ばれる別のファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-volume-claim spec: accessModes: - ReadWriteMany resources: requests: storage: 3Gi
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-volume-claim spec: accessModes: - ReadWriteMany resources: requests: storage: 3Gi
要求を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f registry-volume-claim.yaml
$ oc create -f registry-volume-claim.yaml
永続ボリュームと Persistent Volume Claim (永続ボリューム要求) が作成されましたので、この要求をレジストリーに追加する必要があります。
3.6.3. Persistent Volume Claim (永続ボリューム要求) のレジストリーへの追加
oc volume dc/docker-registry \ --add --overwrite -t persistentVolumeClaim \ --claim-name=registry-volume-claim \ --name=registry-storage
$ oc volume dc/docker-registry \
--add --overwrite -t persistentVolumeClaim \
--claim-name=registry-volume-claim \
--name=registry-storage
これで、docker-registry は、イメージとメタデータの保存用に作成した 3 GB の永続ボリュームを使用するようになります。