第3章 OpenShift Container Platform での .NET Core 2.1 の使用

.NET Core イメージストリームは、Linux、Mac または Windows オペレーティングシステムにインストールできます。

3.1. .NET Core 2.1 イメージストリームのインストール

.NET Core イメージストリームの定義は、openshift 名前空間でグローバルに定義することも、特定のプロジェクトでローカルに定義することもできます。

手順

  1. システム管理者であるか、または十分なパーミッションがある場合は、openshift プロジェクトに切り替えます。openshift プロジェクトを使用すると、イメージストリームの定義をグローバルに更新できます。

    $ oc project openshift

    openshift プロジェクトを使用するパーミッションがない場合は、手順 2 で始まるプロジェクト定義を更新できます。

  2. 利用可能な .NET Core イメージバージョンの一覧を表示します。

    $ oc describe is dotnet -n openshift
    $ oc describe is dotnet

    出力には、インストールされているイメージが表示されます。イメージがインストールされていない場合は、Error from server (NotFound) メッセージが表示されます。

  3. イメージをプルするには、OpenShift では registry.redhat.io サーバー で認証するための認証情報が必要です。これらの認証情報はシークレットに保存されます。

    注記

    OpenShift 3.11 以降では、openshift namespace 用にシークレットが事前設定されています。

    以下のコマンドを入力してシークレットを一覧表示します。最初の列には、シークレット名が表示されます。

    $ oc get secret | grep kubernetes.io/dockerc

    シークレットの内容を確認するには、.dockercfg または .dockerconfigjson データを Base64 形式からデコードできます。これにより、registry.redhat.io サーバー の認証情報がすでにあるかどうかを確認できます。以下のコマンドを入力してシークレットの .dockercfg セクションを表示します。

    $ oc get secret <secret-name> -o yaml | grep .dockercfg
      .dockercfg: eyJyZWdpc3RyeS5yZWRoYXQuaW8iOnsidXNlcm5hbWUiOiIqKioqKioqKiIsInBhc3N3b3JkIjoiKioqKioqKioiLCJlbWFpbCI6InVudXNlZCIsImF1dGgiOiJLaW9xS2lvcUtpbzZLaW9xS2lvcUtpbz0ifX0=

    以下のコマンドに出力をコピーして貼り付けて、Base64 形式から変換します。以下の例は、registry.redhat.io サーバーの認証情報を示しています。

    $ echo eyJyZWdpc3RyeS5yZWRoYXQuaW8iOnsidXNlcm5hbWUiOiIqKioqKioqKiIsInBhc3N3b3JkIjoiKioqKioqKioiLCJlbWFpbCI6InVudXNlZCIsImF1dGgiOiJLaW9xS2lvcUtpbzZLaW9xS2lvcUtpbz0ifX0= | base64 -d
    {"registry.redhat.io":{"username":"","password":"","email":"unused","auth":"KioqKioqKio6KioqKioqKio="}}

    registry.redhat.io サーバーの認証情報と共にシークレットが一覧にない場合は、これを追加する必要があります。

  4. Red Hat アカウント認証情報は registry.redhat.io アクセス に使用されます。Red Hat 製品のエンタイトルメントをお持ちのお客様は、使用するアカウントの認証情報をお持ちです。通常、これらは Red Hat カスタマーポータルへのログインに使用されるものと同じ認証情報です。Red Hat の認証情報を確認するには、以下のコマンドを実行してログインを試行します。

    $ podman login registry.redhat.io

    ログインできない場合は、まず Red Hat のアカウントを取得する必要があります。詳細は、「 Red Hat コンテナーレジストリーの認証 」を参照してください。ログインできる場合は、以下のコマンドを実行してシークレットを作成します。

    $ oc create secret docker-registry redhat-registry \
        --docker-server=registry.redhat.io \
        --docker-username=<user-name> \
        --docker-password=<password> \
        --docker-email=unused
    $ oc secrets link default redhat-registry --for=pull
    $ oc secrets link builder redhat-registry
  5. 新規イメージストリームをインポートします。

    $ oc create -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/dotnet_imagestreams.json

    イメージストリームがすでにインストールされている場合は、replace コマンドを使用してイメージストリームの定義を更新します。

    $ oc replace -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/dotnet_imagestreams.json