In questa pagina vengono descritte le risorse dell'API Cluster di Kubernetes utilizzate in GKE On-Prem.
Panoramica
GKE On-Prem supporta le seguenti risorse dell'API Cluster:
- Cluster
- Computer
- Deployment macchina
- Set macchina
- Classi di macchina
GKE On-Prem genera automaticamente queste risorse nei tuoi cluster durante l'installazione; in genere, non è necessario interagire direttamente con tali risorse. Inoltre, la documentazione di GKE On-Prem fa riferimento a queste risorse per illustrare concetti come alta disponibilità.
Puoi controllare quali CustomResourceDefinitions (CRD) dell'API cluster sono disponibili in un cluster:
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
Le seguenti sezioni illustrano le risorse dell'API Cluster attualmente pertinenti per la comprensione di GKE On-Prem.
Cluster
Una risorsa cluster rappresenta un'istanza di Kubernetes in esecuzione su un host. Tutti i cluster GKE On-Prem hanno una risorsa Cluster che descrive il cluster.
Per visualizzare le risorse di un cluster in un cluster, esegui il comando seguente, dove [KUBECONFIG] è il percorso del file kubeconfig del cluster:
kubectl get clusters --kubeconfig [KUBECONFIG]
Di seguito è riportato un esempio di risorsa cluster che potresti vedere in un cluster utente GKE On-Prem:
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:
Computer
In GKE On-Prem, una risorsa macchina è una specifica dichiarativa per una singola macchina virtuale (VM) che si trova in vSphere. Ogni risorsa macchina ha una risorsa Nodo corrispondente creata da GKE On-Prem in base alla specifica della macchina. Queste risorse fanno riferimento allo stesso oggetto fisico: una VM che si trova nel tuo ambiente vSphere.
Per visualizzare le risorse della macchina in un cluster, esegui il comando seguente, dove [KUBECONFIG] è il percorso del file kubeconfig del cluster:
kubectl get machines --kubeconfig [KUBECONFIG]
Di seguito è riportato un esempio di risorsa macchina che potresti vedere in un cluster GKE On-Prem:
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:
Deployment macchina
Un MachineDeployment gestisce un gruppo di macchine: specifica il cluster GKE On-Prem in cui vengono eseguite le macchine, dichiara la loro configurazione vSphere e implementa le modifiche alle configurazioni. Puoi considerare i deployment di macchine e i deployment come deployment e pod.
Per visualizzare le risorse MachineDeployment in un cluster, esegui il comando seguente, dove [KUBECONFIG] è il percorso del file kubeconfig del cluster:
kubectl get machinedeployments --kubeconfig [KUBECONFIG]
Di seguito è riportato un esempio di risorsa MachineDeployment che potresti vedere in un cluster GKE On-Prem:
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: