본문 바로가기

Kubernetes

Docker Proxy란 무엇인가?

728x90
반응형

도커 프록시는 도커 컨테이너가 외부 인터넷에 접근할 때 사용되는 중간 서버입니다. 일반적으로 회사나 조직 내에서 보안상의 이유로 외부와의 통신을 제어하기 위해 프록시를 설정합니다.

도커에서 프록시를 설정하려면 도커 데몬이나 컨테이너에 환경 변수를 설정하여 프록시 서버의 주소와 포트를 지정해야 합니다. 이를 통해 도커가 외부와 통신할 때 프록시 서버를 경유하도록 할 수 있습니다.

또한, 도커 컨테이너 내에서 직접 프록시 설정을 하려면 해당 컨테이너의 환경 변수를 조정하거나 프록시 서버를 직접 설정해야 합니다.

주요 기능은 다음과 같습니다.

 

  • 포트 매핑: 도커 컨테이너는 기본적으로 호스트 시스템의 특정 포트에 노출됩니다. 도커 프록시를 사용하면 컨테이너 포트를 다른 포트나 여러 포트에 매핑하여 액세스를 더욱 용이하게 만들 수 있습니다.

 

  • 로드밸런싱: 여러 컨테이너 인스턴스가 동일한 서비스를 제공하는 경우 도커 프록시를 사용하여 트래픽을 분산시켜 각 컨테이너에 균등하게로드를 분산할 수 있습니다.

 

  • 네트워크 정책: 도커 프록시를 사용하여 특정 컨테이너 간의 통신을 허용하거나 차단하는 네트워크 정책을 정의할 수 있습니다.

 

  • 고가용성: 도커 프록시를 사용하여 여러 프록시 인스턴스를 클러스터에 구성하여 장애 조치 기능을 제공할 수 있습니다.

 

  • 캐싱: 도커 프록시를 사용하여 자주 요청되는 이미지 레이어를 캐싱하여 이미지 배포 속도를 높일 수 있습니다.

 

  • SSL/TLS 종료: 도커 프록시를 사용하여 SSL/TLS 트래픽을 종료하고 컨테이너에 추가적인 보안 계층을 제공할 수 있습니다.

도커 프록시는 다음과 같은 다양한 유형의 프록시 서버를 사용하여 구현할 수 있습니다.

 

  • Nginx: Nginx는 인기 있는 웹 서버이지만 프록시 서버로도 사용할 수 있습니다. Nginx는 도커 컨테이너에 쉽게 설치하고 구성할 수 있으며, 포트 매핑, 로드밸런싱 및 네트워크 정책과 같은 다양한 기능을 제공합니다.

 

  • HAProxy: HAProxy는 고성능 프록시 서버로서 로드밸런싱 및 고가용성에 특화되어 있습니다. HAProxy는 복잡한 트래픽 라우팅 시나리오를 처리할 수 있으며, 여러 프록시 인스턴스를 사용하여 클러스터를 구성할 수 있습니다.

 

  • Traefik: Traefik은 HTTP 및 HTTPS 트래픽을 위한 역방향 프록시 및 로드밸런서입니다. Traefik는 Docker Compose 또는 Kubernetes와 쉽게 통합될 수 있으며, SSL/TLS 종료 및 서비스 검색과 같은 다양한 기능을 제공합니다.

도커 프록시는 다양한 기능을 제공하여 컨테이너 네트워킹을 관리하고 보호하는 데 도움이 되는 강력한 도구입니다. 사용자의 특정 요구 사항에 따라 Nginx, HAProxy 또는 Traefik과 같은 다양한 프록시 서버를 사용하여 도커 프록시를 구현할 수 있습니다.

하지만, Docker Proxy가 CPU 사용량을 많이 사용하는 경우가 있습니다. Docker Proxy를 Disable 하는 방법에 대해 알아보겠습니다. 

첫번째 방법

/etc/docker/daemon.json

{
    "userland-proxy": false
}

 

 

두번째 방법

/etc/default/docker

DOCKER_OPTS="--iptables=false

그리고  docker 서비스를 재시작하면 된다. 이렇게 설정하면 iptables만 사용하게 된다. 

 

728x90
반응형