반응형
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 |