반응형
kubectl get pods
명령어같은 것들은 뒤에서는 kube-apiserver
에 6443번 포트, TLS로 붙어서 정보를 받아온다.
즉 kubectl은 뒤에서 GET /api/v1/pods HTTP/1.1
요청을 보내고, JSON으로 데이터가 반환되며, 이것을 예쁘게 가공해서 출력하는것이다.
kubectl version
도 마찬가지다. GET /version HTTP/1.1
을 보낼것이다.
(실제로는 HTTP 1.1은 아닐 수도 있겠지만, 아무튼)
엔드포인트
이 때 엔드포인트를 잘 보자.
/api
/api/v1/pods
, ...
/version
/metrics
/healthz
/apis
/logs
이렇게 쿠버 API는 역할별로 그룹이 나누어져 있는데, 이것이 API Group이다.
/api
와 /apis
클러스터 기능에 직접적으로 영향을 주는 API들이다.
/api/v1
는 코어 그룹이다.- namespaces, pods, rc, events, endpoints, nodes, bindings, pv, pvc, configmaps, secrets, services... 같은 코어 기능들.
/apis
는 조금 더 체계적으로 분류되어있는 API 그룹으로, 신기능들은 이 named group을 통해 제공된다.- apps, extensions, networking.k8s.io, storage.k8s.io, authentication.k8s.io, certificates.k8s.io,... 같은 API Groups이 있고
- 그 하위에 Resources들이 있으며
/apis/apps/v1/deployments
,/apis/apps/v1/replicasets
,/apis/apps/v1/statefulsets
- 그 하위에 Verbs, (list, get ,create, delete, update, watch...) 들이 있다.
- 그 하위에 Resources들이 있으며
- apps, extensions, networking.k8s.io, storage.k8s.io, authentication.k8s.io, certificates.k8s.io,... 같은 API Groups이 있고
curl로 API에 편하게 붙기: kubectl proxy
기본적으로 curl로 API에 붙으려면 클라이언트 인증서, CA 인증서 등등을 파라미터로 덕지덕지 붙여야한다.
이 때 kubectl proxy
를 이용하면 kubectl이 대신 인증을 서 주는 프록시를 생성해주므로, 간단하게 curl을 쓸 수 있게 된다.
$ kubectl proxy
Starting to serve on 127.0.0.1:8001
$ curl http://localhost:8001 -k
{
"paths": [
"/api",
...
kubectl proxy
와 kube proxy
는 다른 것이므로 주의!
반응형
'콤퓨우터 > 필기: KodeKloud CKA 강의' 카테고리의 다른 글
167. Service Accounts (0) | 2024.05.17 |
---|---|
160-164. Authorisation, RBAC and Cluster Roles (0) | 2024.05.17 |
155. Kubeconfig와 context (0) | 2024.05.17 |
147-152. View Certificate Details and Certificates API (0) | 2024.05.17 |
146. TLS in Kubernetes (0) | 2024.05.17 |