TKG(Tanzu Kubernetes Grid)는 단일 노드 클러스터를 지원합니다. 단일 노드 클러스터는 호스팅된 워크로드가 단일 ESXi 호스트의 제어부 인프라와 함께 실행되는 워크로드 클러스터입니다.
단일 노드 클러스터의 설치 공간을 더욱 최소화하려면 기본 OS에 대한 Photon 또는 Ubuntu Tiny OVA가 있는 tiny
Tanzu Kubernetes 릴리스(TKr)에서 생성할 수 있습니다. 이러한 클러스터를 최소 단일 노드 클러스터라고 합니다.
단일 노드 클러스터는 vSphere 실행되고 독립형 관리 클러스터에 의해 배포되는 클래스 기반 워크로드 클러스터입니다.
단일 노드 클러스터는 TCA(Telco Cloud Automation)에 대해 완전히 지원됩니다.
참고TMC(Tanzu Mission Control)를 사용하여 단일 노드 클러스터를 생성하고 관리할 수는 없지만 이 기능은 향후 TMC 릴리스를 위해 계획되어 있습니다.
단일 노드 클러스터 사용 사례에는 다음이 포함됩니다.
단일 노드 클러스터는 다음 환경 및 구성 요소에 대해 지원됩니다.
범주 | 지원되는 옵션 |
---|---|
인프라 | vSphere 7, vSphere 8 |
노드 OS | Ubuntu 20.04, Photon 3 |
노드 크기 | small |
패키지 | Cert Manager, Fluent Bit, Multus, Prometheus, Whereabouts |
제어부 끝점 제공자 | Kube-Vip* |
워크로드 로드 밸런서 | Kube-Vip* |
워크로드 클러스터 유형 | 클래스 기반 |
CNI | Antrea, Calico |
연결 모드 | 온라인, 인터넷 제한 |
TKG v2.3의 단일 노드 클러스터에서는 ALB(*NSX Advanced Load Balancer)가 지원되지 않습니다.
kubectl
tiny
Tanzu Kubernetes 릴리스(TKr)를 사용하여 설치 공간을 최소화하는 vSphere에서 단일 노드 워크로드 클러스터를 생성하려면 다음을 수행합니다.
OVA를 준비합니다.
VMware Customer Connect로 이동한 후 VMware Customer Connect 자격 증명을 사용하여 로그인합니다.
Tiny TKG OVA에서 단일 노드 클러스터에 사용할 매우 작은 OVA를 다운로드합니다.
Photon v3 Kubernetes v1.26.8 Tiny OVA
Ubuntu 2004 Kubernetes v1.26.8 Tiny OVA
Tiny OVA를 vSphere 환경으로 가져와서 기본 이미지 템플릿을 vSphere로 가져오기에 설명된 대로 VM 템플릿으로 변환합니다.
단일 노드 워크로드 클러스터를 생성합니다.
참고최소 단일 노드 클러스터를 생성하려면 kubernetes 스타일 개체 규격을 사용하여
tanzu cluster create
명령을 실행해야 합니다. 플랫 클러스터 구성 파일로 시작하는 경우 클래스 기반 클러스터 생성에 설명된 2단계 프로세스를 따라 개체 규격을 생성한 다음 아래 설명된 대로 편집한 후tanzu cluster create
를 두 번째로 실행하여 클러스터를 생성해야 합니다.
환경 변수를 이 예에 설정된 대로 설정합니다.
export CLUSTER_NAME='workload-snc'
export CLUSTER_NAMESPACE='default'
export CLUSTER_CIDR='100.96.0.0/11'
export SERVICE_CIDR='100.64.0.0/13'
export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
export VSPHERE_SERVER=10.185.12.154
export VSPHERE_USERNAME='[email protected]'
export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
export VSPHERE_DATACENTER='/dc0'
export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
export VSPHERE_FOLDER='/dc0/vm'
export VSPHERE_NETWORK='/dc0/network/VM Network'
export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
export OS_NAME='photon'
export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
위 변수를 참조하는 Cluster
및 Secret
개체 규격을 사용하여 vsphere-snc.yaml
매니페스트를 생성합니다.
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
annotations:
tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
labels:
tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
name: ${CLUSTER_NAME}
namespace: ${CLUSTER_NAMESPACE}
spec:
clusterNetwork:
pods:
cidrBlocks:
- ${CLUSTER_CIDR}
services:
cidrBlocks:
- ${SERVICE_CIDR}
topology:
class: tkg-vsphere-default-v1.1.0
controlPlane:
metadata:
annotations:
run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
replicas: 1
variables:
- name: controlPlaneTaint
value: false
- name: auditLogging
value:
enabled: false
- name: apiServerEndpoint
value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
- name: aviAPIServerHAProvider
value: false
- name: imageRepository
value:
host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
- name: trust
value:
additionalTrustedCAs:
- data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
name: imageRepository
- name: vcenter
value:
cloneMode: fullClone
datacenter: ${VSPHERE_DATACENTER}
datastore: ${VSPHERE_DATASTORE}
folder: ${VSPHERE_FOLDER}
network: ${VSPHERE_NETWORK}
resourcePool: ${VSPHERE_RESOURCE_POOL}
server: ${VSPHERE_SERVER}
storagePolicyID: ""
tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
- name: user
value:
sshAuthorizedKeys:
- ${VSPHERE_SSH_AUTHORIZED_KEY}
- name: controlPlane
value:
machine:
diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
version: v1.26.8+vmware.1-tiny.2
---
apiVersion: v1
kind: Secret
metadata:
name: ${CLUSTER_NAME}
namespace: ${CLUSTER_NAMESPACE}
stringData:
password: ${VSPHERE_PASSWORD}
username: ${VSPHERE_USERNAME}
EOF
다음에 유의하십시오.
run.tanzu.vmware.com/resolve-tkr
의 metadata.annotations
설정controlPlaneTaint
의 topology.variables
설정topology.workers
블록은 없으며 topology.controlPlane
만 있습니다.topology.version
은 v2.3.1의 경우 v1.26.5+vmware.1-tiny.2
, v2.2.0의 경우 v1.25.7+vmware.1-tiny.1
, v2.1.1의 경우 v1.24.10+vmware.1-tiny.1
, v2.1.0의 경우 v1.24.9+vmware.1-tiny.2
여야 합니다.(선택 사항) 기본 Antrea CNI 대신 Calico를 CNI로 사용하도록 클러스터를 구성하려면 Supervisor 또는 단일 노드 클래스 기반 워크로드 클러스터용 Calico CNI의 단일 노드 클러스터 지침을 따르십시오.
Cluster
개체 매니페스트를 적용합니다.
tanzu cluster create -f vsphere-snc.yaml
표준 Photon 또는 Ubuntu TKr을 사용하는 vSphere에서 단일 노드 워크로드 클러스터를 생성하려면 다음을 수행합니다.
독립형 관리 클러스터가 있는 vSphere 구성 파일에 설명된 대로 워크로드 클러스터용 플랫 구성 파일을 생성합니다.
--dry-run
플래그와 함께 tanzu cluster create
를 실행하여 개체 규격 생성에 설명된 대로 플랫 구성 파일을 Kubernetes 스타일 Cluster
개체 규격으로 변환합니다.
Cluster
개체 규격을 편집하여 다음 설정을 포함합니다.
topology.controlPlane
에서:
replicas: 1
topology.workers
블록 없음. 있는 경우 삭제합니다.
topology.variables
에서:
- name: controlPlaneTaint
value: false
개체 규격에서 클래스 기반 클러스터 생성에 설명된 대로 수정된 Cluster
개체 규격을 사용하여 tanzu cluster create
를 실행합니다.