이 섹션에서는 Kubernetes 환경에서 NCP를 2.5.x 또는 3.0.x를 3.1로 업그레이드하는 방법에 대해 설명합니다.

  1. 설치 파일을 다운로드합니다. 설치 파일 다운로드 항목을 참조하십시오.
  2. 다음 명령을 실행하여 현재 환경에서 ConfigMap 및 ncp.ini를 확인합니다.
    kubectl describe configmap nsx-ncp-config -n nsx-system
    kubectl describe configmap nsx-node-agent-config -n nsx-system
  3. 현재 환경을 기준으로 NCP YAML 파일을 편집합니다. NCP YAML 파일 편집을 참조하십시오.
    • [nsx_node_agent] 섹션에서 ovs_uplink_port를 정의해야 합니다.
    • image: nsx-ncp의 모든 인스턴스를 새 NCP 이미지 이름으로 바꿉니다.
    • Kubernetes 암호를 사용하여 NCP에 대한 인증서를 저장하는 경우 암호 볼륨 마운트에 대해 NCP YAML 파일 편집의 "NCP 배포 규격 업데이트" 섹션을 참조하십시오.
  4. 다음 명령을 실행하여 NCP YAML 파일의 구문을 확인합니다.
    kubectl apply -f ncp-<platform_name>.yml --server-dry-run
    응답에는 생성 또는 업데이트할 리소스가 표시됩니다(출력에 "구성됨"으로 표시됨). 예를 들면 다음과 같습니다.
    customresourcedefinition.apiextensions.k8s.io/nsxerrors.nsx.vmware.com created (server dry run)
    customresourcedefinition.apiextensions.k8s.io/nsxlocks.nsx.vmware.com created (server dry run)
    namespace/nsx-system unchanged (server dry run)
    serviceaccount/ncp-svc-account unchanged (server dry run)
    clusterrole.rbac.authorization.k8s.io/ncp-cluster-role configured (server dry run)
    clusterrole.rbac.authorization.k8s.io/ncp-patch-role configured (server dry run)
    clusterrolebinding.rbac.authorization.k8s.io/ncp-cluster-role-binding unchanged (server dry run)
    clusterrolebinding.rbac.authorization.k8s.io/ncp-patch-role-binding unchanged (server dry run)
    serviceaccount/nsx-node-agent-svc-account unchanged (server dry run)
    clusterrole.rbac.authorization.k8s.io/nsx-node-agent-cluster-role configured (server dry run)
    clusterrolebinding.rbac.authorization.k8s.io/nsx-node-agent-cluster-role-binding unchanged (server dry run)
    configmap/nsx-ncp-config configured (server dry run)
    deployment.extensions/nsx-ncp configured (server dry run)
    configmap/nsx-node-agent-config configured (server dry run)
    daemonset.extensions/nsx-ncp-bootstrap configured (server dry run)
    daemonset.extensions/nsx-node-agent configured (server dry run)
  5. 다음 명령을 실행하여 이전 NCP 리소스를 삭제합니다.
    kubectl delete deployment nsx-ncp -n nsx-system
  6. 다음 명령을 실행하여 이전 NCP 포드가 모두 종료되었는지 확인합니다.
    kubectl get pods -l component=nsx-ncp -n nsx-system

    이전 NCP 포드가 모두 종료된 경우 포드가 나열되지 않습니다. 계속하기 전에 모든 포드가 종료될 때까지 기다리십시오.

  7. 이전 선택 잠금을 지웁니다. NSX Manager 웹 UI에서 [검색] 페이지로 이동한 후 다음 태그를 사용하여 리소스에 대해 고급 검색을 수행합니다.
    Scope: ncp\/ha         Tag: true
    Scope: ncp\/cluster    Tag: <name of the cluster in ncp.ini>

    하나 이상의 SpoofGuard 리소스가 표시됩니다. 이러한 리소스의 모든 태그를 지웁니다.

  8. 다음 명령을 실행하여 업그레이드를 시작합니다.
    kubectl apply -f ncp-{platform_name}.yml
  9. 다음 명령을 실행하여 업그레이드 상태를 확인합니다.
    kubectl get pods -o wide -n nsx-system

    출력에 새 포드는 생성되고 이전 포드가 종료되었다고 표시됩니다. 업그레이드를 완료한 후에는 모든 포드의 상태가 실행 중으로 표시되어야 합니다.