vSphere with Kubernetes는 공식적으로는 VCF 4.0을 통해서만 사용할 수 있다. 그러나 VCF 4.0을 배포할만한 설비를 구비하는 것이 쉬운 일은 아니다. 그래서 vShere with Kubernetes 구성에 필요한 요소들 vShere 7.0, vSAN 7.0, NSX 3.0만 설치해서 구성하는 방법이 알려져 있다.
여기에 더블어 William Lam님은 PowerCLI를 이용해서 vSphere 7.0 부분을 중첩가상화로 구현한 랩 환경을 자동으로 배포하는 스크립트를 만들어서 공개했다.
https://github.com/lamw/vghetto-vsphere-with-kubernetes-external-nsxt-automated-lab-deployment
많은 분들이 애용하고 있는 것으로 알고 있다. 그래서 한번 설치해서 사용해보려고 하니, PowerCLI에 익숙하지 않은 입장에서 사용하는 것이 쉽지 만은 않았다.
이와 관련된 주의 사항을 몇가지 정리해 보면 다음과 같다.
Windows 10에 설치되어 있는 PowerShell 버전 문제
Windows 10에 설치되어 있는 PowerShell의 버전은 그림과 같다.
새 버전은 github에서 다운로드 받을 수 있다. 여기서 주의할 점은 최신 버전인 7.x로 설치하면 이것도 사용할 스크립트와 호환성에 조금 문제가 있다.
v6.2.7을 설치해서 사용하니 잘 동작 했다.
README.md 잘 읽어보기
github에 접속하면 README.md 내용이 표시된다. 여기에 필요한 모든 자료가 다 들어 있다. 설치에 필요한 바이너리를 받기 위한 URL도 다 들어 있다. 그러나 NSX-T, vCenter Server 파일은 구매이력이 없는 계정으로는 받을 수 없다.
이 내용을 차분히 읽어보면 생각보다 여러가지 조건으로 배포할 수 있음을 알 수 있다. 예를 들면 MSX Manager, NSXEdge 등의 배포 여부를 선택할 수 있다. 또한 vSphere with Kubernetes 환경을 세팅하지 않고, 단순히 배포만 하는 용도($setupPacific = 0)로도 설정할 수 있다.
vCenter의 경우는 ISO 이미지 파일로 다운로드 받게 된다. 그러나 이것을 바로 사용할 수는 없고, 마운트 해서 파일 형태로 접근 가능한 상태에서 진행해야 한다.
그 외에 변수에 설정하는 각종 항목들에 대한 설명들이 있다. PowerShell에 익숙하지 않다면, 서버 주소 정
vCenter는 1대의 호스트에 1개만
vCenter Server는 ESXi 호스트에 직접 설치된다. 그래서 만약 기존에 vCenter Server가 설치되어 있는 호스트에 새로 배포하는 vCenter가 설치되면 정상적으로 동작하지 않는다. 반드시 기존에 vCenter Server가 없는 호스트에 설치해야 한다.
PowerCLI 실행 전에 환경 설정
다음 명령 꼭 실행해주기 바란다. CEIP는 큰 문제 없는 요소이나, 인증서 검증 부분은 반드시 해주어야 한다.
Set-PowerCLIConfiguration -Scope AllUsers -ParticipateInCEIP $false -InvalidCertificateAction Ignore
실행 예
아래 내용은 글쓴이 랩에서 배포해본 내용이다. 좀 더 자세한 내용은 github에 있으니 참고하기 바란다.
[07-17-2020_09:29:22] Connecting to Management vCenter Server vc.098.co.kr ... [07-17-2020_09:29:24] Deploying Nested ESXi VM vk8s-esxi-1 ... [07-17-2020_09:29:48] Adding vmnic2/vmnic3 to NSX-TEP ... [07-17-2020_09:29:59] Updating vCPU Count to 4 & vMEM to 32 GB ... [07-17-2020_09:30:00] Updating vSAN Cache VMDK size to 20 GB & Capacity VMDK size to 200 GB ... [07-17-2020_09:30:06] Powering On vk8s-esxi-1 ... [07-17-2020_09:30:06] Deploying Nested ESXi VM vk8s-esxi-2 ... [07-17-2020_09:30:29] Adding vmnic2/vmnic3 to NSX-TEP ... [07-17-2020_09:30:40] Updating vCPU Count to 4 & vMEM to 32 GB ... [07-17-2020_09:30:41] Updating vSAN Cache VMDK size to 20 GB & Capacity VMDK size to 200 GB ... [07-17-2020_09:30:47] Powering On vk8s-esxi-2 ... [07-17-2020_09:30:48] Deploying Nested ESXi VM vk8s-esxi-3 ... [07-17-2020_09:31:11] Adding vmnic2/vmnic3 to NSX-TEP ... [07-17-2020_09:31:23] Updating vCPU Count to 4 & vMEM to 32 GB ... [07-17-2020_09:31:24] Updating vSAN Cache VMDK size to 20 GB & Capacity VMDK size to 200 GB ... [07-17-2020_09:31:30] Powering On vk8s-esxi-3 ... [07-17-2020_09:31:30] Deploying NSX Manager VM vk8s-nsx ... [07-17-2020_09:38:33] Updating vCPU Count to 6 & vMEM to 24 GB ... [07-17-2020_09:38:34] Disabling vCPU Reservation ... [07-17-2020_09:38:36] Powering On vk8s-nsx ... [07-17-2020_09:38:36] Creating VCSA JSON Configuration file for deployment ... [07-17-2020_09:38:36] Deploying the VCSA ... [07-17-2020_09:59:38] Setting up NSX-T Edge to join NSX-T Management Plane ... [07-17-2020_10:01:42] Successfully logged into NSX-T Manager vk8s-nsx.098.co.kr ... [07-17-2020_10:01:42] Retrieving NSX Manager Thumbprint ... [07-17-2020_10:01:42] Accepting NSX Manager EULA ... [07-17-2020_10:01:42] Disconnecting from NSX-T Manager ... [07-17-2020_10:01:42] Deploying NSX Edge VM vk8s-edge-1 ... [07-17-2020_10:03:17] Updating vCPU Count to 8 & vMEM to 32 GB ... [07-17-2020_10:03:18] Powering On vk8s-edge-1 ... [07-17-2020_10:03:18] Disconnecting from vc.098.co.kr ... [07-17-2020_10:03:18] Connecting to the new VCSA ... [07-17-2020_10:03:20] Creating Datacenter Pacific-Datacenter ... [07-17-2020_10:03:20] Creating VSAN Cluster Workload-Cluster ... [07-17-2020_10:03:22] Adding ESXi host vk8s-esxi-1 to Cluster ... [07-17-2020_10:03:42] Adding ESXi host vk8s-esxi-2 to Cluster ... [07-17-2020_10:03:50] Adding ESXi host vk8s-esxi-3 to Cluster ... [07-17-2020_10:03:58] Enabling VSAN & disabling VSAN Health Check ... [07-17-2020_10:04:11] Querying ESXi host disks to create VSAN Diskgroups ... [07-17-2020_10:04:12] Creating VSAN DiskGroup for vk8s-esxi-1.098.co.kr ... [07-17-2020_10:04:51] Querying ESXi host disks to create VSAN Diskgroups ... [07-17-2020_10:04:51] Creating VSAN DiskGroup for vk8s-esxi-2.098.co.kr ... [07-17-2020_10:05:24] Querying ESXi host disks to create VSAN Diskgroups ... [07-17-2020_10:05:24] Creating VSAN DiskGroup for vk8s-esxi-3.098.co.kr ... [07-17-2020_10:05:59] Adding vk8s-esxi-1.098.co.kr to Pacific-VDS [07-17-2020_10:06:03] Adding vk8s-esxi-2.098.co.kr to Pacific-VDS [07-17-2020_10:06:07] Adding vk8s-esxi-3.098.co.kr to Pacific-VDS [07-17-2020_10:06:11] Clearing default VSAN Health Check Alarms, not applicable in Nested ESXi env ... [07-17-2020_10:06:17] Creating Project Pacific Storage Policies and attaching to vsanDatastore ... [07-17-2020_10:06:25] Disconnecting from new VCSA ... [07-17-2020_10:06:25] Connecting to NSX-T Manager for post-deployment configuration ... [07-17-2020_10:08:09] Successfully logged into NSX-T Manager vk8s-nsx.098.co.kr ... [07-17-2020_10:08:09] Verifying health of all NSX Manager/Controller Nodes ... [07-17-2020_10:08:09] Check health status of Mgmt Node 10.32.116.88 ... [07-17-2020_10:08:09] Checking health of Ctrl Node 10.32.116.88 ... [07-17-2020_10:08:09] Accepting CEIP Agreement ... [07-17-2020_10:08:09] Adding vCenter Server Compute Manager ... [07-17-2020_10:08:16] Waiting for VC registration to complete ... [07-17-2020_10:08:16] vk8s-vc.098.co.kr is not ready, sleeping 30 seconds ... [07-17-2020_10:08:46] Creating Tunnel Endpoint IP Pool ... [07-17-2020_10:08:46] Creating Overlay & VLAN Transport Zones ... [07-17-2020_10:08:47] Creating ESXi Uplink Profile ... [07-17-2020_10:08:47] Creating Edge Uplink Profile ... [07-17-2020_10:08:49] Creating Transport Node Profile vk8s-Host-Transport-Node-Profile ... [07-17-2020_10:08:49] Successfully Created Transport Node Profile [07-17-2020_10:08:49] Applying Transport Node Profile to ESXi Transport Nodes ... [07-17-2020_10:08:55] Waiting for ESXi transport node configurations to complete ... [07-17-2020_10:08:55] ESXi transport node is still being configured (0% Completed), sleeping for 30 seconds ... [07-17-2020_10:09:25] ESXi transport node is still being configured (18% Completed), sleeping for 30 seconds ... [07-17-2020_10:09:55] ESXi transport node is still being configured (18% Completed), sleeping for 30 seconds ... [07-17-2020_10:10:26] ESXi transport node is still being configured (18% Completed), sleeping for 30 seconds ... [07-17-2020_10:10:56] ESXi transport node is still being configured (18% Completed), sleeping for 30 seconds ... [07-17-2020_10:11:26] ESXi transport node is still being configured (38% Completed), sleeping for 30 seconds ... [07-17-2020_10:11:56] ESXi transport node is still being configured (48% Completed), sleeping for 30 seconds ... [07-17-2020_10:12:27] ESXi transport node is still being configured (48% Completed), sleeping for 30 seconds ... [07-17-2020_10:12:57] ESXi transport node is still being configured (68% Completed), sleeping for 30 seconds ... [07-17-2020_10:13:28] Creating NSX-T Edge Transport Node for vk8s-edge-1.098.co.kr ... [07-17-2020_10:13:28] Successfully Created NSX-T Edge Transport Node [07-17-2020_10:13:28] Waiting for Edge transport node configurations to complete ... [07-17-2020_10:13:28] Edge transport node is still being configured, sleeping for 30 seconds ... [07-17-2020_10:13:59] Creating Edge Cluster Edge-Cluster-01 and adding Edge Hosts ... [07-17-2020_10:13:59] Edge Cluster has not been realized, sleeping for 10 seconds ... [07-17-2020_10:14:11] Edge Cluster has been realized [07-17-2020_10:14:11] Creating Network Segment Pacific-Segment ... [07-17-2020_10:14:14] Creating T0 Gateway Pacific-T0-Gateway ... [07-17-2020_10:14:22] Creating External T0 Gateway Interface ... [07-17-2020_10:14:23] Adding Static Route on T0 Gateway Interface from 0.0.0.0/0 to 10.32.116.1 ... [07-17-2020_10:14:26] Registering vCenter Server OIDC Endpoint with NSX-T Manager ... [07-17-2020_10:14:27] Disconnecting from NSX-T Manager ... [07-17-2020_10:14:27] Connecting to Management vCenter Server vc.098.co.kr for enabling Pacific ... [07-17-2020_10:14:29] Creating Principal Identity in vCenter Server ... [07-17-2020_10:14:40] Creating local devops User in vCenter Server ... [07-17-2020_10:14:46] Disconnecting from Management vCenter ... [07-17-2020_10:14:46] vSphere with Kubernetes External NSX-T Lab Deployment Complete! [07-17-2020_10:14:46] StartTime: 07/17/2020 21:29:17 [07-17-2020_10:14:46] EndTime: 07/17/2020 22:14:46 [07-17-2020_10:14:46] Duration: 45.48 minutes PS D:\VMware>
혹시 실행하다가 문제가 생기면 화면에 표시된 내용이나, 실행 디렉토리에 생성된 로그 파일을 참고하면 된다.
글쓴이는 하이브리드 vSAN 환경에서 대략 45분 정도가 소요됐다. 가장 많은 시간은 잡아 먹는 부분은 OVA 파일을 전송하는 부분이다. 대략 200mbps 전후로 전송되는 환경에서 저 정도 소요됐다.
잘 되기에 앞서서 낭비한 시간은 비밀 ^^