vSphere with Tanzu를 사용하면 감독자 클러스터에서 기밀 vSphere 포드를 실행할 수 있습니다. 기밀 vSphere 포드는 게스트 운영 체제 메모리를 암호화된 상태로 유지하여 하이퍼바이저의 액세스로부터 보호하는 하드웨어 기술을 사용합니다.

vSphere 7.0 업데이트 2부터는 추가적인 보안 향상으로 SEV-ES(Secure Encrypted Virtualization-Encrypted State)를 추가하여 기밀 vSphere 포드를 생성할 수 있습니다. SEV-ES는 CPU 레지스터가 하이퍼바이저와 같은 구성 요소로 레지스터의 정보를 누출하지 못하도록 합니다. SEV-ES는 또한 CPU 레지스터 상태에 대한 악의적인 수정 사항을 감지할 수 있습니다. vSphere 환경에서 SEV-ES 기술을 사용하는 방법에 대한 자세한 내용은 AMD Secure Encrypted Virtualization-Encrypted State를 사용하여 가상 시스템 보호를 참조하십시오.

사전 요구 사항

ESXi 호스트에서 SEV-ES를 사용하도록 설정하려면 vSphere 관리자가 다음 지침을 따라야 합니다.
  • SEV-ES 기능을 지원하는 호스트를 사용합니다. 현재 SEV-ES는 AMD EPYC 7xx2 CPU(코드명 "Rome" ) 이상 CPU만 지원합니다.
  • ESXi 버전 7.0 업데이트 2 이상을 사용합니다.
  • ESXi 시스템의 BIOS 구성에서 SEV-ES를 사용하도록 설정합니다. BIOS 구성 액세스에 대 한 자세한 내용은 시스템 설명서를 참조하십시오.
  • BIOS에서 SEV-ES를 사용하도록 설정할 때 Minimum SEV non-ES ASID 설정 값을 호스트의 SEV-ES VM 및 기밀 vSphere 포드 수에 1을 더한 값과 동일하게 입력합니다. 예를 들어 SEV-ES VM 100개와 vSphere 포드 128개를 실행하려면 229 이상을 입력합니다. 이 설정은 최대 500까지 입력할 수 있습니다.

프로시저

  1. 다음 매개 변수를 포함하는 YAML 파일을 생성합니다.
    1. 주석에서 기밀 vSphere 포드 기능을 사용하도록 설정합니다.
      ...
      annotations:
              vmware/confidential-pod: enabled
      ...
    2. 컨테이너에 대한 메모리 리소스를 지정합니다.
      이 예제와 같이 메모리 요청과 메모리 제한을 동일한 값으로 설정해야 합니다.
      resources:
            requests:
              memory: "512Mi"
            limits:
              memory: "512Mi"
      다음 YAML 파일을 예로 사용할 수 있습니다.
      apiVersion: v1
      kind: Pod
      metadata:
        name: photon-pod
        namespace: my-podvm-ns
        annotations:
          vmware/confidential-pod: enabled
      spec:  # specification of the pod's contents
        restartPolicy: Never
        containers:
        - name: photon
          image: wcp-docker-ci.artifactory.eng.vmware.com/vmware/photon:1.0
          command: ["/bin/sh"]
          args:    ["-c", "while true; do echo hello, world!; sleep 1; done"]
          resources:
            requests:
              memory: "512Mi"
            limits:
              memory: "512Mi"
  2. 감독자 클러스터에 로그인합니다.
    kubectl vsphere login --server=https://<server_adress> --vsphere-username <your user account name>
  3. 애플리케이션을 배포하려는 네임스페이스로 전환합니다.
    kubectl config use-context <namespace>
  4. YAML 파일에서 기밀 vSphere 포드을 배포합니다.
    kubectl apply -f <yaml file name>.yaml
    참고: vSphere 포드이 배포되면 DRS는 SEV-ES를 지원하는 ESXi 노드에 배치합니다. 해당 노드를 사용할 수 없으면 vSphere 포드 노드가 실패로 표시됩니다.

    시작된 기밀 vSphere 포드은 이 포드에서 실행 중인 모든 워크로드에 대한 하드웨어 메모리 암호화 지원을 제공합니다.

  5. 다음 명령을 실행하여 기밀 vSphere 포드이 생성되었는지 확인합니다.
    kubectl describe pod/<yaml name>

다음에 수행할 작업

vSphere 관리자는 기밀 vSphere 포드을 볼 수 있습니다. vSphere Client에는 암호화 모드: 기밀 계산 태그와 함께 표시됩니다.

암호화 모드: vSphere 포드에 대해 기밀 계산이 표시됨