Risorse API cluster

Questa pagina descrive le risorse dell'API Cluster di Kubernetes utilizzate nei cluster Anthos su VMware (GKE on-prem).

Panoramica

I cluster Anthos su VMware supportano le seguenti risorse dell'API Cluster:

  • cluster
  • Computer
  • Deployment macchina
  • Set macchina
  • Classi di macchina

I cluster Anthos su VMware generano automaticamente queste risorse nei cluster durante l'installazione; in genere, non è necessario interagire direttamente con loro. Inoltre, la documentazione dei cluster Anthos su VMware 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 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 sui cluster VMware 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 Anthos su cluster utente 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:

Computer

Nei cluster Anthos su VMware, 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 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 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 VM che potresti vedere in un cluster Anthos sul cluster 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 sul cluster VMware in cui vengono eseguite le macchine, dichiara la 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 Anthos sul cluster 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: