VMware vCenter 7은 vSphere with Kubernetes를 선보였다. 이 기능을 통해 vCenter에서 Kubernetes 워크로드를 호스팅할 수 있다.
쿠버네티스 세계에서 네임스페이스는 vCenter의 리소스 풀 개념과 유사한 워크로드를 호스팅하는 데 사용할 수 있는 리소스 그룹이다. 이러한 리소스에는 컴퓨팅뿐 아니라 스토리지 및 네트워킹 리소스도 포함된다. 네임스페이스는 Kubernetes와 vCenter 정책을 모두 유지하는 추상화를 제공하여 vCenter 관리자가 제어 및 정책 시행을 유지하면서 개발자에게 리소스를 제공할 수 있도록 한다.
네임스페이스에는 별도의 권한 집합이 있으며 vCenter 관리자가 해당 네임스페이스를 사용하여 워크로드를 실행하는 개발자에게 액세스 권한을 부여할 수 있다. 네임스페이스에 특정 스토리지 클래스에 대한 액세스 권한이 필요한 경우 관리자는 스토리지 정책을 통해 해당 스토리지에 대한 액세스 권한을 부여할 수 있다.
PowerCLI 12.0과 함께 새로운 모듈인 VMware.VimAutomation.WorkloadManagement를 선보였다. vCenter에서 워크로드 관리와 관련된 작업을 자동화할 수 있다. 이 모듈의 첫 번째 버전과 함께, 우리는 새로운 네임스페이스 설정의 자동화를 가능하게 하고 있다. 아래 예제는 vCenter에서 클러스터에 대해 워크로드를 성공적으로 사용하도록 설정했다고 가정하겠다.
New-WMNamespace 명령을 사용하여 새 네임스페이스를 만들 수 있다. 네임스페이스 이름은 유효한 Kubernetes 식별자여야 한다는 점에 유의한다.
$workloadCluster = Get-Cluster "MyWorkloadsCluster" $devNamespace = New-WMNamespace -Name "dev-project-a" -Description "Workloads for project A" -Cluster$workloadCluster
네임스페이스에서 실행되는 워크로드에서 사용할 vCenter의 스토리지 정책을 정의한다. 네임스페이스에서 둘 이상의 스토리지 유형을 사용하는 경우 여러 스토리지 정책 개체를 정의한다.
이 예에서는 개발자가 애플리케이션 스토리지에 사용할 수 있도록 “RedundantStorage”라는 정책을 정의한다. 우리는 30000 MiB로 한도를 정했다. 이 한도는 나중에 변경할 수 있다.
$redundantStorage = Get-SpbmStoragePolicy "RedundantStorage" New-WMNamespaceStoragePolicy -Namespace $devNamespace -StoragePolicy $redundantStorage -LimitMiB 30000
이 스토리지는 개발자가 애플리케이션 사양에서 참조할 수 있는 쿠버네티스 스토리지 클래스로 이용할 수 있다.
다음으로, 우리는 그 프로젝트에서 일하는 개발자들에게 네임스페이스를 사용할 수 있도록 허가를 주어야 한다. 이 예에서는 이들이 그룹 team1@mydomain.local의 구성원이며 네임스페이스에 대한 편집 권한이 필요하다고 가정한다.
New-WMNamespacePermission -Namespace $devNamespace -Role Edit -Domain "mydomain.local" -PrincipalType Group -PrincipalName "team1"
이제 개발자들은 쿠버네티스 네임스페이스를 사용할 수 있어야 한다.
네임스페이스를 사용할 수 있는지 확인하려면 네임스페이스를 열 때 표시된 웹 인터페이스의 “Link to CLI Tools”를 따라 간다. 이것은 당신의 버전에 특정한 지침과 Kubectl과 vSphere 플러그인을 다운로드하기 위한 링크를 제공한다. 개발자는 이 네임스페이스를 연결하고 사용하기 위해 이 지침을 사용해야 한다.