本主题介绍如何使用平面配置文件或 Kubernetes 样式的对象规范配置 Tanzu Kubernetes Grid (TKG) 工作负载集群。有关特定于 IaaS 的说明,请参见:
如何配置工作负载集群取决于集群类型,如以下部分中所述。
(more类型)基于类的集群将 Kubernetes 样式的对象规范用于 Cluster
对象。要创建基于类的集群,可以传递此对象规范或具有设置大写下划线变量(如 CLUSTER_NAME
)的平面结构的集群配置文件到 tanzu cluster create
。
ClusterBootstrap
及其引用的对象的规范。(旧版类型)基于计划的集群和 TKC 集群使用具有设置大写下划线变量(如 CLUSTER_NAME
)平面结构的集群配置文件。要创建旧版集群,请将此配置文件传递到 tanzu cluster create
。
有关上述集群类型及其使用的集群 API 提供程序的详细信息,请参见:
kubectl
。有关为工作负载集群选择哪个配置文件的信息,请参见下表。
您可以将 … 与 Tanzu CLI 结合使用 | 创建 … 类型的工作负载集群 | 在基础架构上… |
---|---|---|
平面集群配置文件 |
|
|
Kubernetes 样式对象规范 | 基于类的集群 | 具有主管的 vSphere 8;具有独立管理集群的 vSphere 6.7、7 和 8;AWS 和 Azure |
可以使用集群配置文件配置以下类型的集群:
基于类的集群:这包括部署到:
如果要将基于类的工作负载部署到具有主管的 vSphere 8,则必须从对象规范对其进行部署,如配置主管部署的基于类的集群(仅限 vSphere 8)中所述。
(旧版)基于计划的集群和 TKC 集群:这包括部署到:
将工作负载集群部署到 vSphere、AWS 或 Azure 之前,请为集群创建配置文件。将此文件传递到 tanzu cluster create
的 --file
选项时,Tanzu CLI 使用该文件中定义的配置信息连接到目标平台并创建集群将使用的资源。
要创建集群配置文件,您可以复制先前部署的现有配置文件并进行更新。或者,也可以使用空模板从头开始创建文件:
要设置与基础架构相关的配置信息,请参见:
有关可在集群配置文件中指定的选项的完整列表,请参见配置文件变量参考。
部署工作负载集群时,该集群的大部分配置与用于部署该集群的独立管理集群的配置相同。因此,为工作负载集群创建配置文件的最简单方法是从独立管理集群配置文件的副本开始。
找到管理集群的 YAML 配置文件:
tanzu mc create --ui
时未指定 --file
选项,则配置文件将保存在 ~/.config/tanzu/tkg/clusterconfigs/
中。该文件具有随机生成的名称,例如,bm8xk9bv1v.yaml
。--file
选项,则会从指定的文件中获取管理集群配置。--file
选项中指定的文件或默认位置 ~/.config/tanzu/tkg/cluster-config.yaml
获取管理集群配置。创建管理集群配置文件的副本,并使用新名称保存该文件。例如,将文件另存为 my-aws-cluster.yaml
、my-azure-cluster.yaml
或 my-vsphere-cluster.yaml
。
更新集群配置文件中的设置。如果要将工作负载集群配置为使用默认 Ubuntu 20.04 以外的操作系统,则必须设置 OS_NAME
和 OS_VERSION
值。安装程序界面在保存到 ~/.config/tanzu/tkg/clusterconfigs
的管理集群配置文件中不包含节点虚拟机操作系统值。
保存文件。
要为具有主管的 vSphere 8 上的 TKC 集群准备集群配置文件,请参见配置主管部署的 TKC 集群(旧版)。
可以使用 Kubernetes 样式对象规范文件将基于类的工作负载集群部署到:
对象规范文件与集群配置文件具有相同的用途。将对象规范传递到 tanzu cluster create
是 --file
选项时,Tanzu CLI 使用对象规范中定义的配置信息创建集群。
与其他 Kubernetes 对象一样,您可以通过创建和编辑对象规范来配置基于类的工作负载集群。对于集群对象,以下是:
Cluster
对象:配置大多数集群选项,例如集群拓扑。您可以更改并重新应用此对象规范,以便更改正在运行的集群的配置。ClusterBootstrap
对象:配置仅在首次创建集群时应用的非默认选项,例如容器网络接口 (CNI) 和容器存储接口 (CSI),以及无法在正在运行的集群中重新配置的选项。有关更多信息,请参见配置一次性基础架构设置。要创建第一个对象规范文件,请执行以下操作:
如果要将基于类的工作负载集群部署到无主管的 vSphere 、AWS 或 Azure,则可以使用 Tanzu CLI 将集群配置文件转换为对象规范文件,而无需部署集群:
(全局配置)使用 Tanzu CLI 的 auto-apply-generated-clusterclass-based-configuration
功能。默认情况下,此功能设置为 false
。在 auto-apply-generated-clusterclass-based-configuration
设置为 false
并且您运行具有 --file
标记的 tanzu cluster create
时,命令会将集群配置文件转换为对象规范文件并在不创建集群的情况下退出。查看配置后,使用 Tanzu CLI 生成的对象规范文件重新运行 tanzu cluster create
,如从对象规范中创建基于类的集群中所述。如果已更新默认配置,则将其重新设置为 false
,请运行:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(单个集群)将 --dry-run
选项传递到 tanzu cluster create
并将输出保存到文件中。使用相同的选项和配置 --file
,即您在创建集群时将使用的选项和配置,例如:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
然后,您可以使用此对象规范部署集群,如从对象规范创建基于类的集群中所述。
如果要将基于类的工作负载集群部署到具有主管的 vSphere 8,请创建或调整 Cluster
对象规范,如配置主管部署的基于类的集群(仅 vSphere 8) 中所述。vSphere 8 文档提供了要使用的示例 Cluster
对象规范,例如v1beta1 示例:默认集群。
您可以在 Cluster
对象规范中配置最常见的集群设置,但某些集群组件来自集群节点所基于的 Tanzu Kubernetes 版本 (TKr)。例如,TKr 指定集群使用的 CNI、CSI 和 Pinniped 版本。
这些基础架构级别选项在 ClusterBootstrap
对象创建集群时应用且无法在正在运行的集群中更改。在创建集群之前配置这些选项的一般过程是:
为 ClusterBootstrap
及其引用的任何自定义对象创建对象规范,例如 CalicoConfig
对象。
为 Cluster
对象本身创建对象规范。
在所有对象规范的 metadata
中,包括要创建的集群的名称和命名空间,例如:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
自定义可能需要其他元数据,例如注释。
将所有对象规范(包括 Cluster
定义)连接到单个文件中。使用包含三个短划线 (---
) 的行分隔规范。
将对象规范传递到 kubectl apply
的 --file
选项,例如:
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
替代方法:作为最后两个步骤的替代方法,您可以对除 Cluster
对象以外的所有对象规范运行 kubectl apply -f
,然后使用 Cluster
对象规范运行 tanzu cluster create --file
。
有关此过程的特定示例,请参见使用非默认 CNI 创建集群,该示例将集群的 CNI 设置为 Calico。
kubectl
和 kubeconfig
创建工作负载集群时,Tanzu Kubernetes Grid 不会自动将 kubectl
上下文设置为工作负载集群。必须使用 kubectl config use-context
命令手动设置工作负载集群的 kubectl
上下文。
默认情况下,除非您指定 KUBECONFIG
选项以将集群的 kubeconfig
保存到特定文件,否则部署的所有工作负载集群都将添加到共享的 .kube/config
文件中。如果您删除共享的 .kube/config
文件,但仍具有管理集群的 .kube-tkg/config
文件,则可以使用 tanzu cluster kubeconfig get CLUSTER-NAME
命令恢复工作负载集群的 .kube/config
。
在 Tanzu Kubernetes Grid 操作正在运行时,请勿更改上下文或编辑 .kube-tkg/config
或 .kube/config
文件。
继续执行基础架构的集群配置主题: