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.6.11.4. VMware 仮想マシンまたはテンプレートのインポート
単一の VMware 仮想マシンまたはテンプレートを OpenShift Container Platform クラスターにインポートできます。
VMware テンプレートをインポートする場合、ウィザードはテンプレートに基づいて仮想マシンを作成します。
VMware 仮想マシンまたはテンプレートのインポートはテクノロジープレビュー機能です。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してください。
インポートプロセスでは、VMware Virtual Disk Development Kit (VDDK) を使用して VMware 仮想ディスクをコピーします。VDDK SDK をダウンロードし、VDDK イメージをビルドし、イメージレジストリーにイメージをアップロードしてからこれを v2v-vmware
ConfigMap に追加できます。
仮想マシンウィザードで VMware 仮想マシンをインポートしてから、仮想マシンのネットワーク名を更新することができます。
6.11.4.1. VDDK イメージのイメージレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
内部 OpenShift Container Platform イメージレジストリーまたは VDDK イメージのセキュアな外部イメージレジストリーのいずれかを設定できます。
VDDK イメージをパブリックリポジトリーに保存すると、VMware ライセンスの条件に違反する可能性があります。
6.11.4.1.1. 内部イメージレジストリーの設定 リンクのコピーリンクがクリップボードにコピーされました!
イメージレジストリー Operator 設定を更新して、ベアメタルに内部 OpenShift Container Platform イメージレジストリーを設定できます。
6.11.4.1.1.1. イメージレジストリーの管理状態の変更 リンクのコピーリンクがクリップボードにコピーされました!
イメージレジストリーを起動するには、イメージレジストリー Operator 設定の managementState
を Removed
から Managed
に変更する必要があります。
手順
ManagementState
イメージレジストリー Operator 設定をRemoved
からManaged
に変更します。以下は例になります。oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11.4.1.1.2. ベアメタルの場合のレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。
前提条件
- クラスター管理者のパーミッション。
- ベアメタル上のクラスター。
Red Hat OpenShift Container Storage などのクラスターのプロビジョニングされた永続ストレージ。
重要OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの
ReadWriteOnce
アクセスをサポートします。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteMany
アクセスが必要です。- 100Gi の容量が必要です。
手順
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/cluster
リソースのspec.storage.pvc
を変更します。注記共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。
レジストリー Pod がないことを確認します。
oc get pod -n openshift-image-registry
$ oc get pod -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ストレージタイプが
emptyDIR
の場合、レプリカ数が1
を超えることはありません。レジストリー設定を確認します。
oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
storage: pvc: claim:
storage: pvc: claim:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow claim
フィールドを空のままにし、image-registry-storage
PVC の自動作成を可能にします。clusteroperator
ステータスを確認します。oc get clusteroperator image-registry
$ oc get clusteroperator image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11.4.1.2. 内部イメージレジストリーへのアクセスの設定 リンクのコピーリンクがクリップボードにコピーされました!
レジストリーをルートで公開して、クラスター内から OpenShift Container Platform 内部レジストリーに直接アクセスできます。
6.11.4.1.2.1. クラスターからレジストリーへの直接アクセス リンクのコピーリンクがクリップボードにコピーされました!
クラスター内からレジストリーにアクセスすることができます。
手順
内部ルートを使用して、クラスターからレジストリーにアクセスします。
ノードのアドレスを取得することにより、ノードにアクセスします。
oc get nodes oc debug nodes/<node_address>
$ oc get nodes $ oc debug nodes/<node_address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ノード上で
oc
やpodman
などのツールにアクセスするには、以下のコマンドを実行します。chroot /host
sh-4.2# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクセストークンを使用してコンテナーイメージレジストリーにログインします。
oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443 podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
sh-4.2# oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443 sh-4.2# podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようなログインを確認するメッセージが表示されるはずです。
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ユーザー名には任意の値を指定でき、トークンには必要な情報がすべて含まれます。コロンが含まれるユーザー名を指定すると、ログインに失敗します。
イメージレジストリー Operator はルートを作成するため、
default-route-openshift-image-registry.<cluster_name>
のようになります。レジストリーに対して
podman pull
およびpodman push
操作を実行します。重要任意のイメージをプルできますが、system:registry ロールを追加している場合は、各自のプロジェクトにあるレジストリーにのみイメージをプッシュすることができます。
次の例では、以下を使用します。
Expand コンポーネント 値 <registry_ip>
172.30.124.220
<port>
5000
<project>
openshift
<image>
image
<tag>
省略 (デフォルトは
latest
)任意のイメージをプルします。
podman pull name.io/image
$ podman pull name.io/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規イメージに
<registry_ip>:<port>/<project>/<image>
形式でタグ付けします。プロジェクト名は、イメージを正しくレジストリーに配置し、これに後でアクセスできるようにするために OpenShift Container Platform のプル仕様に表示される必要があります。podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
$ podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記指定されたプロジェクトについて
system:image-builder
ロールを持っている必要があります。このロールにより、ユーザーはイメージの書き出しやプッシュを実行できます。そうでない場合は、次の手順のpodman push
は失敗します。テストするために、新規プロジェクトを作成してイメージをプッシュできます。新しくタグ付けされたイメージをレジストリーにプッシュします。
podman push image-registry.openshift-image-registry.svc:5000/openshift/image
$ podman push image-registry.openshift-image-registry.svc:5000/openshift/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11.4.1.2.2. セキュアなレジストリーの手動による公開 リンクのコピーリンクがクリップボードにコピーされました!
クラスター内から OpenShift Container Platform レジストリーにログインするのではなく、外部からレジストリーにアクセスできるように、このレジストリーをルートに公開します。この方法を使うと、ルートアドレスを使ってクラスターの外部からレジストリーにログインし、ルートのホストを使ってイメージにタグ付けしたり、イメージをプッシュしたりできます。
前提条件:
以下の前提条件は自動的に実行されます。
- レジストリー Operator のデプロイ。
- Ingress Operator のデプロイ。
手順
configs.imageregistry.operator.openshift.io
リソースで DefaultRoute
パラメーターを使用するか、またはカスタムルートを使用してルートを公開することができます。
DefaultRoute
を使用してレジストリーを公開するには、以下を実行します。
DefaultRoute
をTrue
に設定します。oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman
でログインします。HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') podman login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false $HOST
$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') $ podman login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false $HOST
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--tls-verify=false
は、ルートのクラスターのデフォルト証明書が信頼されない場合に必要になります。Ingress Operator で、信頼されるカスタム証明書をデフォルト証明書として設定できます。
カスタムルートを使用してレジストリーを公開するには、以下を実行します。
ルートの TLS キーでシークレットを作成します。
oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
$ oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この手順はオプションです。シークレットを作成しない場合、ルートは Ingress Operator からデフォルトの TLS 設定を使用します。
レジストリー Operator では、以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記レジストリーのルートのカスタム TLS 設定を指定している場合は
secretName
のみを設定します。
6.11.4.1.3. 外部イメージレジストリーへのアクセスの設定 リンクのコピーリンクがクリップボードにコピーされました!
VDDK イメージの外部イメージレジストリーを使用する場合、外部イメージレジストリーの認証局を OpenShift Container Platform クラスターに追加できます。
オプションで、Docker 認証情報からプルシークレットを作成し、これをサービスアカウントに追加できます。
6.11.4.1.3.1. クラスターへの認証局の追加 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順でイメージのプッシュおよびプル時に使用する認証局 (CA) をクラスターに追加することができます。
前提条件
- クラスター管理者の権限があること。
-
レジストリーの公開証明書 (通常は、
/etc/docker/certs.d/
ディレクトリーにあるhostname/ca.crt
ファイル)。
手順
自己署名証明書を使用するレジストリーの信頼される証明書が含まれる ConfigMap を
openshift-config
namespace に作成します。それぞれの CA ファイルについて、 ConfigMap のキーがhostname[..port]
形式のレジストリーのホスト名であることを確認します。oc create configmap registry-cas -n openshift-config \ --from-file=myregistry.corp.com..5000=/etc/docker/certs.d/myregistry.corp.com:5000/ca.crt \ --from-file=otherregistry.com=/etc/docker/certs.d/otherregistry.com/ca.crt
$ oc create configmap registry-cas -n openshift-config \ --from-file=myregistry.corp.com..5000=/etc/docker/certs.d/myregistry.corp.com:5000/ca.crt \ --from-file=otherregistry.com=/etc/docker/certs.d/otherregistry.com/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターイメージの設定を更新します。
oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-cas"}}}' --type=merge
$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"registry-cas"}}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.11.4.1.3.2. Pod が他のセキュリティー保護されたレジストリーからイメージを参照できるようにする設定 リンクのコピーリンクがクリップボードにコピーされました!
Docker クライアントの .dockercfg
$HOME/.docker/config.json
ファイルは、セキュア/非セキュアなレジストリーに事前にログインしている場合に認証情報を保存する Docker 認証情報ファイルです。
OpenShift Container Platform の内部レジストリーにないセキュリティー保護されたコンテナーイメージをプルするには、Docker 認証情報でプルシークレットを作成し、これをサービスアカウントに追加する必要があります。
手順
セキュリティー保護されたレジストリーの
.dockercfg
ファイルがすでにある場合は、以下を実行してそのファイルからシークレットを作成できます。oc create secret generic <pull_secret_name> \ --from-file=.dockercfg=<path/to/.dockercfg> \ --type=kubernetes.io/dockercfg
$ oc create secret generic <pull_secret_name> \ --from-file=.dockercfg=<path/to/.dockercfg> \ --type=kubernetes.io/dockercfg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
$HOME/.docker/config.json
ファイルがある場合は以下を実行します。oc create secret generic <pull_secret_name> \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
$ oc create secret generic <pull_secret_name> \ --from-file=.dockerconfigjson=<path/to/.docker/config.json> \ --type=kubernetes.io/dockerconfigjson
Copy to Clipboard Copied! Toggle word wrap Toggle overflow セキュアなレジストリーについての Docker 認証情報ファイルがまだない場合には、以下のコマンドを実行してシークレットを作成することができます。
oc create secret docker-registry <pull_secret_name> \ --docker-server=<registry_server> \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
$ oc create secret docker-registry <pull_secret_name> \ --docker-server=<registry_server> \ --docker-username=<user_name> \ --docker-password=<password> \ --docker-email=<email>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のイメージをプルするためのシークレットを使用するには、そのシークレットをサービスアカウントに追加する必要があります。この例では、サービスアカウントの名前は、Pod が使用するサービスアカウントの名前に一致している必要があります。
default
はデフォルトのサービスアカウントです。oc secrets link default <pull_secret_name> --for=pull
$ oc secrets link default <pull_secret_name> --for=pull
Copy to Clipboard Copied! Toggle word wrap Toggle overflow