検索

1.2. CRI-O の取得

download PDF

CRI-O は、スタンドアロンのコンテナーエンジンとしてはサポートされていません。CRI-O は、OpenShift Container Platform などの Kubernetes インストールのコンテナーエンジンとして使用する必要があります。Kubernetes または OpenShift Container Platform を使用せずにコンテナーを実行するには、podman を使用します。

CRI-O コンテナーエンジンを OpenShift Container Platform クラスターで使用できるように設定するには、以下を実行できます。

  • CRI-O を新規の OpenShift Container Platform クラスターと共にインストールする。または、
  • ノードを既存クラスターに追加し、CRI-O をそのノードのコンテナーエンジンとして特定します。CRI-O および Docker ノードの両方を同じクラスター上に配置できます。

次のセクションでは、新しい OpenShift Container Platform クラスターと共に CRI-O をインストールする方法について説明します。

1.2.1. 新規の OpenShift Container Platform クラスターと共に CRI-O をインストールする

CRI-O は、インストール時にノードごとに OpenShift Container Platform ノードのコンテナーエンジンとして選択できます。OpenShift Container Platform のインストール時に CRI-O コンテナーエンジンを有効化することについて、知っておくべき点を以下にいくつか示します。

  • 以前は、ノードで CRI-O を使用するには Docker コンテナーエンジンも利用可能な状態である必要がありました。OpenShift Container Platform 3.10 以降では、Docker コンテナーエンジンは、すべての場合で必要なくなりました。現在は、CRI-O のみのノードを OpenShift Container Platform クラスターに含めることができます。ただし、ビルドおよびプッシュ操作を実行するノードには、依然として Docker コンテナーエンジンを CRI-O と共にインストールしておく必要があります。
  • CRI-O コンテナーを使用した CRI-O の有効化はサポートされなくなりました。CRI-O の rpm ベースのインストールが必要です。

以下の手順では、Configuring Your Inventory File で説明されているような Ansible インベントリーファイルを使用して、OpenShift Container Platform をインストールしていることを前提としています。

注記

コンテナーエンジンとして CRI-O を使用する OpenShift Container Platform ノードの個別のマウントポイントとして /var/lib/docker を設定しないでください。CRI-O ノードのデプロイ時に、インストーラーは /var/lib/docker/var/lib/containers へのシンボリックリンクにしようとします。このアクションは、既存の /var/lib/docker を削除してシンボリックリンクを作成することはできないために失敗します。

  1. OpenShift Container Platform Ansible Playbook がインストールされた状態で、適切なインベントリーファイルを編集して CRI-O を有効にします。
  2. 選択したインベントリーファイルで CRI-O 設定を見つけます。OpenShift Container Platform のインストール時に CRI-O コンテナーエンジンをノードにインストールできるようにするには、Ansible インベントリーファイルの [OSEv3:vars] セクションを見つけます。CRI-O 設定のセクションには、以下が含まれる場合があります。

    [OSEv3:vars]
    ...
    # Install and run cri-o.
    #openshift_use_crio=False
    #openshift_use_crio_only=False
    # The following two variables are used when openshift_use_crio is True
    # and cleans up after builds that pass through docker. When openshift_use_crio is True
    # these variables are set to the defaults shown. You may override them here.
    # NOTE: You will still need to tag crio nodes with your given label(s)!
    # Enable docker garbage collection when using cri-o
    #openshift_crio_enable_docker_gc=True
    # Node Selectors to run the garbage collection
    #openshift_crio_docker_gc_node_selector={'runtime': 'cri-o'}
  3. CRI-O 設定を有効にします。CRI-O のみを有効にするか、または Docker と共に CRI-O を有効にするかのいずれかを選択できます。以下の設定は、ノードのコンテナーエンジンとしての CRI-O および Docker を許可し、overlay2 ストレージを持つノードで Docker ガべージコレクションを有効にします。

    注記

    CRI-O ノードでコンテナーをビルドできるようにするには、Docker コンテナーエンジンをインストールしておく必要があります。CRI-O のみのノードが必要な場合は、コンテナービルドを実行する他のノードを指定するだけで、可能となります。

    [OSEv3:vars]
    ...
    openshift_use_crio=True
    openshift_use_crio_only=False
    openshift_crio_enable_docker_gc=True
  4. 各ノードの openshift_node_group_name を CRI-O ランタイム用に kubelet を設定する configmap に設定します。すべてのデフォルトノードグループに対応する CRI-O configmap があります。Defining Node Groups and Host Mappings では、ノードグループおよびマッピングを詳細に説明しています。

    [nodes]
    ocp-crio01 openshift_node_group_name='node-config-all-in-one-crio'
    ocp-docker01 openshift_node_group_name='node-config-all-in-one'

これにより、必要な CRI-O パッケージが自動的にインストールされます。

結果として作成される OpenShift Container Platform 設定は、OpenShift Container Platform インストールのノードで CRI-O コンテナーエンジンを実行します。oc コマンドを使用してノードのステータスを確認し、CRI-O を実行しているノードを特定します。

$ oc get nodes -o wide
NAME         STATUS  ROLES                  AGE  ...   CONTAINER-RUNTIME
ocp-crio01   Ready   compute,infra,master   16d  ...   cri-o://1.11.5
ocp-docker01 Ready   compute,infra,master   16d  ...   docker://1.13.1
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.