Auf dieser Seite werden die Kubernetes Anthos-Cluster API-Ressourcen beschrieben, die in Anthos-Cluster auf VMware (GKE On-Prem) verwendet werden.
Übersicht
Anthos-Cluster auf VMware unterstützen die folgenden Cluster API-Ressourcen:
- Cluster
- Maschine
- MachineDeployment
- MachineSet
- MachineClasses
Anthos-Cluster auf VMware generieren diese Ressourcen während der Installation automatisch in Ihren Clustern. Im Allgemeinen müssen Sie nicht direkt mit ihnen interagieren. Darüber hinaus wird in Anthos-Clustern auf VMware-Dokumentation auf diese Ressourcen verwiesen, um Konzepte wie Hochverfügbarkeit zu veranschaulichen.
Sie können prüfen, welche CustomResourceDefinitions (CRDs) der Cluster API in einem Cluster verfügbar sind:
kubectl get crds | grep "cluster.k8s.io" clusters.cluster.k8s.io machineclasses.cluster.k8s.io machinedeployments.cluster.k8s.io machines.cluster.k8s.io machinesets.cluster.k8s.io
In den folgenden Abschnitten werden die Cluster API-Ressourcen erläutert, die derzeit für das Verständnis von Anthos-Clustern auf VMware relevant sind.
Cluster
Eine Clusterressource stellt eine Instanz von Kubernetes dar, die auf einem Host ausgeführt wird. Alle Anthos-Cluster auf VMware-Clustern verfügen über eine Clusterressource, die den Cluster beschreibt.
Führen Sie zum Ansehen der Clusterressourcen in einem Cluster den folgenden Befehl aus, wobei [KUBECONFIG] der Pfad zur kubeconfig-Datei des Clusters ist:
kubectl get clusters --kubeconfig [KUBECONFIG]
Im Folgenden finden Sie ein Beispiel für eine Clusterressource, die in einem Anthos-Cluster auf einem VMware-Nutzercluster angezeigt werden kann:
apiVersion: cluster.k8s.io/v1alpha1 kind: Cluster metadata: annotations: addons.gke.io/loadbalancerip: "" bundle.gke.io/target-version: bundle.gke.io/version: onprem.gke.io/provider: vsphere creationTimestamp: finalizers: - cluster.cluster.k8s.io generation: name: example-user-cluster namespace: default resourceVersion: "" selfLink: /apis/cluster.k8s.io/v1alpha1/namespaces/default/clusters/example-user-cluster uid: spec: clusterNetwork: pods: cidrBlocks: - serviceDomain: cluster.local services: cidrBlocks: - providerSpec: value: apiVersion: vsphereproviderconfig.k8s.io/v1alpha1 controlPlaneReplicas: controlPlaneVersion: kind: VsphereClusterProviderConfig loadBalancerIP: loadBalancerNodePort: metadata: creationTimestamp: networkSpec: dns: ntp: "" reservedAddresses: oidcSpec: sniCert: vsphereDatacenter: vsphereDefaultDatastore: vsphereNetwork: vsphereResourcePool: status: apiEndpoints: - host: port:
Maschine
In Anthos-Clustern auf VMware ist eine Maschinenressource eine deklarative Spezifikation für eine einzelne virtuelle Maschine (VM), die in vSphere ausgeführt wird. Jede Maschinenressource verfügt über eine entsprechende Knotenressource, die von Anthos-Clustern auf VMware basierend auf der Maschinenspezifikation erstellt wird. Diese Ressourcen verweisen auf dasselbe physische Objekt: eine VM, die sich in Ihrer vSphere-Umgebung befindet.
Führen Sie den folgenden Befehl aus, um Maschinenressourcen in einem Cluster abzurufen. Dabei ist [KUBECONFIG] der Pfad zur kubeconfig-Datei des Clusters:
kubectl get machines --kubeconfig [KUBECONFIG]
Das folgende Beispiel zeigt eine Maschinenressource, die möglicherweise in einem Anthos-Cluster auf einem VMware-Cluster angezeigt wird:
apiVersion: cluster.k8s.io/v1alpha1 kind: Machine metadata: annotations: control-plane-version: "" kubelet-version: onprem.gke.io/provider: vsphere vm-ip-address: vsphere-machine-state: vsphere-machine-uuid: creationTimestamp: finalizers: - machine.cluster.k8s.io generateName: example-cluster-node generation: labels: kubernetes.googleapis.com/cluster-name: example-cluster-node kubernetes.googleapis.com/cluster-namespace: machine-template-hash: "" set: node name: example-cluster-node namespace: default ownerReferences: - apiVersion: cluster.k8s.io/v1alpha1 blockOwnerDeletion: controller: kind: MachineSet name: example-cluster-node uid: resourceVersion: "" selfLink: /apis/cluster.k8s.io/v1alpha1/namespaces/default/machines/example-cluster-node uid: spec: metadata: creationTimestamp: providerSpec: value: apiVersion: vsphereproviderconfig.k8s.io/v1alpha1 kind: VsphereMachineProviderConfig machineVariables: datacenter: datastore: disk_label: disk_size: "" memory: "" network: num_cpus: "" resource_pool: vm_template: metadata: creationTimestamp: networkSpec: address: dns: ntp: "" useIPAM: vsphereMachine: versions: kubelet: status: lastUpdated: nodeRef: kind: Node name: uid:
MachineDeployment
Ein MachineDeployment verwaltet eine Gruppe von Maschinen: Es wird der Anthos-Cluster auf VMware angegeben, in dem die Maschinen ausgeführt werden, ihre vSphere-Konfiguration wird deklariert und es werden Änderungen an Konfigurationen eingeführt. Sie können sich MachineDeployments und Maschinen wie Deployments und Pods vorstellen.
Führen Sie den folgenden Befehl aus, um sich MachineDeployment-Ressourcen in einem Cluster anzusehen. Dabei ist [KUBECONFIG] der Pfad zur kubeconfig-Datei des Clusters:
kubectl get machinedeployments --kubeconfig [KUBECONFIG]
Das folgende Beispiel zeigt eine MachineDeployment-Ressource, die möglicherweise in einem Anthos-Cluster auf einem VMware-Cluster angezeigt wird:
apiVersion: cluster.k8s.io/v1alpha1 kind: MachineDeployment metadata: annotations: machinedeployment.clusters.k8s.io/revision: "1" onprem.gke.io/provider: vsphere creationTimestamp: generation: 2 labels: kubernetes.googleapis.com/cluster-name: example-cluster kubernetes.googleapis.com/cluster-namespace: set: node name: example-cluster namespace: default resourceVersion: "" selfLink: /apis/cluster.k8s.io/v1alpha1/namespaces/default/machinedeployments/example-cluster uid: spec: minReadySeconds: 0 progressDeadlineSeconds: replicas: revisionHistoryLimit: selector: matchLabels: kubernetes.googleapis.com/cluster-name: example-cluster kubernetes.googleapis.com/cluster-namespace: default set: node strategy: rollingUpdate: maxSurge: maxUnavailable: type: RollingUpdate template: metadata: annotations: onprem.gke.io/provider: vsphere creationTimestamp: null labels: kubernetes.googleapis.com/cluster-name: example-cluster kubernetes.googleapis.com/cluster-namespace: set: node spec: metadata: creationTimestamp: providerSpec: value: apiVersion: vsphereproviderconfig.k8s.io/v1alpha1 kind: VsphereMachineProviderConfig machineVariables: datacenter: datastore: disk_label: disk_size: "" memory: "" network: num_cpus: "" resource_pool: example-cluster vm_template: metadata: creationTimestamp: networkSpec: address: dns: ntp: "" useIPAM: vsphereMachine: versions: kubelet: status: availableReplicas: observedGeneration: readyReplicas: replicas: updatedReplicas: