2.5. レジストリー設定の拡張
2.5.1. レジストリー IP アドレスの維持 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform はサービス IP アドレスによって統合レジストリーを参照します。したがって docker-registry サービスを削除し、再作成しようとする場合、古い IP アドレスを新しいサービスで再利用するように調整すると、完全に透過的な移行が可能になります。新規 IP アドレスを取得することが避けられない場合は、マスターのみを再起動してクラスターの中断を最小限に抑えられます。
- アドレスの再利用
- IP アドレスを再利用するには、古い docker-registry サービスの IP アドレスを削除する前に保存し、新たに割り当てられた IP アドレスを、新しい docker-registry サービスに保存されているアドレスに置き換えるように調整します。
サービスの
clusterIP
を書き留めておきます。oc get svc/docker-registry -o yaml | grep clusterIP:
$ oc get svc/docker-registry -o yaml | grep clusterIP:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを削除します。
oc delete svc/docker-registry dc/docker-registry
$ oc delete svc/docker-registry dc/docker-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーの定義を registry.yaml に作成し、
<options>
を、たとえば 非実稼働環境での使用 のセクションの手順 3 で使用されているものなどに置き換えます。oc adm registry <options> -o yaml > registry.yaml
$ oc adm registry <options> -o yaml > registry.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
registry.yaml を編集し、そこで
Service
を検索して、clusterIP
を手順 1 で書き留めたアドレスに変更します。 変更した registry.yaml を使ってレジストリーを作成します。
oc create -f registry.yaml
$ oc create -f registry.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- マスターの再起動
- IP アドレスを再利用できない場合、古い IP アドレスを含む プル仕様 を使った操作は失敗します。クラスターの中断を最小限に抑えるには、マスターを再起動する必要があります。
master-restart api master-restart controllers
# master-restart api
# master-restart controllers
これで、古い IP アドレスを含む古いレジストリー URL がキャッシュからクリアされます。
クラスター全体を再起動すると、Pod に不要なダウンタイムが発生し、実質、キャッシュのクリアが行われないので、これは推奨していません。