워크로드 클러스터에 연결 및 검사

워크로드 클러스터를 배포한 후에는 tanzu cluster listtanzu cluster kubeconfig get 명령을 사용하여 실행 중인 클러스터 및 해당 자격 증명의 목록을 가져옵니다. 그런 다음 kubectl을 사용하여 클러스터에 연결하고 클러스터 작업을 시작할 수 있습니다.

배포된 워크로드 클러스터 나열

워크로드 클러스터 및 워크로드 클러스터를 관리하는 관리 클러스터를 나열하려면 tanzu cluster list 명령을 사용합니다.

  • 관리 클러스터의 default 네임스페이스에서 실행 중인 모든 워크로드 클러스터를 나열하려면 tanzu cluster list 명령을 실행합니다.

    tanzu cluster list
    

    출력에는 클러스터 이름, 현재 상태, 실제 및 요청된 제어부 및 Worker 노드의 수, 클러스터가 실행 중인 Kubernetes 버전을 포함하여 기본 네임스페이스에 있는 모든 워크로드 클러스터가 나열됩니다.

    클러스터의 상태는 다음과 입니다.

    • creating: 제어부를 생성하는 중입니다.
    • createStalled: 제어부 생성 프로세스가 중단되었습니다.
    • deleting: 클러스터가 삭제되는 중입니다.
    • failed: 제어부를 생성하지 못했습니다.
    • running: 제어부가 완전히 초기화되었습니다.
    • updating: 클러스터가 업데이트를 롤아웃하는 중이거나 노드를 확장하고 있습니다.
    • updateFailed: 클러스터 업데이트 프로세스가 실패했습니다.
    • updateStalled: 클러스터 업데이트 프로세스가 중단되었습니다.
    • 상태 없음: 클러스터 생성이 아직 시작되지 않았습니다.

    클러스터가 중단된 상태인 경우 외부 레지스트리의 네트워크 연결이 있는지 확인하고, 작업을 완료할 수 있는 충분한 리소스가 대상 플랫폼에 있는지 확인하고, DHCP가 IPv4 주소를 올바르게 실행하고 있는지 확인합니다.

  • 액세스할 수 있는 모든 네임스페이스에 클러스터를 나열하려면 -A 또는 --all-namespaces 옵션을 지정합니다.

    tanzu cluster list --all-namespaces
    
  • 지정된 네임스페이스에서 실행 중인 클러스터만 나열하려면 --namespace 옵션을 지정합니다.

    tanzu cluster list --namespace=NAMESPACE
    

    여기서 NAMESPACE는 클러스터가 실행되는 네임스페이스입니다.

    vSphere with Tanzu에서 DevOps 엔지니어는 액세스할 수 있는 네임스페이스를 지정하기 위해 tanzu cluster list를 실행할 때 --namespace 값을 포함해야 합니다. VMware vSphere 설명서의 vSphere with Tanzu 사용자 역할 및 워크플로를 참조하십시오.

  • 독립형 관리 클러스터에 로그인한 경우 현재 독립형 관리 클러스터를 tanzu cluster list 출력에 포함하려면 --include-management-cluster -A 옵션을 지정합니다.

    tanzu cluster list --include-management-cluster -A
    

    관리 클러스터가 tkg-system 네임스페이스에서 실행 중이며 management 역할을 볼 수 있습니다.

    NAME                   NAMESPACE   STATUS         CONTROLPLANE  WORKERS  KUBERNETES        ROLES       PLAN  TKR
    workload-cluster-1     default     running        1/1           1/1      v1.25.7+vmware.1 <none>      dev   v1.25.7---vmware.1-tkg.1
    workload-cluster-2     default     running        1/1           1/1      v1.25.7+vmware.1 <none>      dev   v1.25.7---vmware.1-tkg.1
    mgmt-cluster           tkg-system  running        1/1           1/1      v1.25.7+vmware.1 management  dev   v1.25.7---vmware.1-tkg.1
    
  • 모든 관리 클러스터를 보고 Tanzu CLI의 컨텍스트를 다른 관리 클러스터로 변경하려면 tanzu login 명령을 실행합니다. 자세한 내용은 관리 클러스터 목록 및 컨텍스트 변경을 참조하십시오.

워크로드 클러스터 세부 정보를 파일로 내보내기

액세스 권한이 있는 클러스터의 세부 정보를 JSON 또는 YAML 형식으로 내보낼 수 있습니다. JSON 또는 YAML을 파일에 저장할 수 있기 때문에 스크립트에서 사용하여 클러스터에서 대량 작업을 실행할 수 있습니다.

JSON 파일로 내보내기

클러스터 세부 정보를 JSON으로 내보내려면 --output 옵션을 사용하여 tanzu cluster list를 실행하고 json을 지정합니다.

tanzu cluster list --output json > clusters.json

출력에는 클러스터 정보가 JSON으로 표시됩니다.

[
  {
    "name": "workload-cluster-1",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.25.7+vmware.1",
    "roles": [],
    "tkr": "v1.25.7---vmware.1-tkg.1",
    "labels": {
      "cluster.x-k8s.io/cluster-name": "workload-cluster-1",
      "run.tanzu.vmware.com/tkr": "v1.25.7---vmware.1-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-1",
      "topology.cluster.x-k8s.io/owned": ""
    }
  },
  {
    "name": "workload-cluster-2",
    "namespace": "default",
    "status": "running",
    "plan": "dev",
    "controlplane": "1/1",
    "workers": "1/1",
    "kubernetes": "v1.25.7+vmware.1",
    "roles": [],
    "tkr": "v1.25.7---vmware.1-tkg.1",
    "labels": {
      "tanzuKubernetesRelease": "v1.25.7---vmware.1-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
    }
  }
]

YAML 파일로 내보내기

클러스터 세부 정보를 YAML로 내보내려면 --output 옵션을 사용하여 tanzu cluster list를 실행하고 yaml을 지정합니다.

tanzu cluster list --output yaml > clusters.yaml

출력에는 클러스터 정보가 YAML로 표시됩니다.

- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.25.7+vmware.1
  roles: []
  tkr: v1.25.7---vmware.1-tkg.1
  labels:
    cluster.x-k8s.io/cluster-name: workload-cluster-1
    run.tanzu.vmware.com/tkr: v1.25.7---vmware.1-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
    topology.cluster.x-k8s.io/owned: ""
- name: workload-cluster-1
  namespace: default
  status: running
  plan: dev
  controlplane: 1/1
  workers: 1/1
  kubernetes: v1.25.7+vmware.1
  roles: []
  tkr: v1.25.7---vmware.1-tkg.1
  labels:
    tanzuKubernetesRelease: v1.25.7---vmware.1-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1

여러 클러스터에 대한 세부 정보 내보내기

컨텍스트 및 kubeconfig 파일을 포함하여 여러 관리 클러스터의 세부 정보를 저장하는 방법에 대한 자세한 내용은 관리 클러스터 관리를 참조하십시오.

워크로드 클러스터 kubeconfig 검색

워크로드 클러스터를 생성한 후 클러스터의 이름을 지정하고 tanzu cluster kubeconfig get 명령을 실행하여 해당 컨텍스트와 kubeconfig 설정을 가져올 수 있습니다. 기본적으로 명령은 클러스터의 kubeconfig 설정을 현재 kubeconfig 파일에 추가합니다.

tanzu cluster kubeconfig get my-cluster
중요

클러스터에 ID 관리가 구성되지 않은 경우 --admin 옵션을 지정해야 합니다.

kubeconfig 파일로 내보내려면 --export-file 옵션을 지정합니다.

tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
중요

kubeconfig 파일을 삭제하면 Tanzu CLI에서 배포한 모든 클러스터에 액세스할 수 없게 됩니다.

클러스터에 ID 관리 및 RBAC(역할 기반 액세스 제어)가 구성된 경우 표준 관리자가 아닌 kubeconfig 자격 증명을 가진 사용자는 클러스터에 로그인하기 위해 외부 ID 제공자로 인증해야 합니다.

관리자 kubeconfig

내장형 자격 증명으로 독립형 관리자 kubeconfig 파일을 생성하려면 --admin 옵션을 추가합니다. 이 kubeconfig 파일은 사용자에게 클러스터의 리소스에 대한 전체 액세스 권한을 부여하고 ID 제공자에 로그인하지 않고 클러스터에 액세스할 수 있도록 합니다.

tanzu cluster kubeconfig get my-cluster --admin

다음 출력을 볼 수 있습니다.

You can now access the cluster by running 'kubectl config use-context my-cluster-admin@my-cluster'

표준 kubeconfig

대상 클러스터에 ID 관리가 구성된 경우 사용자가 외부 ID 제공자를 사용하여 인증을 받아야 하고 할당된 역할을 기준으로 클러스터 리소스에 대한 액세스 권한을 부여하도록 요구하는 비-관리자 kubeconfig를 생성할 수 있습니다. 이 경우 --admin 옵션 없이 tanzu cluster kubeconfig get을 실행합니다.

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE

여기서 CLUSTER-NAMENAMESPACE는 대상 클러스터 및 네임스페이스입니다.

다음 출력을 볼 수 있습니다.

You can now access the cluster by running 'kubectl config use-context ...'

예를 들어 개발자에게 배포하기 위해 독립형 kubeconfig 파일에 구성 정보를 저장하려면 --export-file 옵션을 지정합니다. 이 kubeconfig 파일을 사용하려면 사용자가 외부 ID 제공자를 사용하여 인증해야 하며, 할당된 역할을 기준으로 클러스터 리소스에 대한 액세스 권한을 부여합니다.

tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
중요

기본적으로 클러스터의 kubeconfig를 특정 파일에 저장하는 --export-file 옵션을 지정하지 않으면 Tanzu CLI에서 배포하는 모든 클러스터의 자격 증명이 공유된 kubeconfig 파일에 추가됩니다. 공유된 kubeconfig 파일을 삭제하면 모든 클러스터를 사용할 수 없게 됩니다.

배포된 클러스터 검사

자격 증명을 kubeconfig에 추가한 후에는 kubectl을 사용하여 클러스터에 연결할 수 있습니다.

  1. 사용 가능한 컨텍스트 가져오기:

    kubectl config get-contexts
    
  2. kubectl을 클러스터로 가리킵니다. 예:

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. kubectl을 사용하여 클러스터의 노드 상태를 확인합니다.

    kubectl get nodes
    

    예를 들어 dev 계획을 사용하여 my-dev-cluster를 배포한 경우 다음 출력이 표시됩니다.

    NAME                                       STATUS   ROLES           AGE    VERSION
    my-dev-cluster-control-plane-9qx88-p88cp   Ready    control-plane   2d2h   v1.25.7+vmware.1
    my-dev-cluster-md-0-infra-n62lq-hq4k9      Ready    <none>          2d2h   v1.25.7+vmware.1
    

    Antrea를 사용하는 네트워킹은 워크로드 클러스터에서 기본적으로 사용되도록 설정되기 때문에 모든 클러스터는 추가 구성 없이도 Ready 상태입니다.

  4. kubectl을 사용하여 클러스터에서 실행 중인 포드의 상태를 확인합니다.

    kubectl get pods -A
    

    다음 예에서는 Azure에서 my-dev-cluster 클러스터의 kube-system 네임스페이스에서 실행되는 포드를 보여 줍니다.

    NAMESPACE              NAME                                                             READY   STATUS    RESTARTS        AGE
    kube-system            antrea-agent-ck7lv                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-agent-fpq79                                               2/2     Running   4 (3h7m ago)    2d2h
    kube-system            antrea-controller-66d7978fd7-nkzgb                               1/1     Running   4 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-b68ht                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            coredns-77d74f6759-qfp8b                                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-controller-5957dc576c-42tsd                        6/6     Running   12 (3h7m ago)   2d2h
    kube-system            csi-azuredisk-node-5hmkw                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azuredisk-node-k7fr7                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-controller-5d48b98756-rmrxp                        5/5     Running   10 (3h7m ago)   2d2h
    kube-system            csi-azurefile-node-brnf2                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-azurefile-node-vqghv                                         3/3     Running   6 (3h7m ago)    2d2h
    kube-system            csi-snapshot-controller-7ffbf75bd9-5m64r                         1/1     Running   2 (3h7m ago)    2d2h
    kube-system            etcd-my-dev-cluster-control-plane-9qx88-p88cp                    1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-apiserver-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-controller-manager-my-dev-cluster-control-plane-9qx88-p88cp 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-hqhfx                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-proxy-s6wwf                                                 1/1     Running   2 (3h7m ago)    2d2h
    kube-system            kube-scheduler-my-dev-cluster-control-plane-9qx88-p88cp          1/1     Running   2 (3h7m ago)    2d2h
    kube-system            metrics-server-545546cdfd-qhbxc                                  1/1     Running   2 (3h7m ago)    2d2h
    secretgen-controller   secretgen-controller-7b7cbc6d9d-p6qww                            1/1     Running   2 (3h7m ago)    2d2h
    tkg-system             kapp-controller-868f9469c5-j58pn                                 2/2     Running   5 (3h7m ago)    2d2h
    tkg-system             tanzu-capabilities-controller-manager-b46dcfc7f-7dzd9            1/1     Running   4 (3h7m ago)    2d2h
    

표준 사용자로 워크로드 클러스터 액세스(독립형 관리 클러스터)

이 섹션에서는 표준 비-관리자 사용자가 독립형 관리 클러스터에서 배포한 워크로드 클러스터에 로그인하는 방법을 설명합니다. 이 워크플로는 클러스터의 관리 클러스터를 생성한 클러스터 관리자가 워크로드 클러스터에 액세스할 수 있는 방식과 다릅니다.

사전 요구 사항

이 작업을 수행하기 전에 다음을 확인하십시오.

  • 시스템에서 실행 중인 Docker 애플리케이션이 있습니다. 시스템에서 Microsoft Windows를 실행하는 경우 Docker 모드를 Linux로 설정하고 Windows Linux용 하위 시스템을 구성합니다.
    • Linux 시스템에서 snap 대신 apt를 사용하여 CLI에서 Docker를 설치합니다.
  • 클러스터 관리자로부터 얻은 정보:

워크로드 클러스터 액세스

  1. Tanzu CLI에서 다음 명령을 실행합니다.

    tanzu login --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
    

    형식 설명:

    • 기본적으로 PORT6443입니다. 클러스터 관리자가 클러스터를 배포할 때 CLUSTER_API_SERVER_PORT 또는 VSPHERE_CONTROL_PLANE_ENDPOINT_PORT를 설정할 경우 변수에 정의된 포트 번호를 사용합니다.
    • SERVER-NAME은 관리 클러스터 서버의 이름입니다.

    관리 클러스터에 ID 관리가 구성된 경우 ID 관리 제공자(LDAP 또는 OIDC)의 로그인 화면이 기본 브라우저에서 열립니다.

    LDAPS:

    LDAPS 로그인 페이지

    OIDC:

    OIDC 로그인 페이지

  2. ID 관리 제공자에 로그인합니다.

  3. 다음 명령을 실행하여 워크로드 클러스터로 전환합니다.

    kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
    

    여기서 CONTEXTMY-KUBECONFIG는 클러스터 관리자로부터 가져온 클러스터 컨텍스트와 kubeconfig 파일입니다.

Tanzu CLI의 후속 로그인에서는 tanzu login을 입력한 후 팝업되는 목록에서 Tanzu Kubernetes Grid 환경을 선택하는 옵션이 표시됩니다.

check-circle-line exclamation-circle-line close-line
Scroll to top icon