Kubernetes vs OpenShift: What’s The Difference?

Kubernetes vs OpenShift: 何が違うのか?

  • ITOps・DevOps
6分で読めます 更新日 Nov 3, 2020

ポイント: KubernetesとOpenShiftは、コンテナオーケストレーションの重要なプラットフォームで、それぞれ独自の機能を提供しています。Kubernetesは柔軟でオープンソースのフレームワークであり、OpenShiftはKubernetesに基づいて構築され、追加のサポートと統合ツールを提供する商業ソリューションです。

  • Kubernetesはさまざまなクラウドプラットフォームにおけるデプロイメントの柔軟性に優れています。
  • OpenShiftは、使いやすさとセキュリティを向上させる組み込みコンポーネントを含んでいます。

コンテナオーケストレーションに関しては、KubernetesとOpenShiftが無視できない主要な選択肢です。これら2つを比較する際には、相互に補完し合うものであることを念頭に置いてください。実際、KubernetesはOpenShiftプラットフォームの重要なコンポーネントです。

さらに、堅牢でスケーラブルな構成のおかげで、両方の技術は以下の可能性を提供します:

  • 大規模なアプリケーション開発
  • 管理
  • デプロイメント

この記事では、これら2つの人気のあるコンテナオーケストレーションプラットフォームを分析し、基本的な違いを探ります。

Kubernetes

Kubernetesロゴ

GoogleはKubernetesを、アプリケーションワークロードの自動デプロイメント、スケーリング、管理のためのサービスを管理できるオープンソースでポータブルなContainer-as-a-Serviceプラットフォームとして開発しました。Cloud Native Computing Foundation(CNCF)によって採用されたKubernetesは、以下のような既成の機能を提供します:

  • プロセス自動化
  • 負荷分散
  • 自己監視
  • ストレージオーケストレーション

OpenShift

Red Hatロゴ

Red HatのOpenShiftは、Platform-as-a-Serviceおよびコンテナオーケストレーションエンジンとして機能するクラウドベースのコンテナプラットフォームです。OpenShiftの中心には、Kubernetesプラットフォームを活用してDockerコンテナを管理するオープンソースツールがあります。

OpenShiftを使用すると、開発者は統合開発環境(IDE)でコンテナ化アプリケーションをデプロイし、Kubernetesを使用してそれらを管理できます。

OpenShift

KubernetesとOpenShiftの比較

KubernetesとOpenShiftはどちらもApache 2.0ライセンスのもとで動作し、大規模なアプリケーション管理とデプロイメントを支援します。ただし、これらの技術が機能を提供する方法には基本的な違いがあります。

それぞれの主な機能を比較してみましょう。

KubernetesプロジェクトとOpenShift製品

Kubernetesはオープンソースフレームワークプロジェクトとして作成されました。K8sは、世界の開発者コミュニティのユーザー間の継続的なコラボレーションによって管理されています。これは、サポートが自己責任であることを意味しますが、オープンソースコミュニティ内での仲間の知識やコラボレーションからも恩恵を受けます。

OpenShiftは、以下の2つの形態で提供されています:

  • 商業製品(OpenShift Container Platform)
  • パブリッククラウド(OpenShift OnlineおよびOpenShift Dedicated)

OpenShift Container Platformは、Red Hat Inc.の開発者によって開発、管理、運営されており、管理とインフラストラクチャ管理のための有料サブスクリプションを伴います。これは、ユーザーが定期的なアップグレードを受ける専用サポートを受けることを意味します。一方、OKDとして知られるOpenShiftのオープンソース版は、自己サポートに制限されたコミュニティ版プラットフォームです。

互換性とインストール

Kubernetesの人気と使用例が増えるにつれて、Kubernetesに互換性のあるツールのリストは爆発的に増加しました。これは、プラットフォーム、複雑さ、アップグレードに関して選択の自由を提供するため、開発者にとって重要な考慮事項です。

さらに重要なことに、Kubernetesの広範な受け入れは、KubernetesがManaged Servicesを3つの主要なパブリッククラウドプラットフォームで提供している事実にもあります:

  • GoogleのGKE
  • AzureのAKS
  • Amazon AWSのEKS

これに対して、OpenShiftは3つのLinuxディストリビューションでのみインストールすることができるため、インストールオプションは限られています:

  • OpenShift 3の場合、Red Hat AtomicまたはRed Hat Enterprise Linux(RHEL)を使用する必要があります。
  • OpenShift 4をインストールするには、RedHat CoreOSが必要です。
  • オープンソース版(OKD)をインストールするには、CentOSまたはRHELが必要です。

Kubernetesには認証と承認のための組み込み機能が欠けています。これは、セキュリティのためのトークンを使用した手動での認証手続きの作成を必要とします。Kubernetesのセキュリティプロトコルは明確ではなく、Kubernetesクラスター内のトラフィックはデフォルトで暗号化されていないため、アウトオブボックスのKubernetesインスタンスは通常、攻撃ベクトルに対してより脆弱であると見なされます。

OpenShiftは厳格で明確なセキュリティポリシーを持っています。たとえば、OpenShiftはDockerコンテナの実行を単純なイメージとして制限しています。OpenShiftで最低限のセキュリティレベルを維持するには、特定の管理者権限が必要です。さらに、OpenShiftは認証と承認を容易にするための統合されたサーバーを提供します。

KubernetesのWebインターフェースは複雑であり、初心者には推奨されていません。Kubernetes Web GUIにアクセスするには、Kubernetesダッシュボードをインストールし、ローカルマシンのポートアドレスをクラスターサーバーに転送する必要があります。ダッシュボードにはログインページがないため、認証と承認を容易にするためにベアラートークンを作成する必要もあります。

対照的に、OpenShiftはワンタッチログインページを持つ直感的なWebコンソールを提供します。このコンソールは、リソースを簡単に変更、追加、削除できるシンプルなフォームベースのインターフェースを提供します。また、クラスターの役割、プロジェクト、およびサーバーを視覚化するのも簡単です。

Kubernetesは、以下のプラットフォームでデプロイ可能なオープンソースフレームワークです:

  • 主要なパブリッククラウドプラットフォーム:Azure、AWS、またはGCP
  • UbuntuやDebianを含む任意のLinuxディストリビューション

Kubernetesコンテナをデプロイするには、同時更新を簡単に処理できるKubernetesオブジェクトが必要です。

OpenShiftをデプロイするには、RHEL、Red Hat CoreOS、またはCentOS Linuxディストリビューションが必要です。デプロイメントはDeploymentConfigコマンドを使用して行われ、コントローラーを使用することはできず、専用のポッドロジックを介して使用できます。

DeploymentConfigはKubernetesオブジェクトのように同時更新をサポートしていませんが、OpenShiftのデプロイメントにはバージョニングや自動デプロイメントトリガーなどの利点があります。

継続的デリバリー/継続的インテグレーション

Kubernetesは、アウトオブボックスで包括的なCI/CDソリューションを提供しません。ただし、自動モニタリング、テスト、CIサーバーなどのツールと組み合わせることで、完全なCI/CDパイプラインを作成できます。さらに、CircleCIなどのサードパーティのプラグインを使用することで、KubernetesでのCI/CDパイプラインをシームレスに構築できます。

OpenShiftは完全なCI/CDソリューションではありませんが、CIサーバーとして機能する統合された認定Jenkinsコンテナを持っています。次の図は、Jenkins(CI/CDエンジン)、Git、Nexusリポジトリ、SonarQube(SAST)で構成される典型的なCI/CDパイプラインを示しています:

OpenShiftフローチャート

イメージレジストリ管理

Kubernetesでは独自のDockerレジストリを構成できますが、プラットフォームには統合されたイメージレジストリがありません。ただし、Kubernetesはプライベートレジストリからイメージをプルして独自のポッドを作成することを許可します。

対照的に、OpenShiftには組み込みのイメージレジストリがあり、DockerHubやRed Hatとシームレスに連携します。開発者はイメージストリームを使用して、コンテナイメージを簡単に検索および管理できます。

Kubernetesは、同時に複数のアップグレードをサポートします。アップグレードは簡単で、kubeadm upgrade コマンドを呼び出すだけで最新のバージョンを取得できます。新しいバージョンにアップグレードする前に、既存のインストールファイルをバックアップすることを常にお勧めします。

OpenShiftは自動的に複数の同時アップデートをサポートしていません。最新バージョンのOpenShiftをインストールするには、Red Hat Enterprise Linuxパッケージ管理システムにアクセスする必要があります。

K8s vs OpenShiftの要約

KubernetesとOpenShiftは、コンテナ化アプリケーションの大規模デプロイメントに優れた選択肢です。Kubernetesは、柔軟なデプロイメントオプションがあるため、大多数の組織に人気がありますが、OpenShiftは専用サポートを提供し、アプリケーションコンテナ化を簡素化する多くの組み込みコンポーネントがあります。これにより、AgileとDevOpsの両方の方法論で人気があります。

Kubernetesは、常に更新が求められる高需要のアプリケーションにとっては間違いなく好まれる選択肢です。一方、OpenShiftは、常に専用のサポートが必要な企業にとって完璧な包括的ソリューションを提供します。

これらのいずれかまたは他のオーケストレーションプラットフォームを好むユースケースを共有したいですか?お知らせください!

追加リソース

このトピックに関する詳細は、これらのリソースを探索してください:

これらの投稿は私自身のものであり、必ずしもBMCの立場、戦略、または意見を代表するものではありません。

ITOps・DevOpsの関連記事

BMCからのさらなる情報に興味がありますか?

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーションに関する月刊メールです:研究、顧客ストーリー、製品ニュース、イベント。

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ザ・ブリーフに登録しました

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーション—BMC AMIおよびControl-M—に関するアナリストの研究、顧客の展開、両者にわたるイベントを網羅しています。