機械翻訳について

ドメイン・イメージへのアクセス

ほとんどのオペレータ・サンプルでは、Kubernetesクラスタに1つのワーカー・ノードがあり、そのノードに必要なイメージは、そのノード上で作成されているか、レジストリから外部(docker pullを使用して)ノードにプルされていることが想定されています。 これは、ほとんどのデモンストレーションの目的で適切であり、この前提が正しい場合は、Kubernetesがイメージにアクセスできるようにするための追加のステップは必要ありません。 それ以外の場合は、通常、Kubernetesクラスタがドメイン・イメージにアクセスできるように、追加のステップが必要です。

たとえば、Kubernetesクラスタの本番デプロイメントでは、通常、リモートで複数のワーカー・ノードを持ち、認証が必要な中央リポジトリにドメイン・イメージを格納します。

このようなデプロイメントにドメイン・イメージを提供する場合の2つの一般的なシナリオを次に示します:

  • オプション1: イメージを中央レジストリに格納し、各ドメイン・リソースにイメージ・プル・シークレットを設定

  • オプション2: イメージを中央レジストリに格納し、各ドメイン・ネームスペースにイメージ・プル・シークレットを使用してKubernetesサービス・アカウントを設定

オプション1: イメージを中央レジストリに格納し、各ドメイン・リソースにイメージ・プル・シークレットを設定

最もよく使用されるオプションは、イメージを中央レジストリに格納し、ドメイン・リソースのイメージ・プル・シークレットを設定することです:

  • レジストリ資格証明を含むKubernetes docker-registryシークレットは、イメージを参照するdomain.spec.image属性を持つドメイン・リソースと同じネームスペースに作成する必要があります。 たとえば、OCR資格証明を使用してシークレットを作成するには:

    $ kubectl create secret docker-registry SECRET_NAME \
      -n NAMESPACE_WHERE_YOU_DEPLOY_DOMAINS \
      --docker-server=container-registry.oracle.com \
      --docker-username=YOUR_USERNAME \
      --docker-password=YOUR_PASSWORD \
      --docker-email=YOUR_EMAIL
    
  • シークレットの名前は、domain.spec.imagePullSecretsフィールドを使用してこれらのドメイン・リソースに追加する必要があります。 例えば:

    ...
    spec:
    ...
      imagePullSecrets:
      - name: SECRET_NAME
    ...
    
  • Oracle Container Registryを使用している場合は、webインタフェースを使用して、デプロイするOracleソフトウェア・イメージのOracle Standard用語および制限を受け入れる必要があります。 これは、特定のイメージに対して1回のみ実行する必要があります。 「Oracle Container Registryからのイメージの取得」を参照してください。

レジストリにアクセスするためのKubernetesシークレットの作成の詳細は、Kubernetesのドキュメント「プライベート・レジストリからイメージをプル」を参照してください。

オプション2: イメージを中央レジストリに格納し、各ドメイン・ネームスペースにイメージ・プル・シークレットを使用してKubernetesサービス・アカウントを設定

プライベート・レジストリに格納されているイメージにアクセスするオプションは、イメージ・プル・シークレットのセットを使用してWebLogicドメインを実行しているネームスペースにKubernetes ServiceAccountを設定することで、作成される各Domainリソースに対してimagePullSecretsを設定する必要がなくなります(各リソース・インスタンスは、オペレータが管理しているWebLogicドメインを表すため):

  • 「オプション1」に示すように、Kubernetes docker-registryシークレットを作成します。

  • このイメージ・プル・シークレットを含めるように、ドメイン・リソースと同じネームスペースにあるServiceAccountを変更します:

    $ kubectl patch serviceaccount default -n domain1-ns \
    -p '{"imagePullSecrets": [{"name": "my-registry-pull-secret"}]}'
    

    このパッチ・コマンドは、イメージ・プル・シークレットの現在のリスト(存在する場合)を完全に置き換えることに注意してください。 複数のシークレットを含めるには、次の形式を使用: -p '{"imagePullSecrets": [{"name": "my-registry-pull-secret"}, {"name": "my-registry-pull-secret2"}]}'

レジストリにアクセスするためのKubernetes ServiceAccountの更新の詳細は、Kubernetesのドキュメント「ポッドのサービス・アカウントの構成」を参照してください。