Cluster API 리소스

이 페이지에서는 VMware용 GKE에 사용되는 Kubernetes Cluster API 리소스를 간략하게 설명합니다.

개요

VMware용 GKE에는 다음과 같은 Cluster API 리소스가 지원됩니다.

  • 클러스터
  • 머신
  • MachineDeployment
  • MachineSet
  • MachineClasses

VMware용 GKE는 설치 중 클러스터에 이러한 리소스를 자동으로 생성합니다. 일반적으로는 사용자가 이를 직접 관리할 필요가 없습니다. 또한 VMware용 GKE 문서에서는 고가용성과 같은 개념을 설명하기 위해 이러한 리소스를 참조합니다.

클러스터에서 사용할 수 있는 Cluster API CustomResourceDefinition(CRD)을 확인할 수 있습니다.

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

다음 섹션에서는 현재 VMware용 GKE 이해와 관련된 Cluster API 리소스에 대해 설명합니다.

클러스터

Cluster 리소스는 호스트에서 실행되는 Kubernetes 인스턴스를 나타냅니다. 모든 VMware용 GKE 클러스터에는 클러스터를 설명하는 Cluster 리소스가 있습니다.

클러스터에 있는 Cluster 리소스를 보려면 다음 명령어를 실행하세요. 여기서 [KUBECONFIG]는 클러스터의 kubeconfig 파일 경로입니다.

kubectl get clusters --kubeconfig [KUBECONFIG]

다음은 VMware용 GKE 사용자 클러스터에서 볼 수 있는 Cluster 리소스 예시입니다.

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:

머신

VMware용 GKE에서 Machine 리소스는 vSphere에 있는 개별 가상 머신(VM)에 대한 선언적 사양입니다. 각 Machine 리소스에는 머신 사양을 기준으로 VMware용 GKE에서 생성된 해당 노드 리소스가 있습니다. 이러한 리소스는 vSphere 환경에 있는 VM인 동일한 물리적 객체를 나타냅니다.

클러스터에 있는 Machine 리소스를 보려면 다음 명령어를 실행하세요. 여기서 [KUBECONFIG]는 클러스터의 kubeconfig 파일 경로입니다.

kubectl get machines --kubeconfig [KUBECONFIG]

다음은 VMware용 GKE 클러스터에서 볼 수 있는 Machine 리소스 예시입니다.

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

MachineDeployment는 Machine 그룹을 관리합니다. 머신이 실행되는 VMware용 GKE 클러스터를 지정하고, 해당 vSphere 구성을 선언하고, 변경사항을 구성에 적용합니다. MachineDeployment 및 Machine은 배포포드로 이해될 수 있습니다.

클러스터에 있는 MachineDeployment 리소스를 보려면 다음 명령어를 실행하세요. 여기서 [KUBECONFIG]는 클러스터의 kubeconfig 파일 경로입니다.

kubectl get machinedeployments --kubeconfig [KUBECONFIG]

다음은 VMware용 GKE 클러스터에서 볼 수 있는 MachineDeployment 리소스 예시입니다.

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: