7.4. CLI를 사용하여 클러스터 업데이트

업데이트가있는 경우 OpenShift CLI (oc)를 사용하여 클러스터를 업데이트할 수 있습니다.

사용 가능한 OpenShift Container Platform 권고 및 업데이트는 고객 포털의 에라타 섹션을 참조하십시오.

전제 조건

  • 업데이트된 버전과 일치하는 OpenShift CLI (oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 클러스터에 로그인합니다.
  • jq 패키지를 설치합니다.
  • 모든 MachineHealthCheck 리소스를 일시 중지합니다.

프로세스

  1. 클러스터를 사용할 수 있는지 확인합니다.

    $ oc get clusterversion

    출력 예

    NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
    version   4.8.13     True        False         158m    Cluster version is 4.8.13

  2. 현재 업데이트 채널 정보를 확인하고 채널이 stable-4.9로 설정되어 있는지 확인합니다.

    $ oc get clusterversion -o json|jq ".items[0].spec"

    출력 예

    {
      "channel": "stable-4.9",
      "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff"
    }

    중요

    프로덕션 클러스터의 경우 stable-*, eus-* 또는 fast-* 채널에 가입해야 합니다.

  3. 사용 가능한 업데이트를 확인하고 적용하려는 업데이트의 버전 번호를 기록해 둡니다.

    $ oc adm upgrade

    출력 예

    Cluster version is 4.8.13
    
    Updates:
    
    VERSION IMAGE
    4.9.0   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.9",
      "clusterID": "990f7ab8-109b-4c95-8480-2bd1deec55ff",
      "desiredUpdate": {
        "force": false,
        "image": "quay.io/openshift-release-dev/ocp-release@sha256:9c5f0df8b192a0d7b46cd5f6a4da2289c155fd5302dec7954f8f06c878160b8b",
        "version": "4.9.0" 1
      }
    }

    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:b8fa13e09d869089fc5957c32b02b7d3792a0b6f36693432acc0409615ab23b7",
        "startedTime": "2021-01-28T20:30:50Z",
        "state": "Partial",
        "verified": true,
        "version": "4.9.0"
      },
      {
        "completionTime": "2021-01-28T20:30:50Z",
        "image": "quay.io/openshift-release-dev/ocp-release@sha256:b8fa13e09d869089fc5957c32b02b7d3792a0b6f36693432acc0409615ab23b7",
        "startedTime": "2021-01-28T17:38:10Z",
        "state": "Completed",
        "verified": false,
        "version": "4.8.13"
      }
    ]

    기록에는 클러스터에 적용된 최신 버전 목록이 포함되어 있습니다. 이 값은 CVO가 업데이트를 적용할 때 업데이트됩니다. 목록은 날짜순으로 정렬되며 최신 업데이트가 목록의 맨 처음에 표시됩니다. 롤아웃이 완료되면 기록의 업데이트 상태는 Completed로 표시되고 업데이트가 실패하거나 완료되지 않은 경우 Partial로표시됩니다.

  7. 업데이트가 완료되면 클러스터 버전이 새 버전으로 업데이트되었는지 확인합니다.

    $ oc get clusterversion

    출력 예

    NAME      VERSION     AVAILABLE   PROGRESSING   SINCE     STATUS
    version   4.9.0       True        False         2m        Cluster version is 4.9.0

    참고

    oc get clusterversion 명령에서 PROGRESSING 상태가 True 인 동안 다음 오류를 표시하는 경우 오류를 무시할 수 있습니다.

    NAME    VERSION AVAILABLE PROGRESSING SINCE STATUS
    version 4.10.26 True      True        24m   Unable to apply 4.11.0-rc.7: an unknown error has occurred: MultipleErrors
  8. 클러스터를 버전 4.y+1과 같이 다음 마이너 버전으로 업그레이드하는 경우 새 기능에 의존하는 워크로드를 배포하기 전에 노드를 업데이트하는 것이 좋습니다.

    $ oc get nodes

    출력 예

    NAME                           STATUS   ROLES    AGE   VERSION
    ip-10-0-168-251.ec2.internal   Ready    master   82m   v1.22.1
    ip-10-0-170-223.ec2.internal   Ready    master   82m   v1.22.1
    ip-10-0-179-95.ec2.internal    Ready    worker   70m   v1.22.1
    ip-10-0-182-134.ec2.internal   Ready    worker   70m   v1.22.1
    ip-10-0-211-16.ec2.internal    Ready    master   82m   v1.22.1
    ip-10-0-250-100.ec2.internal   Ready    worker   69m   v1.22.1