migctl
도구 또는 Google Cloud Console을 사용하여 빠른 시작에 필요한 단계를 수행할 수 있습니다. migctl
은 Google Cloud에서 Migrate for Anthos 마이그레이션 환경을 설정하고 관리하기 위한 명령줄 도구입니다. migctl
은 Cloud Shell에서 사용할 수 있습니다.
시작하기 전에
Compute Engine 지원 사용 설정
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Compute Engine API를 사용 설정합니다.
GKE 사용 설정 및 구성
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API가 사용 설정되었는지 확인합니다. Google Kubernetes Engine API 사용 설정
- Cloud SDK가 설치되었는지 확인합니다.
다음 방법 중 하나를 사용하여 기본 gcloud
설정을 진행합니다.
gcloud init
를 사용하여 기본값 설정 과정을 진행합니다.gcloud config
를 사용하여 프로젝트 ID, 영역, 리전을 개별적으로 설정합니다.
gcloud init 사용
One of [--zone, --region] must be supplied: Please specify
location
오류가 표시되면 이 섹션을 완료합니다.
-
gcloud init
를 실행하고 다음 안내를 따르세요.gcloud init
원격 서버에서 SSH를 사용하는 경우
--console-only
플래그를 사용하여 다음 명령어로 브라우저를 실행하지 못하게 할 수 있습니다.gcloud init --console-only
- 안내를 따라
gcloud
에서 Google Cloud 계정을 사용하도록 승인합니다. - 새 구성을 만들거나 기존 구성을 선택합니다.
- Google Cloud 프로젝트를 선택합니다.
- 영역 클러스터의 기본 Compute Engine 영역이나 리전 또는 Autopilot 클러스터의 리전을 선택합니다.
gcloud config 사용
웹 서버에 VM 만들기
다음 단계에서는 'Hello World!' 웹페이지를 제공하는 간단한 Compute Engine VM을 만듭니다. 페이지가 준비되면 마이그레이션 후 기능을 테스트할 수 있습니다.
다음 명령어를 실행하여 마이그레이션할 VM 인스턴스를 만듭니다.
이 주제의 후반부에서 GKE 클러스터를 만들 영역과 동일한 영역을 지정합니다.
gcloud compute instances create quickstart-instance \ --project=project-id --zone=zone --machine-type=n1-standard-1 \ --subnet=default --scopes="cloud-platform" \ --tags=http-server,https-server --image=ubuntu-minimal-1604-xenial-v20210119a \ --image-project=ubuntu-os-cloud --boot-disk-size=10GB --boot-disk-type=pd-standard \ --boot-disk-device-name=quickstart-instance
다음 명령어를 실행하여 HTTP를 통한 인스턴스 요청을 허용하는 방화벽 규칙을 만듭니다.
gcloud compute --project=project-id firewall-rules create default-allow-http \ --direction=INGRESS --priority=1000 --network=default --action=ALLOW \ --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=http-server
Google Cloud Console에서 VM 인스턴스 페이지로 이동합니다.
가상 머신 인스턴스 목록의 바로 전에 만든 인스턴스 행에서 SSH를 클릭합니다.
SSH를 통한 연결은 인스턴스에 연결을 참조하세요.
빠른 시작 인스턴스 명령어 창에서 패키지 관리자를 사용하여
apache2
패키지를 설치합니다.sudo apt-get update && sudo apt-get install apache2 -y
Apache를 설치하면 운영체제가 자동으로 Apache 서버를 시작합니다.
동일한 명령어 창에서 Apache 웹 서버 기본 웹페이지를 다음 명령어로 덮어씁니다.
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
VM 인스턴스 페이지에서 만든 인스턴스 행을 찾고 외부 IP 주소를 복사합니다.
인스턴스의 IP 주소를 브라우저 주소 표시줄에 붙여넣습니다.
http://
를 프리픽스로 사용합니다.이제 'Hello World!' 페이지가 표시됩니다.
VM 인스턴스 페이지에서 만든 인스턴스의 행 왼쪽에 있는 체크박스를 선택합니다.
페이지 상단에서 중지 버튼을 클릭하여 VM을 중지합니다.
처리 클러스터 만들기 및 Migrate for Anthos 설치
다음 단계에서는 처리 클러스터로 사용하는 클라우드에 GKE 클러스터를 만듭니다. 여기에 Migrate for Anthos를 설치하고 마이그레이션을 실행합니다.
Cloud Shell에서 다음 명령어를 사용하여 처리 클러스터로 사용할 새 Kubernetes 클러스터를 만듭니다.
machine-type
값을 지정할 때는 최소 15GB 이상이 있는 머신 유형을 지정해야 합니다.gcloud container clusters create migration-processing \ --project=project-id --zone=zone --machine-type n1-standard-4 \ --image-type ubuntu --num-nodes 1 --enable-stackdriver-kubernetes \ --subnetwork "projects/project-id/regions/region/subnetworks/default"
Migrate for Anthos 설치.
migctl
Migrate for Anthos에서 Container Registry 및 Cloud Storage에 액세스할 수 있도록 하려면 storage.admin 역할을 가진 서비스 계정을 만들어야 합니다.
Cloud Shell에서
m4a-install
서비스 계정을 만듭니다.gcloud iam service-accounts create m4a-install \ --project=PROJECT_ID
서비스 계정에
storage.admin
역할을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-install@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.admin"
서비스 계정의 키 파일을 다운로드합니다.
gcloud iam service-accounts keys create m4a-install.json \ --iam-account=m4a-install@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
클러스터에 연결합니다.
gcloud container clusters get-credentials migration-processing \ --zone zone --project project-id
Cloud Shell에서 Migrate for Anthos에 포함된
migctl
명령줄 도구를 사용하여 처리 클러스터에서 Migrate for Anthos 구성요소를 설정합니다.migctl setup install --json-key=m4a-install.json
Migrate for Anthos 설치를 검사합니다.
migctl doctor
명령어를 사용하여 배포가 성공했는지 확인합니다.migctl doctor
명령어가 다음 성공 결과를 반환하려면 1분 이상 걸릴 수 있습니다.
[✓] Deployment
Console
Google Cloud Console은 필요한 설치 명령어를 생성하고 Cloud Shell에서 이를 실행하여 설치 프로세스를 지원해 줍니다.
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
처리 클러스터 추가를 클릭합니다.
드롭다운 목록에서 위에서 만든
migration-processing
클러스터를 선택합니다.Cloud Shell에서 각 명령어를 실행하여 다음을 수행합니다.
- Migrate for Anthos가 Container Registry 및 Cloud Storage에 액세스할 수 있도록 허용하는 서비스 계정을 만듭니다.
- Migrate for Anthos 구성요소를 설치합니다.
마지막 Cloud Shell 명령어를 사용하여 설치 상태를 모니터링합니다.
설치가 완료되기 전에 다음과 같은 메시지가 표시될 수 있습니다. 이 경우 설치가 완료될 때까지 몇 분 정도 기다린 후
migctl doctor
를 다시 실행합니다.migctl doctor [!] Deployment validation job is in-progress
다음 출력 예시에서 체크표시는 Migrate for Anthos가 성공적으로 배포되었음을 나타냅니다.
migctl doctor [✓] Deployment
설치가 완료되면 완료를 선택합니다.
VM 마이그레이션
다음 단계에서는 마이그레이션 세부정보가 포함된 마이그레이션 계획을 만들고 이를 사용해서 VM을 마이그레이션합니다.
마이그레이션 소스를 Compute Engine VM으로 지정합니다. 그러면 마이그레이션 계획에 소스 사양이 추가됩니다.
migctl
Compute Engine을 마이그레이션 소스로 사용하려면 먼저 compute.viewer 및 compute.storageAdmin 역할이 있는 서비스 계정을 만들어야 합니다.
Cloud Shell에서
m4a-ce-src
서비스 계정을 만듭니다.gcloud iam service-accounts create m4a-ce-src \ --project=PROJECT_ID
서비스 계정에
compute.viewer
역할을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.viewer"
서비스 계정에
compute.storageAdmin
역할을 부여합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.storageAdmin"
서비스 계정의 키 파일을 다운로드합니다.
gcloud iam service-accounts keys create m4a-ce-src.json \ --iam-account=m4a-ce-src@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID
마이그레이션 소스를 만듭니다.
migctl source create ce quickstart-source --project project-id --json-key=m4a-ce-src.json
여기서
m4a-ce-src.json
은 위에서 만든 서비스 계정을 지정합니다.
Console
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
소스 추가를 클릭합니다.
드롭다운 목록에서 Migrate for Anthos 구성요소를 이미 설치한 클러스터를 선택합니다.
다음을 클릭합니다.
마이그레이션 이름을
quickstart-source
로 지정합니다.소스 유형을 Compute Engine으로 설정합니다.
다음을 클릭합니다.
마이그레이션하려는 VM이 포함된 프로젝트를 선택합니다.
새 서비스 계정 만들기를 선택하여 Compute Engine을 마이그레이션 소스로 사용할 수 있는 서비스 계정을 만드세요. 새 서비스 계정의 이름을 입력하라는 메시지가 표시됩니다.
다음을 클릭합니다.
소스 추가를 선택합니다.
마이그레이션을 만듭니다.
migctl
이 명령어는 마이그레이션할 대상을 정의하는 마이그레이션 계획을 만듭니다.
migctl migration create my-migration --source quickstart-source \ --vm-id quickstart-instance --intent Image
마이그레이션 상태에 마이그레이션이 표시되면 다음 단계로 넘어갈 수 있습니다.
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateMigrationPlan [1/3] CreateSourceSnapshots Running 13s
Console
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
마이그레이션 만들기를 클릭합니다.
마이그레이션 이름을
migration
으로 설정합니다.앞 단계에서 만든 마이그레이션 소스(
quickstart-source
)를 선택합니다.소스 VM 이름 또는 ID를
quickstart-instance
로 설정합니다.마이그레이션 인텐트를
Image
로 설정합니다.마이그레이션 만들기를 클릭합니다.
마이그레이션이 완료되면 상태 열에 마이그레이션 계획 생성됨이 표시됩니다.
마이그레이션 계획을 검토합니다.
이 빠른 시작에서는 마이그레이션 계획을 검토만 합니다. 그러나 수정할 수도 있습니다. 자세한 내용은 마이그레이션 계획 맞춤설정을 참조하세요.
migctl
마이그레이션을 검토하려면 마이그레이션 계획을 다운로드해야 합니다.
마이그레이션 계획을 다운로드합니다.
migctl migration get my-migration
텍스트 편집기에서 다운로드한 마이그레이션 계획
my-migration.yaml
을 열어 검토합니다.변경한 경우 수정된 마이그레이션 계획을 업로드합니다(변경이 없어도 빠른 시작을 완료할 수 있음).
migctl migration update my-migration --file my-migration.yaml
Console
YAML 편집기를 사용하여 Google Cloud Console에서 마이그레이션 계획을 검토합니다.
원하는 마이그레이션 행에서 마이그레이션 이름을 선택하여 세부정보 탭을 엽니다.
YAML 탭을 선택합니다.
마이그레이션 계획을 검토합니다.
수정하지 않고 계획을 닫으려면 오른쪽 상단의 'X' 아이콘을 클릭합니다.
마이그레이션 계획에 따라 VM을 마이그레이션합니다.
이 단계에서는 VM을 마이그레이션하고 워크로드를 배포하는 데 사용할 수 있는 아티팩트를 생성합니다.
migctl
migctl migration generate-artifacts my-migration
Console
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
원하는 마이그레이션 행의 다음 단계 드롭다운에서 아티팩트 생성을 선택합니다.
마이그레이션이 시작된 후 완료될 때까지 해당 상태를 확인합니다.
마이그레이션은 몇 분 정도 걸릴 수 있습니다. 이 기간 동안 상태 확인에는 마이그레이션의 현재 상태가 보고됩니다.
migctl
migctl migration status my-migration
마이그레이션이 완료되면 다음과 같은 메시지가 표시됩니다.
migctl migration status my-migration NAME CURRENT-OPERATION PROGRESS STEP STATUS AGE my-migration GenerateArtifacts [1/1] ExtractImage Completed 14m23s
Console
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
다음 방법으로 마이그레이션 상태를 확인합니다.
마이그레이션 행의 상태 열을 봅니다.
마이그레이션 이름을 클릭합니다. 마이그레이션 세부정보 페이지가 열립니다. 모니터링 탭을 클릭하여 상태 세부정보를 확인하거나 이벤트 탭을 클릭하여 마이그레이션 이벤트를 확인합니다.
마이그레이션이 완료되면 상태에 마이그레이션 계획 생성됨이 표시됩니다.
마이그레이션된 워크로드 배포
다음 단계에서는 마이그레이션 중에 생성한 배포 아티팩트를 가져온 후 이를 사용하여 마이그레이션된 워크로드를 클러스터에 배포합니다. 마지막 단계에서는 마이그레이션된 앱에서 'Hello World!' 웹페이지를 사용할 수 있는지 확인합니다.
마이그레이션이 완료되었으면 생성된 YAML 아티팩트를 다운로드합니다.
migctl
migctl migration get-artifacts my-migration
Console
Cloud Console에서 Migrate for Anthos 페이지를 엽니다.
원하는 마이그레이션 행에서 마이그레이션 이름을 클릭합니다. 마이그레이션 세부정보 탭이 열립니다.
아티팩트 탭을 선택합니다.
각 파일을 선택하여 개별적으로 다운로드합니다.
마이그레이션 중에 생성되는 아티팩트 파일에는 다음이 포함됩니다.
deployment_spec.yaml
-- 워크로드를 구성하는 YAML 파일입니다.- Dockerfile -- 마이그레이션된 VM의 이미지를 빌드하기 위해 사용되는 Dockerfile입니다.
migration.yaml
-- 마이그레이션 계획의 사본입니다.
deployment_spec.yaml
파일을 열고 이름이quickstart-instance
인Service
객체를 찾으세요.Service
정의 아래에 HTTP를 통한 웹 서버 액세스를 위해 포트 80을 노출하는 또 다른Service
를 붙여넣은 후 파일을 저장합니다.배포 사양에 다음이 포함되도록 강조표시된 코드를 붙여넣습니다.
apiVersion: v1 kind: Service metadata: creationTimestamp: null name: quickstart-instance spec: clusterIP: None selector: app: quickstart-instance type: ClusterIP status: loadBalancer: {} --- apiVersion: v1 kind: Service metadata: name: hello-service spec: selector: app: quickstart-instance ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
워크로드 배포를 위해 배포 사양 YAML을 적용합니다.
kubectl apply -f deployment_spec.yaml
배포가 완료되려면 몇 분 정도 걸릴 수 있습니다.
외부 IP 주소를 확인합니다.
kubectl get service hello-service
웹 서버가 준비되면 추가한
hello-service
의 외부 IP 주소가 표시됩니다.kubectl get service hello-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-service LoadBalancer 10.23.241.124 ##.##.###.## 80:32611/TCP 5m4s
브라우저를 열고 외부 IP 주소로 웹 페이지를 방문하여 마이그레이션을 테스트합니다. HTTPS 대신 HTTP를 사용하세요.
http://##.##.###.##
마이그레이션된 워크로드를 사용하여 컨테이너에서 bash
명령어를 실행할 수 있습니다. 자세한 내용은 문제해결 주제를 참조하세요.
정리
불필요한 Google Cloud 요금이 부과되지 않도록 하려면 Google Cloud Console에서 필요하지 않은 프로젝트를 삭제해야 합니다.