쿠버네티스 proxy 설정

snooby·2022년 8월 8일
1

🐳 kubernetes

목록 보기
22/63
post-thumbnail

쿠버네티스에서 애플리케이션은 deployment나 직접 생성한 Pod내에서 구동되어 실행된다.
이 애플리케이션 < 컨테이너 < pod가 존재하는 (<란 소속 상위 개념을 말함) 곳은 쿠버네티스 서비스에서 제공하는 서버에서 뜨는 것이여서 서버들은 기본적으로 인터넷이 막혀있어 (아닌 곳도 있음) 그러한 곳은 Proxy를 넣어주어 인터넷 연결을 설정해주어야한다.

pod에 proxy설정이 안될경우, pod는 정상적으로 Running이지만 pod log를 보면 다음처럼 보인다.

이를 어떻게 할 수 있는 지 알아보자.

pod에 대한 proxy 설정이므로 pod 선언적 자료 yaml에서 정의한다.

가령, proxy 주소가 http://proxy.dev.onkakao.net 라면
사용하려는 pod 혹은 deployment에 env 위치에 proxy를 추가한다.

spec:
      containers:
      - name: jenkins
        image: jenkins/jenkins:2.346
        env:
          - name: https_proxy
            value: http://proxy.주소
          - name: HTTPS_PROXY
            value: http://proxy.주소
          - name: http_proxy
            value: http://proxy.주소
          - name: HTTP_PROXY
            value: http://proxy.주소
          - name: no_proxy
            value: "localhost,127.0.0.1,127.0.0.0/8,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,주소~~"
          - name: NO_PROXY
            value: "localhost,127.0.0.1,127.0.0.0/8,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,주소~~"

이런식으로 proxy 설정을 추가할 항목을 name가 주소값 value로 추가하고
no_proxy 즉, 모든 트래픽이 proxy를 거쳐가기에 proxy를 거치지 않아야하는 쿠버네티스 내부 트래픽도 proxy를 거치게 되므로 127.0.0.1과 같은 로컬 호스트는 no_proxy로 설정해준다.

profile
DevOps 🐥

0개의 댓글