Kubernetes/Udemy - CKAD with Tests

API Groups

비번변경 2022. 1. 1. 21:54

사용자는 kubectl을 이용하거나 kube-apiserver와 직접 상호작용하여 Kubernetes API를 사용할 수 있다.

 

예시

- kubenetes 클러스터 버전 확인

curl <MASTER_NODE_URL>/version

# 예시
curl https://kube-master:6443/version

 

- 포드 목록 확인

curl <MASTER_NODE_URL>/version

# 예시
curl https://kube-master:6443/version

 

API Group

api resource를 묶어놓은 그룹으로. yaml 파일 작성 시 apiVersion에 명시된다.

Kubernetes API는 상태 모니터링, 메트릭 수집, 로그 등의 목적에 따라 그룹화된다.

목적 api 경로 Group 비고
클러스터 상태 모니터링 /metrics    
  /healthz    
클러스터의 버전 확인 /version    
클러스터 기능 담당 /api namespaces, pods, replication controllers, events,
endpoints, nodes, bindings, persistent volumes,
persistent volume claims, configmaps, secrets,
service
핵심적인(core) group
core api는 group을 적시하지 않아도 된다.
  /apis apps, extensions, networking.k8s.io
storage.k8s.io, authentication.k8s.io
certificates.k8s.io
named group
새로운 기능 지원
써드파티 로깅 연동 /logs    

 

API Group

Resources란 각 API Group에서 지원하는 자원을 뜻하며, verb는 Resource 요청에 사용하는 api 동사에 해당한다.

 

API Group 확인

kube-apiserver에 접근

사용자는 경로 없이 kube-apiserver에 접근함으로써 쿠버네티스 클러스터 내에서 사용 가능한 API 그룹을 확인할 수 있다. 단, 인증 없이 요청하는 경우 특정 API를 제외하고는 접근이 허용되지 않는다.

 

API Group 확인

curl <MASTER_NODE_URL> -k


# 예시
curl https://kube-master:6443 -k

curl https://kube-master:6443 -k \
--key admin.key \
--cert admin.crt \
--cacert ca.crt

 

api groups 내 resources 확인

경로를 지정하여 kube-apiserver에 접근하면 resource를 확인할 수 있다.

curl <MASTER_NODE_URL>/apis -k | grep name

# 예시
curl https://kube-master:6443/apis -k

 

kubectl proxy 클라이언트 사용

kubectl proxy 명령어를 실행하면 localhost:8001로 프록시 서비스를 동작시키고, kubeconfig 파일의 자격 증명 및 인증서를 사용하여 클러스터에 접근할 수 있게 한다.

kubectl proxy

# proxy 서비스 접근
curl http://localhost:8001 -k

 

kube proxy VS kubectl proxy
kube proxy는 클러스터의 서로 다른 노드에 걸쳐 포트와 서비스를 연결할 수 있도록 설정하는 데 사용한다.
kubectl proxy는 kube-apiserver에 접근하기 위해 kubectl에 의해 생성된 http 프록시 서비스이다.

 


참고 문서

https://binux.tistory.com/68

https://www.waytoeasylearn.com/learn/api-groups-in-kubernetes/