2.8.11. RHBA-2019:1605 - OpenShift Container Platform 3.11.117 バグ修正の更新
発行日: 2019-06-26
OpenShift Container Platform リリース 3.11.117 が公開されました。この更新に含まれるパッケージおよびバグ修正は、RHBA-2019:1605 アドバイザリーにまとめられています。この更新に含まれるコンテナーイメージは、RHBA-2019:1606 アドバイザリーで提供されています。
リリース 3.11.117 には、新しいバージョンの 3.11.123 を含む openshift-ansible
パッケージが含まれます。これは想定範囲内で、クラスターの操作には影響しません。詳細は、Red Hat ソリューション を参照してください。
2.8.11.1. バグ修正
-
oc create route dry-run -o yaml
コマンドはルートオブジェクトを出力しませんでした。これは、ルートオブジェクトのコマンドラインへの出力を実装によって解決されています。(BZ#1418021) -
一部の
.operations
インデックスプロジェクトにはdefault openshift-
の値が付与されていました。これはkube-system
に変更されています。(BZ#1571190) ディレクターを使ってデプロイされた OpenShift 環境の場合、GlusterFS Playbook はそれぞれの実行用に新規の heketi シークレットを自動生成します。その結果、CNS デプロイメントでのスケールアウトまたは設定変更などの操作が失敗しました。回避策として、以下の手順を実行できます。
デプロイメント後に、heketi シークレットキーを取得します。マスターノードのいずれかでこのコマンドを使用します。
$ sudo oc get secret heketi-storage-admin-secret --namespace glusterfs -o json | jq -r .data.key | base64 -d
環境ファイルに、以下のようにパラメーターを該当する値に設定します。
openshift_storage_glusterfs_heketi_admin_key openshift_storage_glusterfs_registry_heketi_admin_key
この回避策により、CNS デプロイメントでのスケールアウトまたは設定変更などの操作は、パラメーターが手動で展開される限り正常に機能するようになりました。(BZ#1640382)
-
新規 CA の生成時に、ノード上の証明書は更新されず、準備可能な状態になりませんでした。今回のリリースにより redeploy-certificates Playbook は証明書をコピーし、ノードに加われるようになりました。CA の置き換え時のノードの状態は
NotReady
にならなくなりました。(BZ#1652746) - oc_adm_router Ansible モジュールは、重複する環境変数をルーター DeploymentConfig に追加する編集を許可しました。重複する環境変数を追加したルーター DeploymentConfig に対する編集を指定する Ansible インベントリーファイルは予期しない動作により DeploymentConfig を生成することがありました。編集によって環境変数がルーター DeploymentConfig に追加され、その名前の変数がすでに存在する場合、oc_adm_router モジュールは古い変数を削除できるようになりました。Ansible インベントリーファイルを使用して環境変数をルーター DeploymentConfig に追加することにより、動作が予測可能となり、ユーザーがデフォルトの環境変数設定を上書きできるようになりました。(BZ#1656487)
- マスター証明書を再デプロイする Playbook は Web コンソールのシークレットを更新しないため、Web コンソールが起動に失敗しました。Web コンソールのシークレットは、マスター証明書の再デプロイメント Playbook の実行時に再作成されるようになりました。(BZ#1667063)
-
ロギング Playbook は Ansible 2.7 と共に機能しませんでした。
include_role
およびimport_role
の動作がバージョン 2.6 と 2.7 との間で変更されることにより、ロギング関連の問題が生じました。その結果、-ops 接尾辞に関するエラーが ops クラスターでデプロイしない場合にも表示されました。これを回避するには、ロギング Playbook およびロールでimport_role
ではなくinclude_role
を使用できます。ロギング Ansible コードは Ansible 2.6 と Ansible 2.7 の両方で機能します。(BZ#1671315) - 複数のネットワークカードが存在する場合、予期しない DNS IP アドレスが OpenShift サービスによって選択されました。その結果、Pod からの DNS 要求は機能しませんでした。DNS に適切なデフォルト値が設定され、ルーティング可能なノード IP アドレスを取得するために kubelet が使用するのと同様のパターンが使用されるようになりました。(BZ#1680059)
- アップグレード時の初期化に長い時間を要しました。サニティーチェックで非効率的なコードを使用したホスト変数の検証が行われました。このコードは更新され、ホスト変数はクラスに保存されるようになりました。その結果、ホスト変数は毎回のチェックでコピーされなくなりました。アップグレード時のサニティーチェックおよび初期化の実行にかかる時間が削減されました。(BZ#1682924)
-
oreg_url
変数は、etcd イメージが非接続インストールでプルを実行できないために、Satellite を使用した非接続インストールで適切に機能しませんでした。osm_etcd_image
を実行して etcd イメージ URL を指定するためのガイダンスおよび各種サンプルが関連ドキュメントに追加されました。(BZ#1689796) -
ビルド Pod がエビクトされると、ビルドは
GenericBuildFailure
を報告しました。そのため、ビルドの失敗の原因を判別することが容易ではありませんでした。失敗の理由として新たにBuildPodEvicted
が追加されました。(BZ#1690066) - ノードは cadvisor インデックスが out of range エラーを出すことにより、パニックになることがありました。これは kube コードのバックポートにより解決されています。(BZ#1691023)
-
oauth-proxy
がユーザーのトークンを渡さないために Prometheus で ElasticSearch をモニターできませんでした。トークンが ElasticSearch に対して交換可能となり、適切なロールを持つユーザーが Prometheus でメトリクスを取得できるようになりました。(BZ#1695903) -
複数ノードのセットアップ時に、ノードのデプロイは
setup_dns.yaml
Playbook で失敗しました。これは、add_host
関数に渡されるホスト名を修正することで解決されました。複数ノードのセットアップが予想通りに実行されるようになりました。(BZ#1698922) -
マイナーバージョン間のアップグレードは、複数の OpenShift 変数がアップグレードプロセス時に使用されないことにより失敗しました。
api_port
およびその他の apiserver 関連の変数がアップグレードプロセスで読み込まれ、アップグレードが正常に実行されるようになりました。(BZ#1699696) -
ホストに UTC 以外のタイムゾーンが設定されている場合、証明書の日付は無効となり、ElasticSearch は起動に失敗しました。OpenShift ノードのタイムゾーンが UTC に設定されていない場合、現在の UTC 以外のタイムスタンプが
NotBefore
チェックに使用されます。タイムゾーンが UTC より進んでいる場合、NotBefore
チェックは失敗しました。ノードのタイムゾーンを問わず、UTC タイムスタンプは証明書の開始日に設定され、UTC 以外のタイムスタンプによる失敗は報告されなくなりました。(BZ#1702544) -
CustomResourceDefinition
エラーが混乱をもたらす仕方で表示され、トラブルシューティングを困難にしていました。CRD エラーメッセージが明確になり、CRD エラーのトラブルシューティングに使用できるようになりました。(BZ#1702693) -
Fluentd リモート syslog プラグインコードの、インスタンス変数の
@
が欠落していました。systemd-journald が誤った値をログに記録する場合があり、これにより、rsyslog の転送が失敗しました。これにより、rsyslog 転送に失敗していました。今回のリリースで、変数が修正され、リモートロギングが正常に実行されるようになりました。(BZ#1703904) -
長時間実行される Jenkins エージェントおよびスレーブ Pod で機能しないプロセスのエラーが生じ、Pod が停止されるまで多数のプロセスがプロセス一覧に表示されました。今回のリリースで
dumb-init
がデプロイされ、これらの機能しないプロセスをクリーンアップできるようになりました。(BZ#1707448) -
環境変数
JOURNAL_READ_FROM_HEAD
は空の文字列に設定されました。これにより、journald 入力のデフォルト値read_from_head
が true になりました。Fluentd の初回起動時にジャーナル全体が読み込まれます。これが原因で、システムメッセージが ElasticSearch および Kibana に表示されるまでに数時間の遅延が生じる可能性がありました。今回のリリースでは Fluentd が値が設定されているかどうか、また空でないかどうかをチェックするか、またはデフォルト値 false を使用するようになりました。Fluentd は、新規ノードで起動するとジャーナルの末尾から読み取られます。(BZ#1707524) -
スクリプト
99-origin-dns.sh
ではデフォルトフラグが enabled に設定されたため、デフォルトでデバッグレベルのメッセージのログが記録されました。これは解決されており、デバッグが false に設定されています。(BZ#1707799) - Kubernetes Pod テンプレートはランダムに削除されました。OpenShift Jenkins 同期プラグインが同じ名前を持つ ImagesStream および ConfigMap を処理する際の混乱により、このランダムな削除が生じました。あるタイプのイベントは、別のタイプ向けに作成された Pod テンプレートを削除できました。このプラグインは、指定された名前の Pod テンプレートを作成した API オブジェクトタイプを追跡するように変更されました。(BZ#1709626)
-
openshift_set_node_ip
変数が非推奨となった後も、インベントリーファイルのサンプルに組み込まれていました。これはファイルサンプルから削除され、openshift_set_node_ip
変数のコードがクリーンアップされるようになりました。(BZ#1712488) - 以前のバージョンでは、Web コンソールで一部の条件下にあるプロジェクト概要に、ステートフルセットの Scaling to…の値が誤って表示されることがありました。Web コンソールプロジェクトの概要でステートフルセットに必要なレプリカの値が適切に更新されるようになりました。(BZ#1713211)
-
以前のバージョンで、デプロイメント設定で作成された Pod に自動的に設定される
DeploymentConfig
ラベルを選択した場合に、サービスはプロジェクト概要に適切に表示されませんでした。現時点では、DeploymentConfig
ラベルを選択するサービスが概要に正常に表示されるようになりました。(BZ#1717028) -
クラスター autoscaler には Pod をエビクトするための
clusterrole
パーミッションがなく、その結果としてノードのスケーリングは自動的に実行されませんでした。エビクションのパーミッションが autoscaler クラスターロールに追加されました。Pod をエビクトし、ノードをスケールダウンできるようになりました。(BZ#1718458) - egress IP を使用する Pod が応答しない外部ホストとの通信を試行する場合、egress IP モニターコードは egress IP をホストするノードが応答していないものと誤って解釈していました。高可用性 egress IP があるノードから別のノードに切り替わったと誤って見なされる可能性がありました。モニターリングコードは、egress ノードが応答しないケースと最終宛先が応答しないケースを区別できるようになりました。可用性の高い Egress IP のノード間の切り替えが不必要に行われなくなりました。(BZ#1718542)
-
openshift_facts
のリファクタリングにより MTU が適切に設定されませんでした。それが原因で、ホストはデフォルト以外の MTU 設定のネットワークで通信できませんでした。openshift_facts.py
スクリプトは、ホスト環境の MTU を適切に検出し、設定するように更新されました。ホストは、デフォルト以外の MTU とネットワーク上で適切に通信できるようになりました。(BZ#1720581)