Tanzu Kubernetes Grid 서비스 v1alpha2 API를 사용하면 Tanzu Kubernetes 클러스터를 선언적으로 프로비저닝할 수 있습니다. 클러스터를 생성하고 사용자 지정하려면 모든 매개 변수 및 사용 지침의 목록과 설명을 참조하십시오.
Tanzu Kubernetes 클러스터 프로비저닝을 위한 Tanzu Kubernetes Grid 서비스 v1alpha2 API 규격
YAML 규격에는
Tanzu Kubernetes Grid 서비스 v1alpha2 API를 사용하여
Tanzu Kubernetes 클러스터를 프로비저닝하는 데 사용할 수 있는 모든 매개 변수가 나열됩니다.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster metadata: name: string namespace: string spec: topology: controlPlane: replicas: int32 vmClass: string storageClass: string volumes: - name: string mountPath: string capacity: storage: size in GiB tkr: reference: name: string nodeDrainTimeout: string nodePools: - name: string labels: map[string]string taints: - key: string value: string effect: string timeAdded: time replicas: int32 vmClass: string storageClass: string volumes: - name: string mountPath: string capacity: storage: size in GiB tkr: reference: name: string nodeDrainTimeout: string settings: storage: classes: [string] defaultClass: string network: cni: name: string pods: cidrBlocks: [string] services: cidrBlocks: [string] serviceDomain: string proxy: httpProxy: string httpsProxy: string noProxy: [string] trust: additionalTrustedCAs: - name: string data: string
Tanzu Kubernetes 클러스터 프로비저닝을 위한 주석이 달린 Tanzu Kubernetes Grid 서비스 v1alpha2 API 규격
주석이 달린 YAML규격에는 각 필드에 대한 설명서와 함께
Tanzu Kubernetes Grid 서비스 v1alpha2 API를 사용하여
Tanzu Kubernetes 클러스터를 프로비저닝하는 데 사용할 수 있는 모든 매개 변수가 나열됩니다.
참고: 현재는 모든
tkr.reference.name
필드가 일치해야 합니다. 향후에는 노드 풀에 대한 다양한
Tanzu Kubernetes 릴리스가 지원될 수 있습니다.
apiVersion: run.tanzu.vmware.com/v1alpha2 kind: TanzuKubernetesCluster #metadata defines cluster information metadata: #name for this Tanzu Kubernetes cluster name: string #namespace vSphere Namespace where to provision this cluster namespace: string #spec defines cluster configuration spec: #topology describes the number, purpose, organization #of nodes and the resources allocated for each #nodes are grouped into pools based on their purpose #`controlPlane` is special kind of a node pool #`nodePools` is for groups of worker nodes #each node pool is homogeneous: its nodes have the same #resource allocation and use the same storage topology: #controlPlane defines the topology of the cluster #controller, including the number of nodes and #the resources allocated for each #control plane must have an odd number of nodes controlPlane: #replicas is the number of nodes in the pool #the control plane can have 1 or 3 nodes #defaults to 1 if `nil` replicas: int32 #vmClass is the name of the VirtualMachineClass #which describes the virtual hardware settings #to be used for each node in the node pool #vmClass controls the CPU and memory available #to the node and the requests and limits on #those resources; to list available vm classes run #`kubectl describe virtualmachineclasses` vmClass: string #storageClass to be used for storage of the disks #which store the root filesystems of the nodes #to list available storage classes run #`kubectl describe storageclasses` storageClass: string #volumes is the optional set of PVCs to create #and attach to each node; use for high-churn #control plane components such as etcd volumes: #name of the PVC to be used as the suffix (node.name) - name: string #mountPath is the directory where the volume #device is mounted; takes the form /dir/path mountPath: string #capacity is the PVC capacity capacity: #storage to be used for the disk #volume; if not specified defaults to #`spec.controlPlane.storageClass` storage: size in GiB #tkr.reference.name is the TKR NAME #to be used by control plane nodes; supported #format is `v1.21.2---vmware.1-tkg.1.ee25d55` #currently all `tkr.reference.name` fields must match tkr: reference: name: string #nodeDrainTimeout is the total amount of time #the controller will spend draining a node #the default value is 0 which means the node is #drained without any time limit nodeDrainTimeout: string #nodePools is an array that describes a group of #worker nodes in the cluster with the same configuration nodePools: #name of the worker node pool #must be unique in the cluster - name: string #labels are an optional map of string keys and values #to organize and categorize objects #propagated to the created nodes labels: map[string]string #taints specifies optional taints to register the #Node API object with; user-defined taints are #propagated to the created nodes taints: #key is the taint key to be applied to a node - key: string #value is the taint value corresponding to the key value: string #effect is the effect of the taint on pods #that do not tolerate the taint; valid effects are #`NoSchedule`, `PreferNoSchedule`, `NoExecute` effect: string #timeAdded is the time when the taint was added #only written by the system for `NoExecute` taints timeAdded: time #replicas is the number of nodes in the pool #worker nodePool can have from 0 to 150 nodes #value of `nil` means the field is not reconciled, #allowing external services like autoscalers #to choose the number of nodes for the nodePool #by default CAPI's `MachineDeployment` will pick 1 #NOTE: a cluster provisioned with 0 worker nodes/nodepools #is not assigned any load balancer services replicas: int32 #vmClass is the name of the VirtualMachineClass #which describes the virtual hardware settings #to be used for each node in the pool #vmClass controls the CPU and memory available #to the node and the requests and limits on #those resources; to list available vm classes run #`kubectl describe virtualmachineclasses` vmClass: string #storageClass to be used for storage of the disks #which store the root filesystems of the nodes #to list available storage classes run #`kubectl describe ns` storageClass: string #volumes is the optional set of PVCs to create #and attach to each node for high-churn worker node #components such as the container runtime volumes: #name of this PVC to be used as the suffix (node.name) - name: string #mountPath is the directory where the volume #device is mounted; takes the form /dir/path mountPath: string #capacity is the PVC capacity capacity: #storage to be used for the disk #volume; if not specified defaults to #`topology.nodePools[*].storageClass` storage: size in GiB #tkr.reference.name points to the TKR NAME #to be used by `spec.topology.nodePools[*]` nodes; supported #format is `v1.21.2---vmware.1-tkg.1.ee25d55` #currently all `tkr.reference.name` fields must match tkr: reference: name: string #nodeDrainTimeout is the total amount of time #the controller will spend draining a node #the default value is 0 which means the node is #drained without any time limit nodeDrainTimeout: string #settings are optional runtime configurations #for the cluster, including persistent storage #for pods and node network customizations settings: #storage defines persistent volume (PV) storage entries #for container workloads; note that the storage used for #node disks is defined by `topology.controlPlane.storageClass` #and by `spec.topology.nodePools[*].storageClass` storage: #classes is a list of persistent volume (PV) storage #classes to expose for container workloads on the cluster #any class specified must be associated with the #vSphere Namespace where the cluster is provisioned #if omitted, all storage classes associated with the #namespace will be exposed in the cluster classes: [string] #defaultClass treats the named storage class as the default #for the cluster; because all namespaced storage classes #are exposed if specific `classes` are not named, #classes is not required to specify a defaultClass #many workloads, including TKG Extensions and Helm, #require a default storage class #if omitted, no default storage class is set defaultClass: string #netowrk defines custom networking for cluster workloads network: #cni identifies the CNI plugin for the cluster #use to override the default CNI set in the #tkgservicesonfiguration spec, or when customizing #network settings for the default CNI cni: #name is the name of the CNI plugin to use; supported #values are `antrea`, `calico`, `antrea-nsx-routed` name: string #pods configures custom networks for pods #defaults to 192.168.0.0/16 if CNI is `antrea` or `calico` #defaults to empty if CNI is `antrea-nsx-routed` #custom subnet size must equal or exceed /24 #use caution before seeting CIDR range other than /16 #cannot overlap with Supervisor Cluster workload network pods: #cidrBlocks is an array of network ranges; supplying #multiple ranges may not be supported by all CNI plugins cidrBlocks: [string] #services configures custom network for services #defaults to 10.96.0.0/12 #cannot overlap with Supervisor Cluster workload network services: #cidrBlocks is an array of network ranges; supplying #multiple ranges many not be supported by all CNI plugins cidrBlocks: [string] #serviceDomain specifies the service domain for the cluster #defaults to `cluster.local` serviceDomain: string #proxy configures proxy server to be used inside the cluster #if omitted no proxy is configured proxy: #httpProxy is the proxy URI for HTTP connections #to endpoints outside the cluster #takes form `http://<user>:<pwd>@<ip>:<port>` httpProxy: string #httpsProxy is the proxy URL for HTTPS connections #to endpoints outside the cluster #takes the frorm `http://<user>:<pwd>@<ip>:<port>` httpsProxy: string #noProxy is the list of destination domain names, domains, #IP addresses, and other network CIDRs to exclude from proxying #must include Supervisor Cluster Pod, Egress, Ingress CIDRs noProxy: [string] #trust configures additional certificates for the cluster #if omitted no additional certificate is configured trust: #additionalTrustedCAs are additional trusted certificates #can be additional CAs or end certificates additionalTrustedCAs: #name is the name of the additional trusted certificate #must match the name used in the filename - name: string #data holds the contents of the additional trusted cert #PEM Public Certificate data encoded as base64 string #such as `LS0tLS1C...LS0tCg==` where "..." is the #middle section of the long base64 string data: string