부트스트랩 및 클러스터 노드에 사용 중인 머신이 프록시 서버를 사용하여 인터넷에 액세스하는 경우 다음을 수행해야 합니다.
- 클러스터 노드에서 패키지 관리자에 대한 프록시 구성
- 클러스터 구성 파일에서 프록시 세부정보를 구성
기본 요건
프록시 서버에서 다음 주소에 대한 연결을 허용해야 합니다.
주소 | 용도 |
---|---|
*.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 프록시를 수동으로 구성합니다.