DevOps/k8s

[CKS] Kubernetes에서의 Public Key Infrastructure 구조 (PKI) 이해하기

Sophie소피 2024. 6. 26. 15:56

 

Introduction

Public Key 기반 구조(PKI)는 쿠버네티스에서 중요한 역할을 하며, 클러스터 내 다양한 구성 요소 간의 안전한 통신을 보장한다.  PKI의 핵심에는 인증 기관(CA)이 있으며, 이는 인증서를 발급하고 검증하는 기관이다. 이러한 인증서는 쿠버네티스 구성 요소가 서로를 인증하고 검증할 수 있도록 하여 클러스터 전반에 걸쳐 안전한 상호 작용을 보장하게 한다. 

CA (Certificate Authority) 의 역할

  • 인증서 발급: CA는 클러스터 내 다양한 구성 요소(APIServer, kubelet, 스케줄러 등)에게 인증서를 발급한다. 
  • 인증서 서명: CA는 모든 인증서에 서명하여, 통신 당사자의 신뢰성을 보장하는 신뢰 체인을 형성한다. 
  • 검증: 쿠버네티스 구성 요소는 CA를 사용하여 상대방의 신원을 검증한다. 

 

Cluster 내 주요 인증서

  • CA 인증서: 모든 인증서의 루트로, 클러스터 내 다른 모든 인증서의 서명을 담당한다. 
  • API Server 인증서: API Server가 자신을 증명하는 데 사용한다.
  • etcd 서버 인증서: etcd 서버가 자신을 증명하는 데 사용한다.
  • API → etcd 인증서: API Server가 etcd와 통신할 때 사용한다.
  • API → kubelet 인증서: API Server가 kubelet과 통신할 때 사용한다.
  • Scheduler → API 인증서: 스케줄러가 API Server와 통신할 때 사용한다.
  • Controller Manager → API 인증서: 컨트롤러 매니저가 API Server와 통신할 때 사용한다.
  • kubelet → API 인증서: kubelet이 API Server와 통신할 때 사용합니다.
  • kubelet 서버 인증서: kubelet 서버가 자신을 증명하는 데 사용합니다.

 

인증서 파일 위치 찾기

쿠버네티스 클러스터에서 인증서 파일을 찾고 관리하는 방법을 살펴보겠습니다. 다음 명령어들은 각 구성 요소의 인증서 파일 위치를 찾고, 이를 확인하는 데 사용됩니다.

 

 

1. /etc/kubernetes/pki 디렉토리로 이동

cd /etc/kubernetes/pki​

/etc/kubernetes/pki 디렉토리로 이동합니다. 이 디렉토리는 쿠버네티스의 주요 인증서 파일들이 저장되는 기본 위치입니다.

ll

이 명령어는 현재 디렉토리(/etc/kubernetes/pki)의 내용을 목록으로 표시합니다. 인증서 파일들과 그 권한, 소유자, 생성 날짜 등을 확인할 수 있습니다.

 

 

 

2. etcd 디렉토리 내용 확인

ll etcd/​
 
이 명령어는 etcd 디렉토리의 내용을 목록으로 표시합니다. etcd 서버와 관련된 인증서 파일들이 저장되어 있습니다.
 
 

4. Scheduler 설정 파일 열기

vim /etc/kubernetes/scheduler.conf
이 파일에는 스케줄러 구성 요소가 사용하는 인증서와 관련된 설정이 포함되어 있습니다.
 
 

5. Controller Manager 설정 파일 열기

vim /etc/kubernetes/controller-manager.conf​
 

이 파일에는 Controller Manager의 구성 요소가 사용하는 인증서와 관련된 설정이 포함되어 있다. 

6. kubelet 설정 파일 열기

vim /etc/kubernetes/kubelet.conf
 
이 파일에는 컨트롤러 매니저 구성 요소가 사용하는 인증서와 관련된 설정이 포함되어 있다. 
 

7. /var/lib/kubelet/pki 디렉토리로 이동

cd /var/lib/kubelet/pki

이 디렉토리는 kubelet 구성 요소의 인증서 파일들이 저장되는 위치이다. 

 

 

결론

PKI와 CA는 쿠버네티스 클러스터의 보안을 유지하는 데 중요한 역할이다.  CA는 모든 구성 요소의 인증서를 발급하고 서명하며, 이를 통해 클러스터 내에서 안전하고 신뢰할 수 있는 통신을 보장한다. 인증서 파일의 정확한 위치를 알고 관리하는 것은 클러스터의 보안을 유지하는 데 필수적이다. 

위와 같은 명령어들은 쿠버네티스 클러스터에서 각 구성 요소가 사용하는 인증서 파일들을 찾고 확인하는 데 매우 유용하다.  각 인증서 파일의 위치를 알고 관리하는 것은 클러스터의 보안을 유지하는 데 중요하다.