베어메탈용 Anthos 클러스터의 설치 기본 요건은 다음과 같습니다.
bmctl
도구를 실행하는 워크스테이션 머신의 기본 요건- 베어메탈용 Anthos 클러스터 배포에 포함된 노드 머신의 기본 요건
- 부하 분산기 머신의 기본 요건
- Google Cloud 프로젝트의 기본 요건
- 서비스 계정의 기본 요건
워크스테이션 머신을 클러스터 노드 머신으로 사용하는 경우 두 머신의 기본 요건을 충족해야 합니다.
시작하기 전에
설치 중에 다음 사용자 인증 정보를 제공해야 합니다.
- 클러스터 노드 머신에 액세스하는 데 필요한 비공개 SSH 키
root
를 사용하지 않는 경우 클러스터 노드 머신 로그인 이름- Google Cloud 서비스 계정 키. 자세한 내용은 서비스 계정 키 만들기 및 관리를 참조하세요.
베어메탈용 Anthos 클러스터를 설치하기 전에 필요한 사용자 인증 정보가 있는지 확인하세요.
gcloud에 로그인
gcloud auth application-default
로그인을 사용하여 gcloud에 사용자로 로그인합니다.- 서비스 계정 관리자
- 서비스 계정 키 관리자
- 프로젝트 IAM 관리자
- Compute 뷰어
- 서비스 사용량 관리자
- 클러스터 생성 시 사용할 Google Cloud 프로젝트 ID를 가져옵니다.
gcloud auth application-default login아래에 설명된 자동 API 사용 설정 및 서비스 계정 생성 기능을 사용하려면 프로젝트 소유자/편집자 역할이 있어야 합니다. 또한 다음 IAM 역할을 사용자에게 추가할 수 있습니다.
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILEJSON_KEY_FILE은 서비스 계정 JSON 키 파일의 경로를 지정합니다.
export CLOUD_PROJECT_ID=$(gcloud config get-value project)
워크스테이션 기본 요건
bmctl
워크스테이션은 다음 기본 요건을 충족해야 합니다.
- 운영체제가 클러스터 노드 머신에서 실행되는 것과 동일한 지원되는 Linux 배포판입니다.
- Docker 버전 19.03 이상 설치됨
- 루트가 아닌 사용자는
docker
그룹의 구성원입니다. 자세한 내용은 루트가 아닌 사용자로 Docker 관리를 참조하세요. - gcloud 설치됨
- 50GB가 넘는 여유 디스크 공간
- 모든 클러스터 노드 머신에 대한 Layer 3 연결
- 비밀번호 없이 루트 액세스 권한이 있는 비공개 키로 SSH를 통해 모든 클러스터 노드 머신에 액세스. 직접 또는 sudo를 통해 액세스 가능
- 제어 영역 VIP에 액세스
노드 머신 기본 요건
노드 머신의 기본 요건은 다음과 같습니다.
- 운영체제가 지원되는 Linux 배포판 중 하나입니다.
- Linux 커널 버전은 4.17.0 이상입니다. Ubuntu 18.04 및 18.04.1은 Linux 커널 버전 4.15에 있으므로 호환되지 않습니다.
- 최소 하드웨어 요구사항을 충족합니다.
- 인터넷 액세스
- 다른 모든 노드 머신에 대한 Layer 3 연결
- 제어 영역 VIP에 액세스
- 올바르게 구성된 DNS 네임서버
- 중복된 호스트 이름이 없습니다.
- 다음 NTP 서비스 중 하나가 사용 설정되어 작동합니다.
- chrony
- ntp
- ntpdate
- systemd-timesyncd
- 작동하는 패키지 관리자: apt, dnf 등
- Ubuntu에서는 Uncomplicated Firewall(UFW)을 사용 중지해야 합니다.
systemctl stop ufw
를 실행하여 UFW를 사용 중지합니다. - Ubuntu에서 베어메탈용 Anthos 클러스터 1.8.2부터는 AppArmor를 사용 중지할 필요가 없습니다. 이전 버전의 베어메탈용 Anthos 클러스터를 사용하여 클러스터를 배포하는 경우 다음 명령어를 사용하여 AppArmor를 사용 중지합니다.
systemctl stop apparmor
- Docker를 컨테이너 런타임으로 선택하는 경우 Docker 버전 19.03 이상을 설치해도 됩니다. 노드 머신에 Docker를 설치하지 않았거나 이전 버전이 설치되어 있는 경우 클러스터를 만들 때 Anthos on bare metal 19.03.13 이상을 설치합니다.
기본 컨테이너 런타임인 containerd를 사용하는 경우에는 Docker가 필요하지 않으며, Docker를 설치하면 문제가 발생할 수 있습니다. 자세한 내용은 알려진 문제를 참조하세요.
클러스터 생성에서는 베어메탈용 Anthos 클러스터 구성요소에 필요한 여유 공간만 확인합니다. 이러한 변경사항으로 인해 애플리케이션 워크로드에 할당할 공간을 더욱 효과적으로 제어할 수 있습니다. 베어메탈용 Anthos 클러스터를 설치할 때마다 다음 디렉터리를 지원하는 파일 시스템에 필요한 용량이 있고 다음 요구사항이 충족되는지 확인합니다.
/
: 17 GiB (18,253,611,008바이트).- 컨테이너 런타임에 따라
/var/lib/docker
또는/var/lib/containerd
:- 제어 영역 노드용 30GiB (32,212,254,720바이트)
- 워커 노드용 10GiB (10,485,760바이트)
/var/lib/kubelet
: 500 MiB (524,288,000바이트)/var/lib/etcd
: 20 GiB (21,474,836,480바이트, 제어 영역 노드에만 해당)
클러스터 버전에 관계없이 앞의 디렉터리 목록은 같은 파티션에 또는 다른 파티션에 있을 수 있습니다. 같은 기본 파티션에 있는 경우 공간 요구사항은 해당 파티션의 각 개별 디렉터리에 필요한 공간의 합계입니다. 모든 출시 버전에서 클러스터 만들기 프로세스가 필요한 경우 디렉터리를 만듭니다.
/var/lib/etcd
및/etc/kubernetes
디렉터리가 없거나 비어 있습니다.
베어메탈용 Anthos 클러스터를 설치하고 실행하기 위한 기본 요건 외에도 고객은 산업 또는 비즈니스 세그먼트에 적용되는 관련 표준(예: 신용카드를 처리하는 비즈니스에 대한 PCI DSS 요구사항 또는 방위 산업의 비즈니스에 대한 보안 기술 구현 가이드(STIG))을 준수해야 합니다.
부하 분산기 머신 기본 요건
배포에 특수 부하 분산기 노드 풀이 없으면 작업자 노드 또는 제어 영역 노드가 부하 분산기 노드 풀을 빌드하도록 할 수 있습니다. 이 경우 다음과 같은 추가 기본 요건이 적용됩니다.
- 머신이 동일한 Layer 2 서브넷에 있습니다.
- 모든 VIP는 부하 분산기 노드 서브넷에 있으며 서브넷의 게이트웨이에서 라우팅할 수 있습니다.
- 부하 분산기 서브넷의 게이트웨이는 불필요한 ARP를 리슨하여 패킷을 마스터 부하 분산기로 전달해야 합니다.
Google Cloud 프로젝트 기본 요건
베어메탈용 Anthos 클러스터를 설치하기 전에 연결된 GCP 프로젝트에 다음 서비스를 사용 설정합니다.
anthos.googleapis.com
anthosaudit.googleapis.com
anthosgke.googleapis.com
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
iam.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
serviceusage.googleapis.com
stackdriver.googleapis.com
bmctl
도구를 사용하여 이러한 서비스를 사용 설정할 수도 있습니다.
서비스 계정 기본 요건
프로덕션 환경에서는 용도별로 서비스 계정을 만들어야 합니다. 베어메탈용 Anthos 클러스터에는 용도에 따라 다음과 같이 다양한 유형의 Google Cloud 서비스 계정이 필요합니다.
- Container Registry(
gcr.io
)에 액세스할 때는 특별한 역할이 없어도 됩니다. - Fleet에 클러스터를 등록하려면 Google Cloud 프로젝트의 서비스 계정에
roles/gkehub.admin
IAM 역할을 부여합니다. - Fleet에 연결하려면 Google Cloud 프로젝트의 서비스 계정에
roles/gkehub.connect
IAM 역할을 부여합니다. Google Cloud 운영 제품군에 로그 및 측정항목을 전송하려면 Google Cloud 프로젝트의 서비스 계정에 다음 IAM 역할을 부여합니다.
roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/opsconfigmonitoring.resourceMetadata.writer
bmctl
도구를 사용하여 이러한 서비스 계정을 만들 수도 있습니다.