프록시 뒤에 설치

이 페이지에서는 베어메탈용 Anthos 클러스터에 프록시 및 방화벽 규칙을 설정하는 방법을 보여줍니다.

프록시 서버 구성

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

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

기본 요건

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

주소 용도
*.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 클러스터는 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 주소, 호스트 이름, 도메인 이름의 목록입니다.

대부분의 경우 이 목록에 항목을 추가할 필요가 없습니다.

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 프록시를 수동으로 구성합니다.

방화벽 규칙

베어메탈용 Anthos 클러스터에 필요한 트래픽을 허용하려면 다음 섹션에 설명된 대로 방화벽 규칙을 설정하세요.

베어메탈용 Anthos 클러스터에 대한 기본 포트 요건은 포트 사용량을 참조하세요.

클러스터 노드 IP 주소의 방화벽 규칙

다음 표에서는 클러스터에서 사용할 수 있는 IP 주소에 대한 방화벽 규칙을 설명합니다.

시작일

소스 포트

종료일

포트

프로토콜

설명

클러스터 노드 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
443 TCP/HTTPS 허브 등록을 위해 액세스 권한이 필요합니다.
클러스터 노드에서 실행되는 Cloud Logging 수집기 1024 - 65535 oauth2.googleapis.com
logging.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
storage.googleapis.com
www.googleapis.com
443 TCP/HTTPS
클러스터 노드에서 실행되는 Cloud Metadata 수집기 1024 - 65535 opsconfigmonitoring.googleapis.com 443 TCP/HTTPS
클러스터 노드에서 실행되는 Cloud Monitoring 수집기 1024 - 65535 oauth2.googleapis.com
monitoring.googleapis.com
stackdriver.googleapis.com
servicecontrol.googleapis.com
443 TCP/HTTPS
클러스터 노드 1024 - 65535 온프레미스 로컬 Docker 레지스트리 레지스트리에 따라 달라집니다. TCP/HTTPS 베어메탈용 Anthos 클러스터는 gcr.io 대신 로컬 비공개 Docker 레지스트리를 사용하도록 구성된 경우에 필요합니다.
클러스터 노드 1024 - 65535 gcr.io
oauth2.googleapis.com
storage.googleapis.com
관리자 클러스터에 대해 사용 설정된 서비스에 필요한 *.googleapis.com 형식의 모든 Google API URL
443 TCP/HTTPS 공개 Docker 레지스트리에서 이미지 다운로드 비공개 Docker 레지스트리를 사용하는 경우에는 필요하지 않습니다.
클러스터 노드에서 실행되는 Connect Agent 1024 - 65535 cloudresourcemanager.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
www.googleapis.com
iam.googleapis.com
iamcredentials.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
sts.googleapis.com
accounts.google.com
443 TCP/HTTPS [Connect traffic](/anthos/multicluster-management/connect).

나머지 구성요소의 방화벽 규칙

다음 표에 설명된 규칙은 이전 섹션에 나열되지 않은 다른 모든 구성요소에 적용됩니다.

시작일

소스 포트

종료일

포트

프로토콜

설명

클라이언트 및 애플리케이션 최종 사용자 전체 Istio 인그레스 VIP 80, 443 TCP 사용자 클러스터의 인그레스 서비스에 대한 최종 사용자 트래픽
관리 워크스테이션 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
oauth2.googleapis.com
storage.googleapis.com
이 클러스터에 대해 사용 설정된 서비스에 필요한 모든 *.googleapis.com URL
443 TCP/HTTPS 공개 Docker 레지스트리에서 Docker 이미지 다운로드
관리 워크스테이션 32768 - 60999 gcr.io
cloudresourcemanager.googleapis.com
iam.googleapis.com
oauth2.googleapis.com
serviceusage.googleapis.com
storage.googleapis.com
관리자 또는 사용자 클러스터에 대해 사용 설정된 서비스에 필요한 모든 *.googleapis.com URL
443 TCP/HTTPS 실행 전 검사(유효성 검사)