프록시 뒤에 설치

부트스트랩 및 클러스터 노드에 사용 중인 머신이 프록시 서버를 사용하여 인터넷에 액세스하는 경우 다음을 수행해야 합니다.

  • 클러스터 노드에서 패키지 관리자에 대한 프록시 구성
  • 클러스터 구성 파일에서 프록시 세부정보를 구성

기본 요건

프록시 서버에서 다음 주소에 대한 연결을 허용해야 합니다.

주소 용도
*.gcr.io Container Registry에서 이미지를 가져옵니다.
accounts.google.com OpenID의 승인 요청을 처리하고 토큰을 확인할 수 있도록 공개 키를 검색합니다.
cloudresourcemanager.googleapis.com 클러스터가 연결되는 Google Cloud 프로젝트와 관련된 메타데이터를 확인합니다.
compute.googleapis.com Cloud Logging 및 Cloud Monitoring 리소스 리전을 확인합니다.
dl.fedoraproject.org Red Hat Enterprise Linux(RHEL) 배포를 사용할 때 Extra Packages for Enterprise Linux(EPEL)를 설치합니다.
download.docker.com Docker 저장소를 추가합니다. Docker 저장소 추가는 프록시 뒤에서 관리자 워크스테이션을 실행하는 경우에 필요합니다. Docker가 컨테이너 런타임에 사용될 때 프록시 뒤에서 실행되는 노드 머신에 필요합니다.
gkeconnect.googleapis.com Google Cloud에서 요청을 수신하는 데 사용되는 채널을 설정하고 응답을 보냅니다.
gkehub.googleapis.com Google Cloud와 연결할 클러스터에 해당하는 Google Cloud 측 허브 멤버십 리소스를 만듭니다.
iam.googleapis.com Google Cloud 인증 및 API 호출에 사용할 수 있는 서비스 계정을 생성합니다.
iamcredentials.googleapis.com 감사 로깅에 허용 제어 및 원격 분석 보고를 제공합니다.
logging.googleapis.com 로그 항목을 작성하고 Cloud Logging 구성을 관리합니다.
monitoring.googleapis.com Cloud Monitoring 데이터와 구성을 관리합니다.
packages.cloud.google.com Google Cloud 패키지 미러링에서 패키지를 다운로드합니다.
oauth2.googleapis.com 계정에 액세스할 수 있도록 OAuth 토큰 교환을 통해 인증합니다.
opsconfigmonitoring.googleapis.com 포드, 배포, 노드와 같은 Kubernetes 리소스의 메타데이터를 수집하여 측정항목 쿼리를 강화합니다.
securetoken.googleapis.com 워크로드 아이덴티티를 승인할 수 있도록 갱신 토큰을 검색합니다.
servicecontrol.googleapis.com Cloud 감사 로그에 감사 로그 항목을 씁니다.
serviceusage.googleapis.com 서비스 및 API를 사용 설정하고 검증합니다.
stackdriver.googleapis.com Stackdriver 계정과 같은 Google Cloud 운영 제품군 메타데이터를 관리합니다.
storage.googleapis.com 객체 스토리지 및 버킷(예: Container Registry 객체)을 관리합니다.
sts.googleapis.com 단기 액세스 토큰의 Google 또는 타사 사용자 인증 정보를 Google Cloud 리소스로 교환합니다.
www.googleapis.com 수신되는 Google Cloud 서비스 요청에서 서비스 토큰을 인증합니다.

이러한 URL 외에도 프록시 서버는 운영체제의 패키지 관리자에 필요한 모든 패키지 미러를 허용해야 합니다. 패키지 관리자 구성을 업데이트하여 보다 확정적인 목록을 사용할 수 있으므로 관리가 쉽습니다.

클러스터 노드에서 패키지 관리자에 대한 프록시 구성

Anthos clusters on bare metal은 Ubuntu의 APT 패키지 관리자 및 CentOS와 Red Hat Linux의 DNF 패키지 관리자를 사용합니다. OS 패키지 관리자에 올바른 프록시 구성이 있는지 확인합니다.

프록시 구성에 대한 자세한 내용은 OS 배포 문서를 참조하세요. 다음 예시에서는 프록시 설정을 구성하는 한 가지 방법을 보여줍니다.

APT

다음 명령어는 APT용 프록시를 구성하는 방법을 보여줍니다.

sudo touch /etc/apt/apt.conf.d/proxy.conf
echo 'Acquire::http::Proxy "http://[username:password@]domain";' >> /etc/apt/apt.conf.d/proxy.conf
echo 'Acquire::https::Proxy "http://[username:password@]domain";' >> /etc/apt/apt.conf.d/proxy.conf

[username:password@]domain을 구성과 관련된 세부정보로 바꿉니다.

DNF

이 명령어는 DNF용 프록시를 구성하는 방법을 보여줍니다.

echo "proxy=http://[username:password@]domain" >> /etc/dnf/dnf.conf

[username:password@]domain을 구성과 관련된 세부정보로 바꿉니다.

클러스터 구성 파일에서 프록시 세부정보 구성

클러스터 구성 파일에서 다음 값을 설정하여 클러스터가 프록시를 사용하도록 구성합니다.

proxy.url

프록시 URL을 지정하는 문자열입니다. 부트스트랩 및 노드 머신은 이 프록시를 사용하여 인터넷에 액세스합니다.

proxy.noProxy

프록시 서버를 거치지 않아야 하는 IP 주소, 호스트 이름, 도메인 이름의 목록입니다.

대부분의 경우 이 목록에 항목을 추가할 필요가 없습니다. 서비스 및 포드 CIDR을 추가하지 마십시오.

noProxy 사용 사례:

  • 동일한 비공개 네트워크에 있는 비공개 패키지 미러 사용(액세스에 프록시 필요 없음)

  • 동일한 비공개 네트워크에 있는 비공개 레지스트리 미러 사용(액세스에 프록시 필요 없음)

다음은 클러스터 구성 파일의 프록시 설정 예시입니다.

  proxy:
     url: http://[username:password@]domain
     noProxy:
     - example1.com
     - example2.com

프록시 구성 재정의

클러스터 구성 파일에서 프록시 설정을 재정의하여 노드 머신에서 사용되는 것과 다른 프록시 뒤에서 부트스트랩 머신을 실행할 수 있습니다. 프록시 설정을 재정의하려면 부트스트랩 머신에서 다음 환경 변수를 설정합니다.

export HTTPS_PROXY=http://[username:password@]domain

[username:password@]domain을 구성과 관련된 세부정보로 바꿉니다.

export NO_PROXY=example1.com,example2.com

example1.com,example2.com을 프록시 서버를 거치지 않아야 하는 IP 주소, 호스트 이름, 도메인 이름으로 바꿉니다.

부작용

루트로 실행하면 bmctl은 부트스트랩 머신에서 Docker 프록시 구성을 업데이트합니다. bmctl을 루트로 실행하지 않는 경우 Docker 프록시를 수동으로 구성합니다.