쿠버네티스에서 애플리케이션은 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로 설정해준다.