第7章 既知の問題
7.1. 概要
OpenShift Container Platform クラスターのアップグレード時に、2 つの主なデータ移行が実行されます。最初は、現行バージョンの OpenShift Container Platform の実行中に生じ、2 つ目はアップグレードの完了後に生じます。
アップグレード前の移行に失敗した場合、アップグレードは中止し、クラスター管理者はアップグレードを再度実行する前にデータの不整合についての問題を解決する必要があります。アップグレード後の移行に失敗する場合には、アップグレードが完了しているため、クラスター管理者はデータ移行の問題をできるだけ早く解決する必要があります。ここでは、既知のデータの不整合の問題とその解決方法について説明します。
7.2. サービス定義の重複するポート
Service
オブジェクトにはより厳格な検証ルールがあります。その 1 つは重複した Ports
エントリーを許可しないルールです (例: Protocol
と Port
のペア)。(BZ#1563929)
エラー出力
TASK [Upgrade all storage] **************************************************************************************************************************************************************************** fatal: [test.linux.lan]: FAILED! => { "changed": true, "cmd": [ "oc", "adm", "--config=/etc/origin/master/admin.kubeconfig", "migrate", "storage", "--include=*", "--confirm" ], "delta": "0:07:06.574833", "end": "2018-04-03 11:22:07.834827", "failed_when_result": true, "msg": "non-zero return code", "rc": 1, "start": "2018-04-03 11:15:01.259994", } STDOUT error: Service "my-service" is invalid: spec.ports[5]: Duplicate value: api.ServicePort{Name:"", Protocol:"TCP", Port:8500, TargetPort:intstr.IntOrString{Type:0, IntVal:0, StrVal:""}, NodePort:0} summary: total=37768 errors=1 ignored=0 unchanged=37767 migrated=0 info: to rerun only failing resources, add --include=services error: 1 resources failed to migrate
この問題を解決するには、以下を実行します。
-
クラスター管理者として CLI にログインし、エラーに一覧表示されている
Service
オブジェクトを検査します。 -
重複したポートを削除するためにオブジェクトの
.spec.ports
を編集します。この際、.spec.ports[*].name
と.spec.ports[*].port
は一意である必要があることに留意してください。