Anthos 비공개 모드 설치 빠른 시작
Anthos 비공개 모드 빠른 시작 범위
이 빠른 시작에서는 베어 메탈 머신, 네트워킹, 스토리지 및 운영체제와 같은 인프라 레이어를 담당하는 인프라 운영자에게 Anthos 비공개 모드 설치를 설명합니다. 이 빠른 시작에서는 다음 작업을 처리하는 방법을 알아봅니다.
- 최소 설치 방식을 사용하여 Anthos 비공개 모드를 설치하고 구성합니다.
- 관리자 클러스터를 배포합니다.
- 사용자 클러스터를 만들고 사용자 클러스터에 애플리케이션을 배포합니다.
Anthos 비공개 모드에는 두 가지 유형의 클러스터가 있습니다.
- 관리자 클러스터는 사용자 클러스터를 만들고 관리하는 데 사용됩니다.
- 사용자 클러스터는 워크로드를 실행합니다.
Anthos 비공개 모드 배포를 설치하고 관리하는 데 필요한 도구가 포함된 단일 머신인 관리자 워크스테이션도 있습니다.
시작하기 전에
Anthos 비공개 모드의 기술 요구사항을 충족하고 사용할 수 있는 머신이 5개 이상 있는지 확인합니다. 이 빠른 시작에는 이전 Kubernetes 및 시스템 관리 환경이 필요합니다.환경 준비
Anthos 비공개 모드 액세스
Google에서 Anthos 비공개 모드 출시 버전에 대한 액세스 권한을 부여해야 합니다. 다운로드 저장소에 대한 액세스 권한을 부여할 수 있도록 각 테스터의 이메일 주소를 Google 담당자에게 제공합니다. 이러한 이메일 주소는 Google 계정이어야 합니다.
Google 담당자는 사용자에게 Anthos 비공개 모드 출시 버전에 대한 액세스 권한이 있음을 확인한 후 다음 명령어를 실행하여 Anthos 비공개 모드 출시 버전을 다운로드할 수 있는 권한이 있는지 확인합니다.
gsutil ls gs://anthos-private-mode-release/
오류가 발생할 경우 gcloud auth list
명령어를 실행하여 gsutil
에서 Google 담당자에게 제공된 것과 동일한 Google 계정을 사용하고 있는지 확인합니다.
또는 최신 출시 버킷으로 이동하여 올바른 권한이 있는지 확인할 수 있습니다. 이전에 제공한 Google 계정으로 로그인해야 합니다.
Anthos 비공개 모드 출시 버전에 액세스하는 데 문제가 있으면 Google 담당자에게 문의하세요.
Anthos 비공개 모드 다운로드
이 섹션에서는 각각 여러 기가바이트의 여러 파일에 포함된 Anthos 비공개 모드 출시 버전을 다운로드합니다. 인터넷 연결 상태에 따라 다운로드하는 데 시간이 오래 걸릴 수 있습니다.
Anthos 비공개 모드 다운로드
관리자 워크스테이션에서 다음 명령어를 실행합니다.
# Login with the account granted access to Anthos private mode
gcloud auth login
# Download the script which helps download all the latest components
export VERSION=1.8.5-gke.1
# Please use official 'INSTALLER_DIGEST' value from https://cloud.google.com/anthos/private-mode/docs/1.8/installing/infrastructure#download
export INSTALLER_DIGEST=7747774fc4274f330558c647b4268c3ef7fcac355c3f3451d7c6c09b8d91b933
export INSTALLER=get-anthos-private-mode-$VERSION.sh
gsutil cp gs://anthos-private-mode-release/$VERSION/$INSTALLER .
if [[ -n "$INSTALLER_DIGEST" ]]; then echo "$INSTALLER_DIGEST $INSTALLER" | sha256sum -c; fi && chmod +x $INSTALLER && ./$INSTALLER
# If you are working on a workstation shared with other users,
# we recommend that you revoke your credentials after downloading the release.
gcloud auth revoke YOUR_EMAIL_ADDRESS
남은 종속 항목 설치
Anthos 비공개 모드 다운로드가 완료되면 다음 명령어를 실행합니다.
cd anthos-baremetal-private-mode
# Add actl command line tool and tools directory to the PATH
export PATH=$PWD/bin:$PATH
# Download Harbor offline installer
curl -SL \
https://github.com/goharbor/harbor/releases/download/v2.2.0/harbor-offline-installer-v2.2.0.tgz \
--output "local-registry/harbor-offline-installer.tgz"
# Install docker-compose
curl -SL \
https://github.com/docker/compose/releases/download/1.28.5/docker-compose-Linux-x86_64 \
--output "local-registry/docker-compose"
데모 앱을 배포할 때까지 인터넷에 다시 연결할 필요가 없습니다.
로컬 Container Registry 설정
Anthos 비공개 모드는 Anthos 컨테이너 이미지를 로컬 Container Registry에 저장하면 작동합니다.
다음 환경 변수를 내보냅니다.
export REGISTRY_HOST=REGISTRY_HOST
export REGISTRY_PASSWORD=REGISTRY_PASSWORD
# By default, a library public project is created,
# and you can also create other private projects via the container registry portal.
export PRIVATE_REGISTRY=${REGISTRY_HOST}/library
다음을 바꿉니다.
REGISTRY_HOST
는 레지스트리 IP 주소입니다. 관리자 워크스테이션의 Anthos 비공개 모드 Container Registry를 설치 및 사용하려면 여기에서 관리자 워크스테이션 IP 주소를 사용합니다.REGISTRY_PASSWORD
는 레지스트리 비밀번호에 설정한 값입니다.
Anthos 비공개 모드 Container Registry 설정
이 섹션에서는 관리자 워크스테이션에 비공개 Container Registry를 설정합니다. 관리자 워크스테이션에서 아래의 모든 명령어를 실행합니다.
자체 비공개 Container Registry가 없으면 Anthos 비공개 모드 Container Registry를 설치합니다.
cd ~/anthos-baremetal-private-mode # Move it to a path under $PATH chmod a+x local-registry/docker-compose sudo cp local-registry/docker-compose /usr/bin # Install local registry ./local-registry/install.sh
레지스트리에 로그인하여 액세스 권한이 있는지 확인합니다. 오류가 발생하면 몇 초 정도 기다려야 할 수 있습니다.
docker login ${REGISTRY_HOST} -u admin -p ${REGISTRY_PASSWORD}
Container Registry는 서비스가 시작된 후 https://REGISTRY_HOST/
에서 사용할 수 있습니다.
로그인 사용자 인증 정보는 사용자 이름 admin
및 비밀번호용 REGISTRY_PASSWORD
입니다.
Container Registry에 이미지 업로드
이 섹션에서는 Anthos 비공개 모드 컨테이너 이미지를 Container Registry에 업로드합니다.
Anthos 비공개 모드 컨테이너 이미지를 준비하여 Container Registry에 업로드합니다. 메시지가 표시되면 Use that credential
옵션을 선택하거나 새 사용자 인증 정보를 입력합니다.
actl images push --private-registry=${PRIVATE_REGISTRY} \
--images ~/anthos-baremetal-private-mode
참고: 워크스테이션에서 HTTP 프록시를 사용하는 경우 actl images push
명령어가 작동하려면 다음 환경 변수를 설정 해제해야 할 수 있습니다.
unset http_proxy
unset https_proxy
unset HTTP_PROXY
unset HTTPS_PROXY
관리 센터 설치
이 섹션에서는 Anthos cluster on bare metal을 설치한 다음 관리자 클러스터 위에 Anthos 관리 센터를 설치합니다.
관리자 클러스터 구성 준비
./actl-workspace/admin/admin.yaml
파일을 사용자 환경과 일치하는 설정으로 업데이트합니다.
vi ./actl-workspace/admin/admin.yaml
다음 입력란을 작성하세요.
sshPrivateKeyPath
는 클러스터의 일부분이 될 다른 노드에 액세스하기 위해 설치 중에 사용되는 키입니다. 이는 기본 요건의 노드에 배포한 공개 키의 비공개 카운터입니다.registryMirrors
는 Docker 이미지가 저장된 모든 레지스트리 미러의 위치를 식별합니다.registryMirrors.endpoint
는 미러의 엔드포인트입니다. 엔드포인트 형식은URL_SCHEME://REGISTRY_HOST/v2/IMAGE_PREFIX
입니다. 예를 들어 워크스테이션에 레지스트리를 만든 경우 엔드포인트를https://REGISTRY_HOST/v2/library
로 설정합니다.REGISTRY_HOST
와IMAGE_PREFIX
사이의/v2/
는 필수입니다.registryMirrors.pullCredentialConfigPath
는 사용자 인증 정보 경로입니다. 이는 일반적으로/home/USER/.docker/config.json
과 비슷합니다.registryMirrors.caCertPath
는 레지스트리가 트래픽을 암호화하는 데 사용할 인증 기관의 위치입니다. 이 인증서는 설치 프로세스가 진행되는 동안 노드에 배포되어 레지스트리에서 이미지를 가져올 수 있습니다. 경로는 일반적으로/etc/docker/certs.d/REGISTRY_HOST/ca.crt
입니다.
controlPlane
사양은 제어 영역에 포함된 노드를 정의합니다.controlPlane: nodePoolSpec: nodes: # Control plane node pools. Typically, this is either a single machine # or 3 machines if using a high availability deployment. - address: 10.200.0.3
loadBalancer
사양은 사용되는 부하 분산기 유형을 정의합니다. 기본 구성은 실행 중인 클러스터에 부하 분산기를 설치합니다. 이 경우 최소한 Kubernetes API 서버를 노출할 가상 IP(VIP) 주소 풀을 식별하기 위해controlPlaneVIP
를 설정하고 이를 요청하는 서비스에 VIP를 할당하도록addressPools
를 설정해야 합니다. 예를 들면 다음과 같습니다.loadBalancer: mode: bundled # There are two load balancer VIPs: one for the control plane and one for the # L7 Ingress service. # The VIPs must be in the same subnet as the load balancer nodes. vips: # ControlPlaneVIP specifies the VIP to connect to the Kubernetes API server. # This address must not be in the address pools below. controlPlaneVIP: 10.200.0.50 # AddressPools is a list of non-overlapping IP ranges for the data plane load # balancer. # All addresses must be in the same subnet as the load balancer nodes. # Address pool configuration is only valid for 'bundled' LB mode in non-admin # clusters. addressPools: - name: pool1 addresses: # Each address must be either in the CIDR form (1.2.3.0/24) # or range form (1.2.3.1-1.2.3.5). - 10.200.0.51-10.200.0.59
클러스터 사양의 마지막 섹션은
loginUser
를 지정합니다. 이 로그인은 아래에 지정된 SSH 키에 액세스할 수 있어야 하며, 기본 요건에서 키가 배포된 사용자입니다.nodeAccess: loginUser: LOGIN_USERNAME
LOGIN_USERNAME
을 사용자 클러스터에 로그인하는 데 사용된 사용자 이름으로 바꿉니다.nodePool
사양은 관리 클러스터에서 관리 센터 콘솔, Prometheus, Grafana 및 기타 서비스를 호스팅할 노드를 식별합니다. 이러한 노드는 관리 클러스터의 워커 노드입니다. 예를 들면 다음과 같습니다.apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-admin spec: # Cannot be changed, must be admin clusterName: admin nodes: - address: 10.200.0.6
관리자 클러스터 만들기
다음 명령어를 실행하여 관리자 클러스터를 만듭니다. 약 30분이 소요됩니다.
cd ~/anthos-baremetal-private-mode
actl clusters baremetal create admin
관리자 클러스터가 생성되면 액세스할 수 있는지 확인합니다.
export ADMIN_KUBECONFIG=$(pwd)/bmctl-workspace/admin/admin-kubeconfig
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl get nodes
관리 센터 설치
기본 구성으로 관리 클러스터에 관리 센터를 설치합니다.
cd ~/anthos-baremetal-private-mode actl platform management-center create
브라우저에서 Anthos 관리 센터에 액세스합니다.
actl platform management-center describe --kubeconfig=${ADMIN_KUBECONFIG}
Anthos 관리 센터 URL이 반환됩니다.
리소스 등록
인벤토리 머신 등록
사용자 클러스터를 만들려면 Anthos에 사용 가능한 유휴 상태의 머신 풀이 필요합니다. 이 섹션에서는 인벤토리 머신을 Anthos 관리자 클러스터에 등록하여 사용할 수 있도록 합니다.
kubectl apply -f <path/to/example-machine.yaml> --kubeconfig=${ADMIN_KUBECONFIG}
예:
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: InventoryMachine
metadata:
name: IP_ADDRESS
labels:
"KEY": "VALUE"
spec:
address: IP_ADDRESS
다음을 바꿉니다.
IP_ADDRESS
: 머신의 IP 주소입니다(예:10.200.0.10
).KEY
:VALUE
: 랙 위치를 나타내기 위한 키:값 쌍입니다(예:"rack": "r1020"
).
labels
는 리소스에 연결된 자유 형식 키-값 쌍입니다.
이러한 라벨은 나중에 관리 센터에서 머신을 필터링하기 위해 사용될 수 있습니다.
예를 들어 라벨을 사용하여 랙 위치 또는 특별한 하드웨어 구성을 식별할 수 있습니다.
사용자 클러스터 만들기
관리 센터의 클러스터 페이지에서 만들기를 클릭하여 새 Anthos 사용자 클러스터를 만듭니다. 클러스터가 생성되면 관리 센터에 자동으로 등록되고 클러스터 대시보드에 즉시 표시됩니다.
설치 및 준비되는 데 최대 15분이 걸릴 수 있습니다. 기다리는 동안 다음 명령어를 사용하여 사용자 클러스터의 상태를 확인할 수 있습니다.
kubectl get Cluster -n USER_CLUSTER_NAME --kubeconfig=${ADMIN_KUBECONFIG}
USER_CLUSTER_NAME
을 생성된 클러스터 이름으로 바꿉니다.
상태가 준비되면 클러스터가 생성되고 관리자 클러스터에 등록됩니다.
사용자 클러스터에 대한 액세스 권한 획득
사용자 클러스터가 생성되면 관리 센터를 통해 kubeconfig를 다운로드할 수 있습니다.
데모 앱 배포
Online Boutique 샘플 애플리케이션을 사용해 Anthos 비공개 모드를 살펴볼 수 있습니다.
이미지 다운로드
이 섹션의 단계를 수행하려면 인터넷에 연결해야 합니다.
샘플 저장소를 다운로드합니다.
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git/ online-boutique
이미지 다운로드
IMAGES=$(cat online-boutique/release/kubernetes-manifests.yaml | grep image | sed "s/ *image: //") actl images save --output online-boutique-images ${IMAGES}
샘플 배포
이미지를 비공개 레지스트리로 푸시합니다.
actl images push --images online-boutique-images --private-registry=PRIVATE_REGISTRY
PRIVATE_REGISTRY
를 비공개 레지스트리 이름으로 바꿉니다.애플리케이션의 네임스페이스를 만듭니다.
kubectl create namespace demo --kubeconfig=USER_CLUSTER_KUBECONFIG
USER_CLUSTER_KUBECONFIG
를 사용자 클러스터 Kubeconfig 파일의 경로로 바꿉니다.클러스터에 샘플을 배포합니다.
kubectl apply -n demo -f online-boutique/release/ --kubeconfig=USER_CLUSTER_KUBECONFIG
삭제
다음 명령어를 실행하여 사용자 클러스터를 삭제합니다.
kubectl -n cluster-USER_CLUSTER_NAME \
delete Cluster USER_CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
다음 단계
- 샘플 구성 파일을 통해 살펴봅니다.