第3章 OpenShift Container Platform での .NET Core 2.1 の使用
.NET Core イメージストリームは、Linux、Mac または Windows オペレーティングシステムにインストールできます。
3.1. .NET Core 2.1 イメージストリームのインストール
.NET Core イメージストリームの定義は、openshift 名前空間でグローバルに定義することも、特定のプロジェクトでローカルに定義することもできます。
手順
システム管理者であるか、または十分なパーミッションがある場合は、
openshiftプロジェクトに切り替えます。openshiftプロジェクトを使用すると、イメージストリームの定義をグローバルに更新できます。$ oc project openshift
openshiftプロジェクトを使用するパーミッションがない場合は、手順 2 で始まるプロジェクト定義を更新できます。利用可能な .NET Core イメージバージョンの一覧を表示します。
$ oc describe is dotnet -n openshift $ oc describe is dotnet
出力には、インストールされているイメージが表示されます。イメージがインストールされていない場合は、
Error from server (NotFound)メッセージが表示されます。イメージをプルするには、OpenShift では
registry.redhat.io サーバーで認証するための認証情報が必要です。これらの認証情報はシークレットに保存されます。注記OpenShift 3.11 以降では、
openshiftnamespace 用にシークレットが事前設定されています。以下のコマンドを入力してシークレットを一覧表示します。最初の列には、シークレット名が表示されます。
$ 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サーバーの認証情報と共にシークレットが一覧にない場合は、これを追加する必要があります。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新規イメージストリームをインポートします。
$ 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