Tanzu Kubernetes Grid (TKG) 支援單節點叢集。單節點叢集是工作負載叢集,其中主控的工作負載與控制平面基礎結構一起在單一 ESXi 主機上執行。
若要進一步最小化單節點叢集的磁碟使用量,您可以從 tiny
Tanzu Kubernetes 版本 (Tkr) 建立該叢集,而該版本的基礎作業系統有 Photon 或 Ubuntu Tiny OVA。此類叢集稱為最小單節點叢集。
單節點叢集是在 vSphere 上執行且由獨立管理叢集部署的以類別為基礎的工作負載叢集。
Telco Cloud Automation (TCA) 完全支援單節點叢集。
附註無法使用 Tanzu Mission Control (TMC) 建立和管理單節點叢集,但此功能計劃在將來的 TMC 版本中提供。
單節點叢集使用案例包括:
以下環境和元件支援單節點叢集:
類別 | 支援的選項 |
---|---|
基礎結構 | vSphere 7、vSphere 8 |
節點作業系統 | Ubuntu 20.04、Photon 3 |
節點大小 | 小型 |
套件 | Cert Manager、Fluent Bit、Multus、Prometheus、Whereabouts |
控制平面端點提供者 | Kube-Vip* |
工作負載平衡器 | Kube-Vip* |
工作負載叢集類型 | 以類別為基礎 |
CNI | Antrea、Calico |
連接模式 | 線上、網際網路受限 |
*TKG v2.4 中的單節點叢集不支援 NSX Advanced Load Balancer (ALB)。
kubectl
若要在使用 tiny
Tanzu Kubernetes 版本 (TKr) 以最小化磁碟使用量的 vSphere 上建立單節點工作負載叢集,請執行以下動作:
準備 OVA:
瀏覽至 Tanzu Kubernetes Grid 下載頁面,然後登入 Customer Connect。
在 VMware Tanzu Kubernetes Grid 資料列中,按一下移至下載 (Go to Downloads)。
選取版本 2.x
並按一下 VMware Tanzu Kubernetes Grid > 移至下載 (GO TO DOWNLOADS)。
在 Tiny TKG OVA 下,下載 Tiny OVA 以用於單節點叢集:
Photon v3 Kubernetes v1.27.5 Tiny OVA
Ubuntu 2004 Kubernetes v1.27.5 微小 OVA
將 Tiny OVA 匯入您的 vSphere 環境,並將其轉換為虛擬機器範本,如將基礎映像範本匯入到 vSphere 中所述。
建立單節點工作負載叢集。
附註如要建立最小單節點叢集,必須使用 Kubernetes 樣式的物件規格執行
tanzu cluster create
命令。如果從平面叢集組態檔開始,則必須按照 建立以類別為基礎的叢集中所述的兩個步驟過程產生物件規格,然後第二次執行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.1
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.27.5+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
應為 v1.25.7+vmware.1-tiny.1
(適用於 v2.2.0)、v1.24.10+vmware.1-tiny.1
(適用於 v2.1.1) 和 v1.24.9+vmware.1-tiny.2
(適用於 v2.1.0)。(選用) 若要將叢集設定為使用 Calico 作為 CNI 而非預設的 Antrea CNI,請依照適用於主管或以單節點類別為基礎的工作負載叢集的 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
,如從物件規格來建立以類別為基礎的叢集中所述。