IT/CKA

CKA 준비과정 - Security (5) / API Groups

Primes 2023. 6. 24. 15:16
728x90

앞서 학습을 하면서, 클러스터 내에서 어떤 작업을 하든 모든 명령은 kube-apiserver를 타고 간다는 것을 알았다.

 

쿠버네티스 API는 사용 목적에 따라 그룹화된다. 

kube api group

/version : 클러스터 버전 확인

/metrics, healthz : 클러스터 상태 모니터링

/logs : 다른 로그와 통합할 때 사용

 

위 4 그룹을 제외하고, /api, /apis가 중요하기 때문에 별개로 학습한다.

해당 api는 core 그룹과 named 그룹 2가지로 분류된다.

 

여기서 핵심적인 기능들은 core 그룹에 속한다.

namespaces, pods, nodes 등 중요 리소스들이 여기에 들어간다.

 

named 그룹은 좀더 조직화 되어있고, 새로 추가되는 기능들은 named 그룹에 속하게 된다.

API Groups > Resources > Verbs 순으로 조직화가 되어 있음을 알 수 있다.

 

쿠버네티스의 공식 문서 중 API 가이드 페이지를 통해, 각 개체에 대한 API 그룹을 알 수 있다.

또한 쿠버네티스 클러스터 내에서도 api 그룹 리스트를 확인할 수 있다.

 

curl 명령어로 kube-apiserver의 6443 포트에 접근하면 사용 가능한 API 그룹 리스트가 출력된다.

추가로 /apis 에 접근하게 되면 apis 그룹 내 리소스 그룹까지 확인할 수 있다.

 

다만 해당 방법으로는 api에 직접 접근할수는 없다. apiVersion 과 같은 단순 정보 획득 외엔 불가하다.

이는 보안상으로 막혀있기 대문으로 인증서를 통해 kube-apiserver에게 인증을 받아야 한다.

 

 

다른 방법으로 api그룹을 확인하는 방법은, kubectl proxy 클라이언트를 활용한다.

kubectl proxy
curl localhost:8001

kubectl proxy 명령어로 8001 포트에서 동작하는 프록시 서비스를 실행한다.

kubectl 이 kubeconfig 의 인증을 자동으로 활용하기 때문에 별도로 인증 방법을 지정할 필요가 없다.

다음으로 8001포트에 접근하여 proxy 서비스에 접속한다. 접속하면 사용 가능한 모든 api가 출력된다.

 

이때 주의할 점은, kube-proxy와 kubeclt proxy가 다르다는 것을 인지해야 한다.

kube-proxy는 파드와 서비스 간 연결을 가능하게 하는 서비스이다.

kubectl proxy 명령어는 kubectl 이 kube-apiserver에 접근할 수 있도록 하는 명령어이다.

 

 

반응형