이제 vSphere 7.0U3c를 사용할 수 있습니다. 최근 버전에 등장한 vSphere with Tanzu 기능 중 일부를 다시 살펴보는 것이 좋을 것 같습니다. 첫 번째 Namespace 서비스는 dev-ops personas가 코맨드라인의 kubectl을 통해 자신만의 슈퍼바이저 네임스페이스를 만들 수 있도록 지원합니다. 이 기능은 vSphere 7.0U3c에서 dev-ops가 자체 Kubernetes 레이블 및 주석을 추가할 수 있도록 확장되었습니다. 이 기능의 작동 방식과 이 서비스를 통해 슈퍼바이저 네임스페이스를 생성할 때 vSphere 관리자가 이 페르소나가 사용할 수 있는 vSphere 리소스 양에 대해 가드레일(Guardrail)을 설정하는 방법에 대해 살펴보겠습니다.

먼저 vSphere 관리자가 이 기능을 사용할 수 있는지 여부를 제어합니다. 기본적으로 실행 중지되어 있습니다. 따라서 dev-ops 페르소나가 슈퍼바이저 네임스페이스를 생성하려는 경우 vSphere 관리자가 다음 기능을 사용하도록 설정할 때까지 생성할 수 없습니다.

네임스페이스 서비스가 비활성으로 설정되면 아무도 네임스페이스를 생성할 수 없습니다. vSphere with Tanzu 클러스터에 로그인하기 위한 자격 증명을 제공한 후 Supervisor Namespace를 생성하려고 하면 SSO Administrator로서의 작업이 다음과 같이 실패합니다.

% kubectl create ns devops1
Error from server (Forbidden): namespaces is forbidden: \
User "sso:Administrator@vsphere.local" cannot create resource "namespaces" \
in API group "" at the cluster scope

Supervisor Namespace 셀프 서비스 기능을 활성화하려면 위의 Status 버튼으로 전환하십시오. 그러면 vSphere 관리자가 네임스페이스 내에서 사용할 수 있는 CPU 및 메모리 리소스 양을 제어할 수 있는 다음 마법사가 시작됩니다. 아래 예에서는 단일 네임스페이스에서 사용할 수 있는 리소스를 20GHz CPU, 40GB 메모리 및 250GB 스토리지로 제한하고 있습니다. 또한 사용 가능한 목록에서 특정 스토리지 정책을 선택합니다. 이 경우 vSAN 데이터스토어와 일치합니다.

리소스를 설정한 후 다음 단계는 네임스페이스를 생성할 수 있는 사용자를 지정하는 것입니다. 이 데모에서는 administrator@vsphere.local 사용자만 kubectl을 통해 네임스페이스를 생성할 수 있지만 vSphere 관리자가 이 작업을 제어하고 적절한 dev-ops 사용자에게 사용 권한을 부여할 수 있도록 지정합니다.

사용 권한이 추가된 상태에서 선택 항목을 검토하고 Finish을 클릭합니다.

이제 Namespace Self-Service가 활성화된 것으로 표시됩니다.

이제 앞에서 시도했던 네임스페이스 생성 작업을 다시 시도할 수 있습니다.

% kubectl create ns devops1
namespace/devops1 created

% kubectl get ns devops1 --show-labels
NAME      STATUS   AGE   LABELS
devops1   Active   56s   kubernetes.io/metadata.name=devops1,vSphereClusterID=domain-c8

이제 Supervisor Namespace를 성공적으로 만들 수 있습니다. 또한 vSphere Client에서 네임스페이스가 표시되는지 확인할 수 있습니다. UI를 통해 리소스 제한 및 네임스페이스의 현재 리소스 사용량도 확인할 수 있습니다.

다음으로 vSphere 7.0U3c에 포함된 Namespace Service의 향상된 기능을 살펴보겠습니다. 이것은 Supervisor Namespace에 레이블과 주석을 추가하는 기능입니다. 간단한 예를 들어볼까요? 레이블 name:devops2가 포함된 매우 간단한 JSON 파일을 만들었습니다. 한번 적용해보고 라벨이 효과가 있는지 확인해보죠.

% cat devops2.json
{
 "apiVersion": "v1",
 "kind": "Namespace",
 "metadata": {
   "name": "devops2",
   "labels": {
     "name": "devops2"
    }
  }
}


% kubectl create -f devops2.json
namespace/devops2 created


% kubectl get ns devops2
NAME      STATUS   AGE
devops2   Active   17s


% kubectl get ns devops2 --show-labels
NAME      STATUS   AGE   LABELS
devops2   Active   23s   kubernetes.io/metadata.name=devops2,name=devops2,vSphereClusterID=domain-c8

성공입니다. 이 네임스페이스와 연결된 사용자 정의 레이블이 있는 것 같습니다. 이 네임스페이스를 이전에 특정 레이블 없이 만든 네임스페이스와 비교해 보겠습니다.

% kubectl get ns devops1 --show-labels
NAME      STATUS   AGE   LABELS
devops1   Active   56s   kubernetes.io/metadata.name=devops1,vSphereClusterID=domain-c8

모든 것이 예상대로 작동합니다. 새 Supervisor Namespace를 보려면 vSphere UI를 확인하십시오.

좋은 것 같군요. 이것으로 이 글이 완성됩니다. 곧 다른 새로운 기능을 살펴볼 예정이니 업데이트 내용을 보려면 이따금 다시 확인하십시오.

출처 : https://cormachogan.com/2022/02/01/a-closer-look-at-the-vsphere-with-tanzu-namespace-service/
답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like