Infra/[K8S & Docker]
[Kubernetes] Api-server RestApi 호출 1부
HiSmith
2023. 1. 17. 22:48
반응형
모든 curl 은 jwt나 인증에 대한 과정을 헤더에 포함해야함
- H "Authorization: Bearer {Token}" 는 모든 curl 헤더에 공통 적용 필요, 하위 정리 리스트에서는 해당 내용 생략
- Api-server가 32769로 열려있다고 가정, 해당 서버 정보는 전 post에서 확인 가능
- Pod
- 생성, 수정 (파일 단위) : curl -k -H "Authorization: Bearer {Token}" -H "Content-type: application/yaml" --data-binary @smithprjPods.yaml https://127.0.0.1:32769/api/v1/namespaces/default/pods
- 정보 조회 : curl -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/pods/testpod (testpod → pod name)
- Pod 리스트 조회 : curl -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/pods
- Pod 삭제 : curl -X DELETE -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/pods/testpod
- Service
- 생성, 수정(파일단위) : curl -k -H "Authorization: Bearer {Token}" -H "Content-type: application/yaml" --data-binary @smithprjPods.yaml https://127.0.0.1:32769/api/v1/namespaces/default/services
- 정보 조회 : curl -k -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/services/testsvc (testpod → pod name)
- Service 리스트 조회 : curl -k -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/services
- Pod 삭제 : curl -X DELETE -H "Content-type: application/json" https://127.0.0.1:32769/api/v1/namespaces/default/services/testsvc(서비스 name)
같은 포맷 deployments, ingress로 호출한다.
Ingress의 경우 아래와 같이 호출 한다.
또한 동적으로 rest-api를 통해서, 해당 object를 생성하는 것도 가능하다.
예를 들면,
위와 같이, ingress에 대한 파일을 동적으로 생성 할 수있다.
파일에 대한 내용을 json포맷으로 req-body에 심어서 날리면?
해당 포멧에 맞는 오브젝트가 생성되는 것이다.
또한 pod의 스케일 또한 단순하게 변경이 가능하다.
해당 rest-api를 콜함으로써 해당 스케일을 변경가능하다.
특정 api의 개수를 호출 횟수 제한된 범위를 초과하게 된다면 해당 스케일을 늘려서 부하 분산을 하는 것도 괜찮은 방법이다.
반응형