Menu Close

3.4. CLI を使用したクラスターの更新

更新が利用可能な場合、OpenShift CLI (oc) を使用してクラスターを更新できます。

利用可能な OpenShift Container Platform アドバイザリーおよび更新については、カスタマーポータルの エラータのセクションを参照してください。

前提条件

  • お使いの更新バージョンのバージョンに一致する OpenShift CLI (oc) をインストールします。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインします。
  • jq パッケージをインストールします。

手順

  1. クラスターが利用可能であることを確認します。

    $ oc get clusterversion
    
    NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
    version   4.3.0     True        False         158m    Cluster version is 4.3.0
  2. 現在の更新チャネル情報を確認し、チャネルが stable-4.3に設定されていることを確認します。

    $ oc get clusterversion -o json|jq ".items[0].spec"
    
    {
      "channel": "stable-4.3",
      "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff",
      "upstream": "https://api.openshift.com/api/upgrades_info/v1/graph"
    }
    重要

    実稼働クラスターの場合、stable-* チャネルにサブスクライブする必要があります。

  3. 利用可能な更新を確認し、適用する必要のある更新のバージョン番号をメモします。

    $ oc adm upgrade
    
    Cluster version is 4.1.0
    
    Updates:
    
    VERSION IMAGE
    4.1.2   quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b
  4. 更新を適用します。

    • 最新バージョンに更新するには、以下を実行します。

      $ oc adm upgrade --to-latest=true 1
    • 特定のバージョンに更新するには、以下を実行します。

      $ oc adm upgrade --to=<version> 1
      1 1
      <version> は、直前のコマンドの出力から得られる更新バージョンです。
  5. クラスターバージョン Operator を確認します。

    $ oc get clusterversion -o json|jq ".items[0].spec"
    
    {
      "channel": "stable-4.3",
      "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff",
      "desiredUpdate": {
        "force": false,
        "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b",
        "version": "4.3.1" 1
      },
      "upstream": "https://api.openshift.com/api/upgrades_info/v1/graph"
    }
    1
    desiredUpdate スタンザの version 番号が指定した値と一致する場合、更新は進行中です。
  6. クラスターバージョン履歴で、更新のステータスをモニターします。すべてのオブジェクトの更新が終了するまでに時間がかかる可能性があります。

    $ oc get clusterversion -o json|jq ".items[0].status.history"
    
    [
      {
        "completionTime": null,
        "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b",
        "startedTime": "2019-06-19T20:30:50Z",
        "state": "Partial",
        "verified": true,
        "version": "4.1.2"
      },
      {
        "completionTime": "2019-06-19T20:30:50Z",
        "image": "quay.io/openshift-release-dev/ocp-release@sha256:b8307ac0f3ec4ac86c3f3b52846425205022da52c16f56ec31cbe428501001d6",
        "startedTime": "2019-06-19T17:38:10Z",
        "state": "Completed",
        "verified": false,
        "version": "4.1.0"
      }
    ]

    履歴には、クラスターに適用された最新バージョンの一覧が含まれます。この値は、CVO が更新を適用する際に更新されます。この一覧は日付順に表示され、最新の更新は一覧の先頭に表示されます。履歴の更新には、ロールアウトが完了した場合には Completed と表示され、更新が失敗したか、または完了しなかった場合には Partial と表示されます。

    重要

    アップグレードに失敗する場合、Operator は停止し、失敗しているコンポーネントのステータスを報告します。クラスターの以前のバージョンへのロールバックはサポートされていません。アップグレードできない場合は、Red Hat サポートにお問い合わせください。

  7. 更新が完了したら、クラスターのバージョンが新たなバージョンに更新されていることを確認できます。

    $ oc get clusterversion
    
    NAME      VERSION     AVAILABLE   PROGRESSING   SINCE     STATUS
    version   4.1.2       True        False         2m        Cluster version is 4.1.2
  8. OpenShift Container Platform 4.3.3 以前から本リリースにアップグレードする場合、アップグレードの完了後にすべての Pod を再起動する必要があります。これは以下のコマンドで確認できます。

    $ for I in $(oc get ns -o jsonpath='{range .items[*]} {.metadata.name}{"\n"} {end}'); \
          do oc delete pods --all -n $I; \
          sleep 1; \
          done
    注記

    OpenShift Container Platform 4.3.5 の時点で、サービス CA は 自動的にローテーションされるため、すべての Pod を再起動する必要があります。サービス CA はアップグレード時にローテーションされ、その後再起動して、以前のサービス CA の期限が切れる前にすべてのサービスが新しいサービス CA を使用していることを確認する必要があります。

    この 1 回で実行される手動による再起動の後、後続のアップグレードおよびローテーションにより、サービス CA の期限が切れる前に手動の介入なしの再起動が行われます。