컨테이너 환경
컨테이너 환경 (Container Environment)
컨테이너가 실행되는 환경에는 사실 생각보다 많은 정보가 주입되어 있어요. 이 페이지는 쿠버네티스의 컨테이너 환경(Container environment) 이 컨테이너에 제공하는 리소스가 무엇인지 설명해 드립니다. 컨테이너가 자신에 대한 정보, 그리고 클러스터 안의 다른 객체 정보를 어떻게 알 수 있는지 살펴볼게요.
컨테이너 환경 (Container environment)
쿠버네티스 컨테이너 환경은 컨테이너에 몇 가지 중요한 리소스를 제공해요:
- 파일시스템 — 이미지와 하나 이상의 볼륨(volume)의 조합이에요.
- 컨테이너 자체에 대한 정보.
- 클러스터 안의 다른 객체에 대한 정보.
컨테이너 정보 (Container information)
컨테이너의 호스트네임(hostname) 은 그 컨테이너가 실행 중인 팟의 이름이에요. 이 값은 hostname 명령어나 libc의 gethostname 함수 호출로 확인할 수 있습니다.
팟의 이름과 네임스페이스는 downward API를 통해 환경 변수로 제공돼요. 팟 정의에 있는 사용자 정의 환경 변수도 컨테이너에서 사용할 수 있고, 컨테이너 이미지에 정적으로 지정된 환경 변수도 마찬가지로 사용 가능합니다.
클러스터 정보 (Cluster information)
컨테이너가 생성될 당시 실행 중이었던 모든 서비스의 목록이 환경 변수로 컨테이너에 제공되어요. 이 목록은 새 컨테이너의 팟과 같은 네임스페이스 안의 서비스와 쿠버네티스 컨트롤 플레인 서비스로 제한됩니다.
이름이 foo 인 서비스가 bar 라는 컨테이너를 각각 실행하는 팟 집합을 노출한다면, 다음 변수가 정의돼요:
FOO_SERVICE_HOST = <the host the service is running on>
FOO_SERVICE_PORT = <the port the service is running on>
서비스는 전용 IP 주소를 가지며, DNS 애드온이 활성화되어 있다면 컨테이너가 DNS를 통해 서비스에 접근할 수 있어요.