Risorse API cluster

Questa pagina descrive le risorse API cluster Kubernetes utilizzate in Cluster Anthos su VMware (GKE On-Prem).

Panoramica

Cluster Anthos su VMware supporta le seguenti risorse API Cluster:

  • Cluster
  • Macchina
  • Deployment macchina
  • Set macchina
  • Classi di macchina

I cluster Anthos su VMware generano automaticamente queste risorse nei tuoi cluster durante l'installazione; in genere, non è necessario interagire direttamente con loro. Inoltre, la documentazione di Cluster Anthos su VMware fa riferimento a queste risorse per illustrare concetti come l'alta disponibilità.

Puoi controllare quali API ClusterResourceDefinizioni (CRD) del 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 descrivono le risorse dell'API Cluster attualmente pertinenti per comprendere i cluster Anthos su VMware.

Cluster

Una risorsa cluster rappresenta un'istanza di Kubernetes in esecuzione su un host. Tutti i cluster Anthos su VMware hanno una risorsa cluster che descrive il cluster.

Per visualizzare le risorse del cluster in un cluster, esegui questo comando, dove [KUBECONFIG] è il percorso del file kubeconfig del cluster:

kubectl get clusters --kubeconfig [KUBECONFIG]

Di seguito è riportato un esempio di una risorsa cluster che potresti vedere in un cluster utente Cluster Anthos su VMware:

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:

Macchina

Nei cluster Anthos su VMware, una risorsa macchina è una specifica dichiarativa per una singola macchina virtuale (VM) che risiede in vSphere. Ogni risorsa macchina ha una risorsa Nodo corrispondente creata dai cluster Anthos su VMware 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 macchina in un cluster, esegui il comando seguente, in cui [KUBECONFIG] è il percorso del file kubeconfig del cluster:

kubectl get machines --kubeconfig [KUBECONFIG]

Di seguito è riportato un esempio di una risorsa macchina che potresti vedere in un cluster Cluster Anthos su VMware:

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 i cluster Anthos su VMware in cui le macchine vengono eseguite, dichiara la loro configurazione vSphere e implementa le modifiche alle configurazioni. Puoi pensare a VM e deployment di macchine come a 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 una risorsa MachineDeployment che potresti visualizzare in un cluster Cluster Anthos su VMware:

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: