Tanzu Kubernetes 클러스터는 YAML을 사용하여 정의한 클러스터 규격 및 kubectl을 사용하여 Tanzu Kubernetes Grid 서비스 선언적 API를 호출하여 프로비저닝합니다. 클러스터를 프로비저닝한 후 클러스터를 운영하고 kubectl을 사용하여 워크로드를 배포합니다.
이 워크플로는 클러스터 프로비저닝 프로세스에 대한 전체 절차를 제공합니다. 각 단계에는 특정 작업에 대한 자세한 정보를 제공하는 링크가 있습니다.
프로시저
- 이 항목의 맨 위에 나열된 사전 요구 사항이 완료되었는지 확인합니다.
- vSphere에 대한 Kubernetes CLI 도구를 다운로드하고 설치합니다.
- kubectl용 vSphere 플러그인을 사용하여 감독자 클러스터로 인증합니다.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- 감독자 클러스터에 성공적으로 로그인되었는지 확인합니다.
다음과 유사한 메시지가 표시됩니다.
Logged in successfully.
You have access to the following contexts:
192.197.2.65
tkgs-ns
여기서
192.197.2.65
는
감독자 클러스터 컨텍스트이고
tkgs-ns
는
Tanzu Kubernetes 클러스터를 프로비저닝할
vSphere 네임스페이스의 컨텍스트입니다.
- 대상 vSphere 네임스페이스가 현재 컨텍스트인지 확인합니다.
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
192.197.2.65 192.197.2.65 wcp:192.197.2.65:user@vsphere.local
* tkgs-ns 192.197.2.65 wcp:192.197.2.65:user@vsphere.local tkgs-ns
대상
vSphere 네임스페이스가 현재 컨텍스트가 아니면 해당 컨텍스트로 전환합니다.
kubectl config use-context tkgs-ns
- 대상 vSphere 네임스페이스에서 사용할 수 있는 가상 시스템 클래스 바인딩을 나열합니다.
kubectl get virtualmachineclassbindings
대상 네임스페이스에 바인딩된 VM 클래스만 사용할 수 있습니다.
- 사용 가능한 영구 볼륨 스토리지 클래스를 가져옵니다.
kubectl describe storageclasses
- 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
다음 명령 중 하나를 사용할 수 있습니다.
kubectl get tkr
kubectl get tanzukubernetesreleases
- Tanzu Kubernetes 클러스터 프로비저닝을 위한 YAML 파일을 생성합니다.
- 예제 YAML 파일 중 하나로 시작합니다.
- 이전 명령의 출력에서 모은 정보를 사용하여 클러스터 YAML을 채웁니다. 예를 들면 다음과 같습니다.
- 대상 vSphere 네임스페이스:
tkgs-ns
- 변동률이 높은 노드 구성 요소에 대한 별도의 볼륨:
etcd
및 containerd
- 클러스터 노드 및 워크로드에 대한 스토리지 클래스:
vwt-storage-policy
- 바인딩된 VM 클래스:
guaranteed-medium
및 guaranteed-small
- TKR NAME:
v1.21.6---vmware.1-tkg.1.b3d708a
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
name: tkgs-cluster-1
namespace: tkgs-ns
spec:
topology:
controlPlane:
replicas: 3
vmClass: guaranteed-medium
storageClass: vwt-storage-policy
volumes:
- name: etcd
mountPath: /var/lib/etcd
capacity:
storage: 4Gi
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
nodePools:
- name: worker-nodepool-a1
replicas: 3
vmClass: guaranteed-medium
storageClass: vwt-storage-policy
volumes:
- name: containerd
mountPath: /var/lib/containerd
capacity:
storage: 16Gi
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
- name: worker-nodepool-a2
replicas: 2
vmClass: guaranteed-small
storageClass: vwt-storage-policy
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
settings:
storage:
defaultClass: vwt-storage-policy
참고: 이 예에서는 기본 클러스터 네트워킹, 즉 클러스터 포드 및 서비스에 대한 Antrea CNI 및 기본 CIDR 범위가 사용됩니다.
- 구성 매개 변수의 전체 목록을 참조하여 필요에 따라 클러스터를 사용자 지정합니다.
- 파일을
tkgs-cluster-1.yaml
또는 이와 유사하게 저장합니다.
- 다음 kubectl 명령을 실행하여 클러스터를 프로비저닝합니다.
kubectl apply -f tkgs-cluster-1.yaml
예상 결과:
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
- kubectl을 사용하여 클러스터 노드의 배포를 모니터링합니다.
kubectl get tanzukubernetesclusters
처음에는 클러스터가 프로비저닝 중이기 때문에 준비되지 않았습니다.
NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE
tkgs-cluster-1 3 5 v1.21.6---vmware.1-tkg.1.b3d708a 2m4s False True
몇 분 후에 READY 상태가 True여야 합니다.
NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE
tkgs-cluster-1 3 5 v1.21.6---vmware.1-tkg.1.b3d708a 13m True True
- vSphere Client를 사용하여 클러스터 노드의 배포를 모니터링합니다.
vSphere
호스트 및 클러스터 인벤토리에서 가상 시스템 노드가 대상
vSphere 네임스페이스에 배포되는 것을 볼 수 있습니다.
-
kubectl
명령을 추가로 실행하여 클러스터 프로비저닝을 확인합니다.
kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
- kubectl용 vSphere 플러그인을 사용하여 클러스터에 로그인합니다.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \
--tanzu-kubernetes-cluster-name CLUSTER-NAME \
--tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
예:
kubectl vsphere login --server=192.197.2.65 --vsphere-username user@vsphere.local \
--tanzu-kubernetes-cluster-name tkgs-cluster-1 --tanzu-kubernetes-cluster-namespace tkgs-ns
- Tanzu Kubernetes 클러스터에 성공적으로 로그인되었는지 확인합니다.
다음과 유사한 메시지가 표시됩니다.
Logged in successfully.
You have access to the following contexts:
192.197.2.65
tkgs-cluster-1
tkgs-ns
여기서
192.197.2.65
는
감독자 클러스터 컨텍스트이고,
tkgs-ns
는
vSphere 네임스페이스 컨텍스트이고,
tkgs-cluster-1
는
Tanzu Kubernetes 클러스터 컨텍스트입니다.
-
kubectl
을 사용하여 사용 가능한 클러스터 컨텍스트를 나열합니다.
kubectl config get-contexts
예:
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
192.197.2.65 192.197.2.65 wcp:192.197.2.65:administrator@vsphere.local
* tkgs-cluster-1 192.197.2.67 wcp:192.197.2.67:administrator@vsphere.local
tkgs-ns 192.197.2.65 wcp:192.197.2.65:administrator@vsphere.local tkgs-ns
필요한 경우
kubect config use-context tkgs-cluster-1
을 사용하여 현재 컨텍스트가 되도록
Tanzu Kubernetes 클러스터로 전환합니다.
- 다음 kubectl 명령을 사용하여 클러스터 프로비저닝을 확인합니다.
예:
NAME STATUS ROLES AGE VERSION
tkgs-cluster-1-control-plane-6ln2h Ready control-plane,master 30m v1.21.6+vmware.1
tkgs-cluster-1-control-plane-6q67n Ready control-plane,master 33m v1.21.6+vmware.1
tkgs-cluster-1-control-plane-jw964 Ready control-plane,master 37m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-h5fp8 Ready <none> 32m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-q4g24 Ready <none> 33m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-vdcn4 Ready <none> 33m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-nh4dg Ready <none> 34m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-vvfmf Ready <none> 33m v1.21.6+vmware.1
- kubectl 명령을 추가로 사용하여 클러스터 프로비저닝을 확인합니다.
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- 적절한 포드 보안 정책을 정의합니다.
워크로드 및 사용자에 따라 시스템에서 제공된 PodSecurityPolicy에 대한 바인딩을 생성하거나 사용자 지정 PodSecurityPolicy를 생성해야 합니다.
포드 보안 정책에 대한 역할 바인딩 예의 내용을 참조하십시오.
- 예제 워크로드를 배포하고 클러스터 생성을 확인합니다.
- TKG 확장을 배포하여 클러스터를 운영합니다.