12.3.9. カスタムのレジストリー証明書またはルーター証明書の再デプロイ
再デプロイされた CA が原因でノードが退避させられると、レジストリー Pod とルーター Pod が再起動されます。レジストリー証明書とルーター証明書を新規 CA と共に再デプロイしなかった場合は、それらが古い証明書を使用してマスターにアクセスできなくなるため、停止状態が生じることがあります。
12.3.9.1. 手動によるレジストリー証明書の再デプロイ リンクのコピーリンクがクリップボードにコピーされました!
レジストリー証明書を手動で再デプロイするには、新規レジストリー証明書を registry-certificates
という名前のシークレットに追加してから、レジストリーを再デプロイする必要があります。
これ以降の手順では
default
プロジェクトに切り替えます。oc project default
$ oc project default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初にレジストリーを OpenShift Container Platform 3.1 以前で作成した場合は、環境変数が証明書を保存するために使用されている場合があります (この方法は現在は推奨されていません。 代わりにシークレットをご使用ください)。
以下のコマンドを実行し、
OPENSHIFT_CA_DATA
、OPENSHIFT_CERT_DATA
、およびOPENSHIFT_KEY_DATA
環境変数を探します。oc set env dc/docker-registry --list
$ oc set env dc/docker-registry --list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これらの環境変数が存在しない場合は、この手順を省略します。存在する場合は、以下の
ClusterRoleBinding
を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、以下のコマンドを実行して環境変数を削除します。
oc set env dc/docker-registry OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
$ oc set env dc/docker-registry OPENSHIFT_CA_DATA- OPENSHIFT_CERT_DATA- OPENSHIFT_KEY_DATA- OPENSHIFT_MASTER-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下の環境変数をローカルに設定し、後で使用するコマンドを単純化します。
REGISTRY_IP=`oc get service docker-registry -o jsonpath='{.spec.clusterIP}'` REGISTRY_HOSTNAME=`oc get route/docker-registry -o jsonpath='{.spec.host}'`
$ REGISTRY_IP=`oc get service docker-registry -o jsonpath='{.spec.clusterIP}'` $ REGISTRY_HOSTNAME=`oc get route/docker-registry -o jsonpath='{.spec.host}'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規レジストリー証明書を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible ホストインベントリーファイル (デフォルトで /etc/ansible/hosts) に最初に一覧表示されているマスターから
oc adm
コマンドを実行します。registry-certificates
シークレットを新規レジストリー証明書で更新します。oc create secret generic registry-certificates \ --from-file=/etc/origin/master/registry.crt,/etc/origin/master/registry.key \ -o json --dry-run | oc replace -f -
$ oc create secret generic registry-certificates \ --from-file=/etc/origin/master/registry.crt,/etc/origin/master/registry.key \ -o json --dry-run | oc replace -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーを再デプロイします。
oc rollout latest dc/docker-registry
$ oc rollout latest dc/docker-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow