[k8s] proxy์ Rest API
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ์ ์ดํ ์ผ์ด ์๋ค๋ฉด ํํ kubectl ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณค ํ๋ค.

๊ทผ๋ฐ ์ฌ์ค ์ ๊ฑด ๊ทธ๋ฅ API๋ฅผ ๋์ ์ด์ฃผ๋ ์ญํ ์ผ ๋ฟ์ด๊ณ , ์ค์ ํด๋ฌ์คํฐ์ ์ ์ด๋ HTTP Restful API๋ฅผ ํตํด์ ์ด๋ฃจ์ด์ง๋ค.
์ด๋ ๊ฒ ๋ง์ด๋ค.
kubectl์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ๋ค๊ฐ api๋ฅผ ์ ๋นํ ๊พธ๋ฉฐ์ ์๊ณ ์๋ต์ ์ ๋นํ ๋ฟ๋ ค์ฃผ๋ ์ฉ๋์ ์ง๋์ง ์๋๋ค.
ํ๋ก์ ์ด์ด๋ณด๊ธฐ
k8s api์ ๊ฐํธํ๊ฒ ์ ๊ทผํด์ ์ฌ์ฉ์ ํด๋ณด๊ณ ์ถ๋ค๋ฉด, ์์ฒด์ ์ผ๋ก ์ ๊ณตํ๋ ํ๋ก์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
kubectl proxy
์ด ๊ธฐ๋ฅ์ ์ฆ์ ์ธ์ฆ ์์ด ์ ๊ทผํด์ ์ฌ์ฉํ ์ ์๋ ํ๋ก์ ์๋ฒ๋ฅผ ์ด์ด์ค๋ค.
๋ค๋ง, ๋ณด์์์ ์ด์ ์์์ธ์ง localhost ๋ฃจํ๋ฐฑ์์๋ง ๋์ํ๊ฒ ์ด์ด์ฃผ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๋ก ์ฐ๋ฌ๋ณผ ์ ์๋ค.
๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ์ฐ๋ฅด๋ฉด ์กด์ฌํ๋ ๋ชจ๋ api์ ๊ฒฝ๋ก๋ฅผ ๋ฟ๋ ค์ค๋ค.
์ด๊ฑฐ๋ ๋ฒ์ ํ์ธ์ด๊ณ
์ด๊ฑฐ๋ pod list ์กฐํ๋ค.
swagger ๋ฝ์๋ณด๊ธฐ
k8s api ์๋ฒ๋ ์์ธ๋ก api์ ๋ํ openapi ๊ท๊ฒฉ๋ ๋ฐ๋ก ์ ๊ณต์ ํ๋ค.
๋ฌธ์ ์๋น๊น์ง ํด์ฃผ์ง๋ ์๊ณ , ์ด๋ ๊ฒ openapi ํ์ผ ๋ฝ์์
kubectl get --raw /openapi/v2 > k8s-openapi-v2.json

docker ๊ฐ์๊ฑธ ํ์ฉํด์ ์ค์จ๊ฑฐ ์๋ฒ๋ฅผ ๋์ฐ๋ฉด
docker run \
-v $PWD/k8s-openapi-v2.json:/app/swagger.json \
-p 8081:8080 \
swaggerapi/swagger-ui

๋ฐ๋ก ํ์ธํด๋ณผ ์ ์๋ค.

๊ทธ๋ ๋ค.
์ฐธ์กฐ
https://kubernetes.io/docs/reference/kubectl/generated/kubectl_proxy/
https://trylhc.tistory.com/entry/Kubectl-%EB%AA%85%EB%A0%B9%EC%96%B4%EC%9D%98-Proxy-Port-Forward-%EA%B8%B0%EB%8A%A5
https://kubernetes.io/docs/concepts/cluster-administration/proxies/
https://stackoverflow.com/questions/63070522/how-to-show-swagger-ui-for-kubernetes-api