HTTP 프록시로 쿠버네티스 API에 접근하기

HTTP 프록시로 쿠버네티스 API에 접근하기 (Use an HTTP Proxy to Access the Kubernetes API)

이 페이지에서는 HTTP 프록시를 사용해 쿠버네티스 API에 접근하는 방법을 보여 줘요.

출처: 문서

본문

시작하기 전에

쿠버네티스 클러스터가 필요하고, kubectl 명령줄 도구가 클러스터와 통신하도록 설정돼 있어야 해요. 이 튜토리얼은 제어 플레인 호스트 역할을 하지 않는 노드가 최소 두 개 있는 클러스터에서 실행하는 것을 권장해요. 아직 클러스터가 없다면 minikube를 사용하거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용해 만들 수 있어요.

  • iximiuz Labs
  • Killercoda
  • KodeKloud

버전을 확인하려면 kubectl version을 입력하세요.

클러스터에 실행 중인 애플리케이션이 아직 없다면, 다음 명령으로 Hello world 애플리케이션을 시작하세요.

kubectl create deployment hello-app --image=gcr.io/google-samples/hello-app:2.0 --port=8080

kubectl로 프록시 서버 시작하기

다음 명령은 쿠버네티스 API 서버로 프록시를 시작해요.

kubectl proxy --port=8080

쿠버네티스 API 탐색하기

프록시 서버가 실행 중이면 curl, wget, 또는 브라우저로 API를 탐색할 수 있어요.

API 버전을 가져와요.

curl http://localhost:8080/api/

출력은 다음과 비슷해야 해요.

{
  "kind": "APIVersions",
  "versions": [
    "v1"
  ],
  "serverAddressByClientCIDRs": [
    {
      "clientCIDR": "0.0.0.0/0",
      "serverAddress": "10.0.2.15:8443"
    }
  ]
}

파드 목록을 가져와요.

curl http://localhost:8080/api/v1/namespaces/default/pods

출력은 다음과 비슷해야 해요.

{
  "kind": "PodList",
  "apiVersion": "v1",
  "metadata": {
    "resourceVersion": "33074"
  },
  "items": [
    {
      "metadata": {
        "name": "kubernetes-bootcamp-2321272333-ix8pt",
        "generateName": "kubernetes-bootcamp-2321272333-",
        "namespace": "default",
        "uid": "ba21457c-6b1d-11e6-85f7-1ef9f1dab92b",
        "resourceVersion": "33003",
        "creationTimestamp": "2016-08-25T23:43:30Z",
        "labels": {
          "pod-template-hash": "2321272333",
          "run": "kubernetes-bootcamp"
        },
        ...
}

더 알아보기 (Learn more)