HOME製品情報OpenShiftが選ばれる理由他のKubernetesディストリビューションとのOpenShiftの優位性
コンテナと RHEL CoreOS
OpenShift には CoreOS や、ミドルウェア・ライブラリのエンタイトルメントも含まれているため、UBIイメージを使用する事で OSレイヤーからミドルウェアまでの一括したサポートを受ける事ができます。
実運用のための拡張機能
OpenShift では、実際の Kuberentes 運用であると便利な機能を追加機能として提供しています。
SCC (Security Context Constrain)[1]
Namespace 単位で root権限を制限したり(デフォルト)、使用する SELinux context、secomp profile等を設定する機能。この機能を使用して、OpenShift は、デフォルトでは、rootless の Podしか実行できない設定になっておりセキュリティを高めてます。
Kuberenetes の同様の機能である PSP (Pod Security Policy)は、1.21 (April 2021)でGAに至らずにDeprecated1.22から、後継となる PodSecurity Admission のアルファがはじまっています。
Project / Template [2]
Project (= Namespace の拡張) を実装。デフォルトで Project を作成する時に、Template に定義された デフォルトのLimitRange / ResourceQuota / NetworkPolicy / RBAC を適用し、自動でNamespace 毎のリソースの使用制限を適用できます。例えば、この機能により、Project 作成時の管理者による Limit Range / NetworkPolicy 等の個別制限適用の手間を省く事ができます。
ClusterResourceQuota[3]
同一ラベル、アノテーションを持つ複数のプロジェクトを統合して Quota を設定するためのオブジェクト。複数のプロジェクトをまたいで作成できるオブジェクトの数を制限したい時に使用できます。
EgressNetworkPolicy(OpenShift SDN)[4] / EgressFirewall(OVN-Kubernetes) [5] (※1)
Cluster管理者が、Cluster外部のホストやサブネットに対する Pod のアクセス許可/不許可を設定。Pod を特定のホストにしかアクセスさせたくないような要件で使用できます。
Egress Router Pod (OpenShift SDN)[6] / EgressIP (OVN-Kubernetes)[7] (※2)
Podからの特定の外部の宛先にアクセスする場合のソースIPアドレスを、決まった IP に固定する機能。
Cluster外部のサービスが特定のIPからのアクセスしか許可してないような構成時に使用できます(AWS/Azure 等の Cloud Providerでは 構成により使用できない場合があります)。
Over The Air Update [8]
UI、もしくはCLIの一度の操作だけで、Clusterのアップデートを自動で順番を守りながら実行する機能。
Kubernetesでは、コンポーネント毎に順番を守りつつ、各ノードを一つづつアップグレードしていく必要がありますが、OpenShift では、OpenShiftが独自に追加したコンポーネントや、Node も含めてワンクリックで自動アップデートを行う事ができます。
MachingeConfig Operator [9]
Kubneretes としては管理外の扱いである、Node のOSやコンテナランタイムの更新等を、OpenShift側から管理する機構です。
新しい Node を追加した時に他の Nodeと同じ構成の Node を自動構成してくれます。また OpenShift (Kubernetes 含む)部分の更新と連動して、Node の OS (CoreOS) の更新も行えるようになっています。
Image Stream [10]
OpenShift で追加されている Image のタグ付け方法です。通常、image:latest のような同じ「コンテナ:タグ名」のままコンテナを更新しても、名前が同じであると Deployment 等の更新は発生しませんが、Image Stream を使う事で、同じ「コンテナ:タグ名」でもコンテナイメージのハッシュ値をチェックしてコンテナイメージを更新させる事ができます。
OpenShift Web Console [11]
たくさんある OpenShfit の機能を使いこなせるように、専用の Web User Interface を提供しています。管理者向け、開発者向けの Interface がそれぞれ用意されています。
- ※1
- OpenShift 4.8時点で CNI としてOpenShift SDN か、ONV-Kubernetes かが選択できる。kind: EgressFirewall は、OVN コミニュティの OVN-Kubernetes レポジトリで開発されている Custom Resource.
- ※2
- 機能の区分けが複雑なので詳細はマニュアルを参照下さい。サポートの制限はありますが、Egress Router Pod は、OVN-Kuberentes でも使用できます。
About the OVN-Kubernetes network provider - OVN-Kubernetes default CNI network provider | Networking | OpenShift Container Platform 4.8
OTA (Over The Air Update)
Kubernetesのバージョンアップ
コンポーネントや構成によって考慮点が変わるので、コンポーネントの既存のバージョンを確認し、アップグレードを計画する必要があります。
OpenShiftのバージョンアップ
アップグレード可能なパスのみ提示
アップグレード・ボタンをクリックするだけ
Over The Air Update の範囲
-
- Kubernetes 本体
- OpenShift が追加したコンポーネント
- Core OS
- 全てが同時にアップデートされる
Kubernetes のリリースサイクルの変更
- Kubernetes 1.22 ( 2021 年 8月 GA) 移行のスケジュールの変更
- 2020年は COVIDが有りリリースサイクルも延長
- Kubernetes のプロジェクトも成熟
- 年に4回のサイクルを3回へ
- 1.19以降は、1 year のサポート期間(※1)
- 2021 年のリリース・スケジュール
- 1.23 (December 07)
- 2022 年のリリース・スケジュール
-
1.24 (Apri 12)
1.25 (August 09)
1.26 (December 06)
Kubernetesより長いサポート
OpenShift Container Platform v4 LifeCycle
OpenShift 4.7 以降では全てのマイナーバージョンで
- GA日から約6ヶ月のフルサポートがあります。(※1)
- フルサポート終了後は、約12ヶ月のメンテナンスサポートがあります。(※2)
- 上記を合算して、合計18ヶ月 (フル + メンテナンス) のサポートの期間が提供されます。
- ※1
- もしくは、次のマイナーバージョリリースの GAの90日後と比較して長い方。
- ※2
- フルサポートの期間が6ヶ月を超える場合は、フルサポート + メンテナンスサポートの合計が 18ヶ月になるように調整されます。
OpenShift 4.8以降は、偶数のマイナーバージョン(例:4.8, 4.10, 4.12) をEUS(Extended Update Support)として扱います。
4.8以降のEUSバージョンでは、 Worker Node に関しては、EUSバージョン間の直接のアップグレード手順が提供され、ユーザーアプリにあたえるリブートなどの影響を最小にする事が可能です。
また Premium Support では、Upgrade の4日以上前であれば、「プロアクティブ・ケース」 (※1)を上げて Support と事前の情報共有を行う事が可能です。
- ※1
- How to open a PROACTIVE case for patching or upgrading Red Hat OpenShift Container Platform - Red Hat Customer Portal
参考1: LifeCycle ポリシーに関する公式ドキュメント:https://access.redhat.com/support/policy/updates/openshift
参考2: Lifecycle 変更に関するブログ (2021/10/18):Time Is On Your Side: A Change to the OpenShift 4 Lifecycle (redhat.com)
OpenShiftのマルチプラットフォーム対応
OpenShift は、Open な性質を生かして、様々な環境に対応しています。
様々なのクラウドプロバイダー上でも、Kuberentes サービスとして使用されています。
- ※1
- クラウドベンダーの Platform に RedHatが OpenShift をインストールし、Managed サービスを提供する形態
- ※2
- クラウドベンダーのサービスとしてUI等が統合されていて、クラウドベンダーの Managed サービスとして販売されているもの。運用体制はサービスによって異なる。
- ※3
- ユーザーが自分でクラウドベンダー上に OpenShiftをインストールする方法