소개
Kubernetes 는 컨테이너화된 애플리케이션의 배포, 스케일링 및 관리를 자동화하는 컨테이너 오케스트레이션 플랫폼입니다. 이 랩에서는 cluster-info 명령을 사용하여 Kubernetes 클러스터에 대한 통찰력을 얻는 방법을 살펴봅니다. 랩을 완료하면 Kubernetes 클러스터를 시작하고, 필수 클러스터 정보를 검색하고, 내부 구성 요소를 검사하고, API 서버 연결을 테스트하는 방법을 이해하게 됩니다.
이 랩은 초보자를 위해 설계되었으며, Kubernetes 에 대한 사전 경험은 필요하지 않습니다.
Kubernetes 클러스터 시작
Kubernetes 클러스터는 실행 환경이 필요합니다. 이 랩에서는 Kubernetes 클러스터를 로컬에서 실행할 수 있는 도구인 Minikube를 사용합니다. 다음 단계를 따르세요:
터미널을 열고
/home/labex/project디렉토리에 있는지 확인합니다:cd ~/projectMinikube 클러스터를 시작합니다:
minikube start- Minikube 는 단일 노드 Kubernetes 클러스터를 생성합니다.
- 이 프로세스는 시스템에 따라 몇 분 정도 걸릴 수 있습니다. 초기화 과정에서 다양한 Kubernetes 구성 요소가 설정됩니다.

기본 클러스터 정보 검색
Minikube 가 실행되면 kubectl cluster-info 명령을 사용하여 클러스터에 대한 정보를 확인합니다. 다음 명령을 실행합니다:
kubectl cluster-info
- API 서버 URL 은 클러스터와 상호 작용하기 위한 주요 엔드포인트입니다.
- CoreDNS는 클러스터 내에서 서비스 검색 및 DNS 확인을 처리합니다.
예시 출력:
Kubernetes control plane is running at https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
https://192.168.49.2:8443은 Kubernetes API 서버의 URL 입니다. 모든kubectl명령이 이 주소로 전송됩니다.- CoreDNS 서비스는 Kubernetes 가 서비스 및 파드에 대한 도메인 이름을 확인하는 데 도움을 줍니다.
클러스터 구성 요소 상세 검토
클러스터와 내부 구성 요소에 대한 더 깊은 이해를 얻으려면 다음을 사용하십시오:
kubectl cluster-info dump
이 명령은 주요 구성 요소에 대한 자세한 정보를 제공합니다:
- etcd: 모든 클러스터 데이터를 위한 키 - 값 저장소입니다.
- kube-apiserver: Kubernetes API 요청의 진입점입니다.
- kube-scheduler: 사용 가능한 노드에 워크로드 (파드) 를 할당합니다.
- kube-controller-manager: 클러스터 상태를 유지 관리합니다 (예: 원하는 수의 파드 복제본이 실행 중인지 확인).
예시 출력:
이 명령은 Kubernetes 시스템 구성 요소의 구성 및 상태를 자세히 설명하는 상세한 출력을 생성합니다. 출력을 파일로 리디렉션하여 더 쉽게 분석할 수 있습니다:
kubectl cluster-info dump > cluster-details.txt
이렇게 하면 출력이 현재 디렉토리의 cluster-details.txt에 저장됩니다.
클러스터 노드 확인
노드는 Kubernetes 에서 워크로드를 실행하는 머신입니다. 클러스터의 노드를 나열하려면 다음을 실행하십시오:
kubectl get nodes
- 노드 이름 (예:
minikube) 은 머신을 식별합니다. - 상태 (
Ready) 는 노드가 정상이며 워크로드를 실행할 수 있음을 나타냅니다. - Minikube 클러스터에서 노드는 제어 평면과 작업자 노드 역할을 모두 수행합니다.
예시 출력:
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 5m v1.20.0
API 서버 접근 테스트
API 서버는 Kubernetes 제어 평면의 중요한 구성 요소입니다. 다음을 실행하여 접근성을 테스트할 수 있습니다:
curl $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}') --insecure
- 이 명령은 API 서버 URL 을 검색하고 간단한 요청을 수행합니다.
--insecure플래그는 SSL 인증서 검증을 우회합니다. 이는 이 로컬 설정에서 허용됩니다.
예시 출력:
API 서버에 접근할 수 있는 경우 응답은 다음과 같아야 합니다:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {},
"code": 403
}
이 응답은 API 서버가 실행 중임을 확인하지만, 인증이 누락되어 접근이 거부되었음을 나타냅니다. 이는 예상되는 동작입니다.
요약
이 랩에서는 다음을 배웠습니다:
- Minikube 를 사용하여 Kubernetes 클러스터를 시작합니다.
kubectl cluster-info를 사용하여 클러스터 세부 정보를 검색합니다.kubectl cluster-info dump를 사용하여 클러스터 구성 요소를 자세히 검사합니다.kubectl get nodes를 사용하여 클러스터의 노드를 나열합니다.curl명령을 사용하여 API 서버 연결을 테스트합니다.
이 실습 경험은 Kubernetes 클러스터를 이해하고 탐색하기 위한 기반을 제공했습니다. 이러한 명령어는 Kubernetes 환경을 디버깅하고 관리하는 데 필수적입니다.
다음 단계:
- Kubernetes 에서 Pod 및 워크로드를 탐색합니다.
- 애플리케이션을 노출하기 위해 서비스를 생성하는 방법을 배웁니다.
- 클러스터에서 워크로드 크기 조정을 실험합니다.
계속 연습하고, 즐거운 학습 되세요!


