여러 Kubernetes 버전

이 항목에서는 사용 가능한 Kubernetes 버전을 나열하고 기본값이 아닌 Kubernetes 버전으로 워크로드 클러스터를 배포하는 방법을 설명합니다.

Kubernetes 버전 정보

독립형 관리 클러스터가 있는 Tanzu Kubernetes Grid 각 버전에는 기본 버전과 기본값이 아닌 두 개의 Kubernetes 버전이 제공되며, tanzu kubernetes-release get를 실행하여 나열할 수 있습니다.

Tanzu Kubernetes Grid TKr(Tanzu Kubernetes 릴리스) 개체를 사용하여 Kubernetes 버전을 관리합니다. TKr은 TKr에 정의된 Kubernetes 버전과 호환되는 OS 이미지, 코어 Kubernetes 구성 요소 및 부트스트랩 패키지를 지정합니다. 기본 TKr 또는 기본 TKr이 아닌 tanzu cluster create를 실행하면 Tanzu Kubernetes Grid TKr에 지정된 구성 요소 및 부트스트랩 패키지를 사용하여 클러스터를 생성합니다. 또한 클러스터 구성 파일을 읽고 클러스터를 생성할 때 사용할 호환되는 OS 이미지를 결정합니다.

지원되는 Kubernetes 버전의 전체 목록은 VMware Tanzu Kubernetes Grid 2.3 Release Notes의 VMware Tanzu Kubernetes Grid 2.4 Release Notes의 Tanzu Kubernetes Grid v2.4에서 지원되는 Kubernetes 버전을 참조하십시오.

사용 가능한 버전 나열

사용 가능한 모든 Kubernetes 릴리스를 현재 호환성 및 업그레이드 상태와 함께 나열하려면 선택적 버전 일치 인수를 사용하여 tanzu kubernetes-release get을 실행합니다. 예를 들면 다음과 같습니다.

  • 모든 릴리스를 나열하려면 tanzu kubernetes-release get을 실행합니다.
  • v1.26.8와 일치하는 모든 릴리스를 나열하려면 tanzu kubernetes-release get v1.26.8을 실행합니다.
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.1-tkg.1   v1.26.8+vmware.1-tkg.1   True        True
v1.27.5---vmware.2-tkg.1   v1.27.5+vmware.1-tkg.1   True        True

사용 가능한 업그레이드 나열

특정 워크로드 클러스터에 사용할 수 있는 TKr 버전을 검색하려면 클러스터의 전체 이름과 함께 tanzu cluster available-upgrades get을 실행합니다. 예를 들면 다음과 같습니다.

tanzu cluster available-upgrades get my-cluster

Tanzu Kubernetes 릴리스 활성화 또는 비활성화

TKr을 활성화하거나 비활성화할 수 있습니다. TKr을 활성화하려면 다음을 수행합니다.

tanzu kubernetes-release activate TKR-NAME

예:

tanzu kubernetes-release activate v1.27.5---vmware.1-tkg.1

TKr을 비활성화하려면 다음을 수행합니다.

tanzu kubernetes-release deactivate TKR-NAME

예:

tanzu kubernetes-release deactivate v1.27.5---vmware.1-tkg.1

기본이 아닌 Kubernetes 버전으로 클러스터 배포

각 Tanzu Kubernetes Grid 릴리스는 기본 버전의 Kubernetes를 제공합니다. Tanzu Kubernetes Grid v2.4의 기본 버전은 Kubernetes v1.27.5입니다.

업스트림 Kubernetes는 패치 또는 새 버전을 릴리스할 때 VMware 공용 레지스트리에 게시하고 Tanzu Kubernetes 릴리스 컨트롤러는 이를 관리 클러스터로 가져옵니다. 이렇게 하면 Tanzu CLI가 새 버전을 기반으로 클러스터를 생성할 수 있습니다.

  • 사용 가능한 Kubernetes 버전을 나열하려면 위의 사용 가능한 Kubernetes 버전을 참조하십시오.
  • 기본값이 아닌 버전의 Kubernetes를 실행하는 클러스터를 배포하려면 아래 단계를 따르십시오.

인프라에 Kubernetes 버전 게시

vSphere 및 Azure에서는 기본값이 아닌 Kubernetes 버전을 실행하는 클러스터를 배포하려면 한 단계 더 나아가야 합니다.

vSphere
적절한 기본 이미지 템플릿 OVA 파일을 vSphere 가져와 VM 템플릿으로 변환합니다. 기본 OVA 파일을 vSphere 가져오는 방법에 대한 자세한 내용은 기본 이미지 템플릿을 vSphere로 가져오기를 참조하십시오.
AWS
어떠한 작업도 필요하지 않습니다. 지원되는 Kubernetes 버전을 포함하는 Amazon Linux 2 Amazon AMI(시스템 이미지)는 지원되는 모든 AWS 지역에서 모든 AWS 사용자가 공개적으로 사용할 수 있습니다. Tanzu Kubernetes Grid 지정한 Kubernetes 버전에 적합한 AMI를 자동으로 사용합니다.
Azure
Azure CLI 명령을 실행하여 기본 OS 버전에 대한 라이센스를 수락합니다. 라이센스를 수락한 후에는 나중에 이 단계를 건너뛸 수 있습니다.
  1. 다음과 같이 tanzu kubernetes-release get 명령의 출력에 나열된 대상 Kubernetes 버전을 Azure 이미지 SKU로 변환합니다.

    • 앞에 있는 vk8s-로 변경합니다.
    • 버전 번호에 있는 .dot으로 변경합니다.
    • 뒤에 있는 +vmware.*-ubuntu-2004로 변경하여 Azure의 모든 Tanzu Kubernetes Grid VM의 기본 OS 버전인 Ubuntu v20.04를 지정합니다.
    • 예: k8s-1dot27dot5-ubuntu-2004, k8s-1dot26dot8-ubuntu-2004.
      1. az vm image terms accept를 실행합니다. 예:
    az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot27dot5-ubuntu-2004
    

Kubernetes 클러스터 배포

기본이 아닌 Kubernetes 버전을 실행하는 워크로드 클러스터를 배포하려면 다음을 수행합니다.

  1. 계획 기반 클러스터를 배포하는 경우 환경 변수 ALLOW_LEGACY_CLUSTERtrue로 설정합니다.

    export ALLOW_LEGACY_CLUSTER=true
    
  2. 클러스터를 배포하는 Kubernetes 패치 버전이 지원되는 Kubernetes 버전에 있는 부 버전의 지원되는 최신 패치보다 오래된 경우 tkg-system 네임스페이스에서 해당 TKr에 대해 ConfigMap 개체를 생성합니다.

    1. 이전 TKr을 나열하는 tkg-system 네임스페이스에 ConfigMap 개체 정의를 생성합니다.

      apiVersion: v1
      kind: ConfigMap
      metadata:
        namespace: tkg-system
        name: TKR-CONFIG-NAME
        labels:
          run.tanzu.vmware.com/additional-compatible-tkrs: ""
      data:
        tkrVersions: |
            - TKR-VERSON-1
            - TKR-VERSON-2
      

      여기서 TKR-CONFIG-NAME은 모든 법적 개체 이름입니다. tkg-v2.4.0TKR-VERSON-* 값은 tanzu kubernetes-release get에 나열된 이전 TKr 버전입니다(예: v1.24.11--vmware.1-tkg).

    2. ConfigMap 개체를 생성합니다.

      kubectl apply -f old-tkrs-config.yaml
      
  3. 사용 중인 버전의 Tanzu Kubernetes Grid 기본값이 아닌 Kubernetes 버전으로 워크로드 클러스터를 배포하려면 --tkr 옵션에서 Tanzu Kubernetes 릴리스를 지정합니다. 예를 들어 Kubernetes v1.25.13 클러스터를 배포하려면 다음을 실행합니다.

    tanzu cluster create my-1-25-10-cluster --tkr v1.25.13---vmware.1-tkg
    

워크로드 클러스터를 생성하는 방법에 대한 자세한 내용은 워크로드 클러스터 생성을 참조하십시오.

사용자 지정 시스템 이미지를 사용하여 클러스터 배포

OS 버전, Kubernetes 버전, 대상 인프라의 일반적인 조합을 위해 독립형 관리 클러스터가 있는 Tanzu Kubernetes Grid는 기본 시스템 이미지를 제공합니다. 필요에 따라 직접 구축한 이미지를 포함하여 사용자 지정 시스템 이미지를 지정할 수 있습니다.

아래 섹션에서는 대체 또는 사용자 지정 구축 시스템 이미지를 사용하여 클러스터를 배포하는 방법을 설명합니다.

대체 시스템 이미지 사용

클러스터 구성 파일에서 OS_NAME, OS_VERSIONOS_ARCH을 설정하여 기본 시스템 이미지(예: ubuntu, 20.04 또는 photon, 3amd64)를 지정합니다. 이러한 기본값은 VMware 배포하는 OS 이미지이지만 클러스터 노드에 사용할 고유한 대체 OS 이미지를 지정할 수도 있습니다.

  1. 기본 이미지 템플릿을 vSphere에 가져오기에 설명된 대로 이미지를 vSphere에 업로드합니다.

  2. 이미지가 VMware 배포된 기존 시스템 이미지와 동일한 OS 버전을 공유하는지 여부에 따라 다음 중 하나를 수행합니다.

    • OS 이름, 버전, 아키텍처가 동일한 대체 이미지를 VMware이 배포하는 기존 TKr 및 이미지로 지정하는 경우, 해당 OSImage 개체를 편집합니다. 예를 들면 다음과 같습니다.

      kubectl edit OSImage v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
      
    • 그렇지 않으면 기존 OSImage 개체 정의를 템플릿으로 사용하여 새 OSImage 개체를 생성하고 적용합니다. metadata.namespec.image.ref.version 값을 OVA 파일 이름으로 설정합니다.

  3. OSImage 개체의 spec.image.ref 블록에서 식별자 필드와 값을 추가합니다. 예를 들어 VMware 배포하는 Ubuntu 20.04 이미지의 Kubernetes v1.26.8에 대한 대안을 사용하도록 설정하려면 다음을 수행합니다.

    apiVersion: run.tanzu.vmware.com/v1alpha3
    kind: OSImage
    metadata:
      creationTimestamp: "2023-06-02T06:08:35Z"
      generation: 2
      labels:
        image-type: ova
        os-arch: amd64
        os-name: ubuntu
        os-type: linux
        ...
    spec:
      image:
        ref:
          MY-FIELD: MY-VALUE
          version: v1.26.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.8+vmware.1
      os:
        arch: amd64
        name: ubuntu
        type: linux
        version: "2004"
    

    여기서 MY-FIELDMY-VALUECluster 개체 규격에 포함하도록 설정한 식별자 필드 및 값입니다.

    • MY-VALUE는 0~63자여야 하며 비워 둘 수 있거나 영숫자로 시작하고 끝나야 하며 영숫자, 대시(-), 밑줄(_) 또는 점(.)이 포함되어야 합니다.
    • TKG는 이러한 값을 OSImage 개체의 metadata.labels 설정을 ova-MY-FIELD: MY-VALUE 패턴에 따라 복사합니다.
  4. 클러스터에서 대체 시스템 이미지를 사용하려면 Cluster 개체를 편집하여 이미지를 사용할 클러스터 노드의 metadata.annotations에 설정 ova-MY-FIELD=MY-VALUE을 추가합니다.

    • 제어부 노드의 경우 topology.controlPlane에서 metadata.annotations을 편집합니다.
    • Worker 노드의 경우 이미지를 사용할 시스템 배포에 대해 topology.workers.machineDeployments에서 metadata.annotations을 편집합니다.
    • 예:

      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
      

사용자 지정 시스템 이미지 구축 및 사용

클러스터 노드에 사용할 고유한 시스템 이미지를 빌드할 수 있습니다. 이렇게 하는 이유는 다음과 같습니다.

  • RHEL(Red Hat Enterprise Linux) v8과 같이 VMware가 지원하지만 배포하지 않는 기본 OS에서 클러스터를 생성합니다.
  • 기본 머신 이미지에 추가 패키지를 설치하거나 Image Builder 설명서의 사용자 지정에 설명된 대로 이를 사용자 지정합니다.

지침은 시스템 이미지 빌드 를 참조하십시오.

check-circle-line exclamation-circle-line close-line
Scroll to top icon