Skip to content

Kube-apiserver

Kubernetes API 서버.

HTTPS Endpoint

참고로 HTTP는 안되고 HTTPS로 연결해야 한다. 포트는 6443 이다.

curl -k https://localhost:6443/

대략 다음과 같이 출력된다:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "Unauthorized",
  "reason": "Unauthorized",
  "code": 401
}

API 호출을 위해 필요한 내용

# Kubernetes 클러스터 연결 설정
# .env 파일로 복사한 후 실제 값으로 변경하세요

# Kubernetes API 서버 URL (필수)
# 예: https://your-cluster.example.com:6443
K8S_API_SERVER=

# 인증 토큰 (필수)
# Service Account Token 또는 User Token
# 토큰 획득 방법:
# kubectl -n kube-system create token <service-account-name>
# 또는 kubectl describe secret <secret-name>에서 추출
K8S_TOKEN=

# 기본 네임스페이스 (선택, 기본값: default)
K8S_NAMESPACE=default

# TLS 인증서 검증 무시 여부 (선택, 기본값: false)
# 개발 환경에서만 true로 설정 권장
K8S_INSECURE=false

# CA 인증서 파일 경로 (선택)
# K8S_INSECURE=false인 경우 필요할 수 있음
# 예: /path/to/ca.crt
K8S_CA_CERT_FILE=

# CA 인증서 데이터 (선택, base64 인코딩된 값)
# K8S_CA_CERT_FILE 대신 사용 가능
# kubectl config view --raw -o jsonpath='{.clusters[0].cluster.certificate-authority-data}'
K8S_CA_CERT_DATA=

# ========================================
# 토큰 획득 방법 예시
# ========================================

# 1. Service Account 생성 및 토큰 획득
#    kubectl create serviceaccount k8s-api-client
#    kubectl create clusterrolebinding k8s-api-client-binding \
#      --clusterrole=cluster-admin --serviceaccount=default:k8s-api-client
#    kubectl create token k8s-api-client

# 2. 클러스터 정보 확인
#    kubectl cluster-info
#    예: Kubernetes control plane is running at https://127.0.0.1:6443

# 3. kubeconfig 대신 .env 사용 예시
#    K8S_API_SERVER=https://127.0.0.1:6443
#    K8S_TOKEN=eyJhbGciOiJSUzI1NiIsImtpZCI6Ij...
#    K8S_NAMESPACE=default
#    K8S_INSECURE=true  # 로컬 개발 환경

See also

Favorite site