Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第3章 OpenShift Container Platform の設定

3.1. 概要

本書では、OpenShift Container Platform に関する基本的な概念を紹介し、基本的なアプリケーションを設定できるようになります。本書は、「OpenShift Container Platform の基本環境のインストール」に沿った設定手順であるため、OpenShift の実稼働環境のデプロイやインストールには適していません。

3.2. ログイン ID プロバイダーの変更

OpenShift Container Platform インスタンスを新規インストールした場合のデフォルトの動作は、全ユーザーのログインを拒否します。この認証方法を HTPasswd に変更するには、以下を実行します。

  1. /etc/origin/master/master-config.yaml ファイルを編集モードで開きます。
  2. identityProviders のセクションを検索します。
  3. DenyAllPasswordIdentityProviderHTPasswdPasswordIdentityProvider プロバイダーに変更します。
  4. 名前ラベルの値を htpasswd_auth に変更し、プロバイダーセクションに file: /etc/origin/openshift-passwd の新しい行を追加します。

    identityProviders セクションに HTPasswdPasswordIdentityProvider を指定した例は、以下のようになります。

    oauthConfig:
      ...
      identityProviders:
      - challenge: true
        login: true
        name: htpasswd_auth provider
        provider:
          apiVersion: v1
          kind: HTPasswdPasswordIdentityProvider
          file: /etc/origin/openshift-passwd
  5. ファイルを保存します。

3.3. ユーザーアカウントの作成

HTPasswdPasswordIdentityProvider プロバイダーを使用できるようになったので、これらのユーザーアカウントを作成する必要があります。

  1. httpd-tools パッケージを使用して、これらのアカウントを生成可能な htpasswd バイナリーを取得できます。

    # yum -y install httpd-tools
  2. ユーザーアカウントを作成します。

    # touch /etc/origin/openshift-passwd
    # htpasswd -b /etc/origin/openshift-passwd admin redhat

    パスワードが redhatadmin というユーザーを作成しました。

  3. 続行する前に OpenShift を再起動します。

    # master-restart api
    # master-restart controllers
  4. このユーザーアカウントに cluster-admin の特権を指定して、あらゆる操作ができるようにします。

    $ oc adm policy add-cluster-role-to-user cluster-admin admin

    oc adm コマンドの実行時は、Ansible ホストのインベントリーファイルに記載されている最初のマスターからしか実行しないようにしてください。デフォルトは、/etc/ansible/hosts です。

  5. Web コンソールやコマンドラインから、このユーザー名/パスワードの組み合わせを使用してログインします。これをテストするには、以下のコマンドを実行します。

    $ oc login -u admin

default プロジェクトに変更してから、次に進みます。

$ oc project default

詳細は、「roles」および「authentication」を参照してください。

3.4. OpenShift ルーターのデプロイ

OpenShift ルーターは、OpenShift サービスが宛先の外部ネットワークトラフィックのエントリーポイントとなります。SNI を使用する HTTP、HTTPS および TLS トラフィックをサポートし、ルーターが正しいサービスにトラフィックを送信できるようにします。

ルーターなしでは、OpenShift サービスと pod は、OpenShift インスタンスの外部にあるリソースと通信できません。

インストーラーにより、デフォルトのルーターが作成されます。

  1. 以下のコマンドを使用してデフォルトのルーターを削除します。

    $ oc delete all -l router=router
  2. 新しいデフォルトのルーターを作成します。

    $ oc adm router --replicas=1 --service-account=router

OpenShift ドキュメントには、「Router Overview」に関する詳細情報が含まれます。

3.5. 内部レジストリーのデプロイ

Openshift には、内部の「integrated Docker registry」がある、このレジストリーをデプロイして、イメージをローカルで管理できます。また、OpenShift は docker-registry を使用して、Docker イメージの保存、取得、ビルドだけでなく、ライフサイクル全体でイメージをデプロイ、管理します。

インストーラーは、デフォルトのレジストリーを作成します。

  1. 以下のコマンドを使用して、デフォルトのレジストリーを削除します。

    $ oc delete all -l docker-registry=default
  2. registry サービスアカウントを使用して、default プロジェクトに docker-registry サービスを作成します。

    $ oc adm registry

3.6. レジストリー用の永続ストレージの作成

以前の手順で作成したレジストリーは、イメージとメタデータを保存し、永続ストレージが設定されていない場合には pod のデプロイメント用に一時ボリュームを使用します。この一時ボリュームは、pod が終了した時点で破棄され、レジストリーにビルドまたはプッシュされたイメージなど、すべてのデータが失われます。

レジストリー用に永続ストレージを設定するには、以下を実行します。

  • お使いのネットワーク上にあるストレージサーバーを参照するボリュームをプロビジョニングします (ここではマスターにボリュームを作成します)。
  • Volume Claim (ボリューム要求) を作成します。
  • レジストリーサービスに要求を手動で追加します。
注記

レジストリー用の永続ストレージのを設定する以下の手順は、レジストリーだけでなく、永続データ必要とするイメージ用のストレージにも該当します。レジストリーは、OpenShift 環境ではイメージの 1 つにすぎません。

3.6.1. 永続ボリュームのプロビジョニング

  1. ここで記載されているように、レジストリーのボリュームファイルを作成して、registry-volume.yaml という名前を指定します。

    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 というフォルダーは、必要です。サーバーエントリーがマスターを参照するように変更してください。

  2. OpenShift でレジストリーの永続ボリュームを作成します。

    $ oc create -f registry-volume.yaml

3.6.2. Persistent Volume Claim (永続ボリューム要求) の作成

さきほど作成した永続ボリュームをバインドするための要求を作成します。この要求を使用して、レジストリーサービスと永続ボリュームをリンクします。

  1. registry-volume-claim.yaml と呼ばれる別のファイルを作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: registry-volume-claim
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 3Gi
  2. 要求を作成します。

    $ 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

これで、docker-registry は、イメージとメタデータの保存用に作成した 3 GB の永続ボリュームを使用するようになります。