RHOCP 4.8 API 테스트 가이드: cURL과 Postman 활용
OpenShift Container Platform(RHOCP) 환경에서 API를 활용하여 클러스터의 다양한 정보를 조회하고 제어하는 것은 매우 중요한 운영 및 개발 기술입니다. RHOCP 4.8 버전을 기준으로, API 테스트를 효과적으로 수행하는 방법에 대해 정리하고 공유합니다.
이 가이드에서는 명령줄 도구인 **cURL**을 통한 API 테스트 방법과, 보다 시각적이고 편리한 API 개발 툴인 **Postman**을 활용한 테스트 방법을 순서대로 설명합니다. 예시로 클러스터 노드 정보를 가져오는 API를 사용하며, 관련 API 리스트는 OpenShift 4.8 REST API 문서를 참고하실 수 있습니다.
목차
1. cURL 명령어를 통한 API 테스트 방법
cURL은 서버와 데이터를 주고받는 데 사용되는 강력한 명령줄 도구입니다. 복잡한 API 호출도 간단하게 테스트할 수 있어 스크립트 작성이나 자동화에 유용합니다.
1.1. 인증 토큰 확인
OpenShift API에 접근하려면 인증 토큰이 필요합니다. oc whoami -t
명령어를 사용하여 현재 로그인된 사용자의 인증 토큰을 가져올 수 있습니다. 만약 oc login
이 되어 있지 않다면, 먼저 로그인 절차를 수행해야 합니다.
[root@bastion ~]# oc whoami -t
sha256~bp1xd13ZICARN_X9ka_qmemxzGnobgV1Dj9XvutoGD0
위 출력에서 sha256~bp1xd13ZICARN_X9ka_qmemxzGnobgV1Dj9XvutoGD0
부분이 바로 여러분의 인증 토큰입니다. 이 토큰은 API 호출 시 HTTP 헤더에 포함되어야 합니다.
1.2. API 주소 확인
RHOCP API 서버의 주소를 확인하려면 oc whoami --show-server
명령어를 사용합니다. 이 주소는 API 호출의 기본 URL이 됩니다.
[root@bastion ~]# oc whoami --show-server
https://api.ocp-dc.hk.com:6443
여기서 https://api.ocp-dc.hk.com:6443
이 API 서버의 주소입니다. 여러분의 환경에 따라 이 주소는 다를 수 있습니다.
1.3. 노드 정보 가져오기
이제 cURL을 사용하여 클러스터에 포함된 노드들의 정보를 가져와 보겠습니다. -k
옵션은 SSL/TLS 인증서 검증을 건너뛰는 것으로, 자가 서명된 인증서를 사용하는 환경에서 유용합니다. -X GET
은 HTTP GET 메서드를 사용함을, -H
는 HTTP 헤더를 지정함을 의미합니다. 인증 토큰은 Authorization: Bearer <인증 토큰>
형식으로 전달합니다.
[root@bastion ~]#curl -k -X GET -H "Authorization: Bearer sha256~bp1xd13ZICARN_X9ka_qmemxzGnobgV1Dj9XvutoGD0" https://api.ocp-dc.hk.com:6443/api/v1/nodes
{
"kind": "NodeList",
"apiVersion": "v1",
"metadata": {
"resourceVersion": "33458490"
},
"items": [
{
"metadata": {
"name": "master1.ocp-dc.hk.com",
"uid": "1cf03d79-5e1a-4841-a466-1d4460bcb934",
"resourceVersion": "33458407",
"creationTimestamp": "2021-11-09T00:40:29Z",
"labels": {
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"cpu-feature.node.kubevirt.io/3dnowprefetch": "true",
"cpu-feature.node.kubevirt.io/abm": "true",
"cpu-feature.node.kubevirt.io/adx": "true",
"cpu-feature.node.kubevirt.io/aes": "true",
"cpu-feature.node.kubevirt.io/amd-ssbd": "true",
"cpu-feature.node.kubevirt.io/amd-stibp": "true",
"cpu-feature.node.kubevirt.io/arat": "true",
"cpu-feature.node.kubevirt.io/arch-capabilities": "true",
"cpu-feature.node.kubevirt.io/avx": "true",
"cpu-feature.node.kubevirt.io/avx2": "true",
"cpu-feature.node.kubevirt.io/avx512bw": "true",
"cpu-feature.node.kubevirt.io/avx512cd": "true",
"cpu-feature.node.kubevirt.io/avx512dq": "true",
"cpu-feature.node.kubevirt.io/avx512f": "true",
< 이하 생략 >
위 명령어를 실행하면 클러스터의 노드 목록과 각 노드의 상세 정보가 JSON 형식으로 출력됩니다. 이 예제에서는 master1.ocp-dc.hk.com
노드의 일부 정보가 표시됩니다.
2. Postman 툴을 이용한 API 테스트 방법
Postman은 API 개발 및 테스트를 위한 강력한 GUI 기반 도구입니다. cURL보다 시각적이고 편리하게 API 요청을 구성하고 응답을 분석할 수 있습니다.
2.1. Method, API 주소, Headers 및 SSL 설정
Postman을 열고 새로운 요청을 생성합니다. 아래와 같이 각 항목을 설정합니다.
- Method:
GET
- API 주소:
https://api.ocp-dc.hk.com:6443/api/v1/nodes
(여러분의 API 서버 주소와 API 경로를 입력) - Headers:
- `Authorization`: `Bearer sha256~bp1xd13ZICARN_X9ka_qmemxzGnobgV1Dj9XvutoGD0` (여러분의 인증 토큰으로 대체)
- `Accept`: `application/json`
또한, RHOCP 환경에서 자가 서명된 인증서를 사용하는 경우, Postman 설정에서 **SSL 인증서 확인(SSL certificate verification)**을 **비활성화(Off)**해야 합니다. (Postman 설정 > General 탭에서 'SSL certificate verification' 토글)

(**참고:** 위 이미지들은 예시이며, 실제 Postman 화면은 다를 수 있습니다. 이미지 링크는 실제 이미지를 참조하도록 변경해야 합니다.)
2.2. 노드 정보 확인
모든 설정을 마친 후, Postman의 **'Send'** 버튼을 클릭하여 API 요청을 보냅니다. 성공적으로 요청이 처리되면, 응답 섹션에서 RHOCP 클러스터 노드들의 상세 정보를 JSON 형식으로 확인할 수 있습니다.
(**참고:** 위 이미지는 예시이며, 실제 Postman 화면은 다를 수 있습니다. 이미지 링크는 실제 이미지를 참조하도록 변경해야 합니다.)
2.3. 다른 API를 통한 정보 가져오기
위 2.2번 방식을 기반으로, OpenShift API 문서에 있는 다른 API 경로와 메서드를 사용하여 다양한 클러스터 정보를 가져올 수 있습니다. 예를 들어, 특정 네임스페이스의 파드 목록을 조회하거나, 클러스터의 이벤트 로그를 확인하는 등의 작업을 수행할 수 있습니다.
(**참고:** 위 이미지는 예시이며, 실제 Postman 화면은 다를 수 있습니다. 이미지 링크는 실제 이미지를 참조하도록 변경해야 합니다.)
이 가이드를 통해 RHOCP 4.8 환경에서 cURL과 Postman을 사용하여 API를 테스트하는 방법을 익히셨기를 바랍니다. API 테스트는 클러스터의 상태를 확인하고, 자동화 스크립트를 개발하며, 문제 해결에 필수적인 과정입니다. 다양한 API를 직접 호출해보면서 OpenShift 클러스터의 내부 동작을 더 깊이 이해해 보세요!
'깐돌의 클라우드 도구함' 카테고리의 다른 글
[Linux] 최신 Ubuntu Server (24.04) 에서 NFS 구성 가이드 (0) | 2025.06.10 |
---|---|
[가상화] qcow2 사이즈 줄이는 방법 (0) | 2025.06.10 |
[Linux] Ctrl+Alt+Del 재시작 기능 비활성화하기 (1) | 2025.06.05 |
[컨테이너] RHOCP4 에서 virtctl 설치 및 사용법 (1) | 2025.06.04 |
[컨테이너] Harbor 컨테이너 레지스트리: 프로젝트 생성부터 이미지 푸시까지 완벽 가이드 (0) | 2025.06.04 |