Gemini for DevOps Engineers

JIEUN JANG·2024년 7월 19일
0

Google Cloud Skills Boost

목록 보기
6/13


Gemini를 사용한 지속적 배포 구현

1. Gemini 사용을 위해 환경 및 계정 구성하기

# 프로젝트 ID 및 리전 환경 변수를 설정
PROJECT_ID=$(gcloud config get-value project)
REGION=set at lab start
echo "PROJECT_ID=${PROJECT_ID}"
echo "REGION=${REGION}"

# 로그인한 Google 사용자 계정을 환경 변수에 저장
USER=$(gcloud config get-value account 2> /dev/null)
echo "USER=${USER}"

# Gemini용 Cloud AI Companion API를 사용 설정
gcloud services enable cloudaicompanion.googleapis.com --project ${PROJECT_ID}

# Google Cloud Qwiklabs 사용자 계정에 필요한 IAM 역할을 부여
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/cloudaicompanion.user
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/serviceusage.serviceUsageViewer

2. Google Kubernetes Engine 구성하기

# GKE API를 사용 설정
gcloud services enable container.googleapis.com --project ${PROJECT_ID}

# 사용자에게 GKE 관리자 권한을 부여
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member user:${USER} --role=roles/container.admin
노드 수와 커스텀 머신 유형을 사용자설정해 영역 GKE 클러스터를 만들 수 있는 gcloud 명령어는 무엇인가요?

gcloud container clusters create test \
    --project=qwiklabs-gcp-04-5258a2c7ab7d \
    --zone=us-east4-b \
    --num-nodes=3 \
    --machine-type=e2-standard-4

3. kubectl을 사용하여 일련의 마이크로서비스 배포하기


해당 아키텍처 다이어그램을 가진 코드 클론

# Cloud Shell에서 저장소를 클론
git clone --depth=1 https://github.com/GoogleCloudPlatform/microservices-demo

# 마이크로서비스를 GKE에 배포
cd ~/microservices-demo
kubectl apply -f ./release/kubernetes-manifests.yaml

# 배포 상태 확인
kubectl get deployments

# 애플리케이션의 URL을 확인(외부 IP)
echo "http://$(kubectl get service frontend-external -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')"

접속하면 아래와 같은 사이트가 나온다.

4. Gemini를 사용해 GKE의 워크로드 로그 이해하기


메뉴 -> VIEW ALL PRODUCTS -> Observability -> Logging


Logging 창이 뜬다.

Gemimi 프롬프트를 이용해 GKE 클러스터 이름과 네임스페이스 이름으로 로그를 탐색하는 쿼리를 생성해서 넣어준다.


원하는 로그를 클릭하고 Explain this log entry를 누르면 해당 로그를 설명해준다.


예시에 나온 로그의 설명과 내 Gemini는 일을 다르게 한다.
지난번부터 계속 이런다.

5. Gemini를 사용해 컨테이너 이미지를 위한 비공개 빌드 환경 만들기

Gemini를 사용해 비공개 빌드 환경을 만들고 실행하는 방법을 파악하기

Cloud Build 작업자 풀이란 무엇인가요?

공개 인터넷에 액세스할 수 없는 비공개 작업자 풀을 만들 수 있나요?

공개 이그레스가 없는 비공개 풀을 만드는 경우 Artifact Registry를 사용해 패키지를 비공개로 호스팅하고 비공개 풀에서 액세스할 수 있나요?

공개 이그레스가 없는 비공개 작업자 풀을 만들기 위한 gcloud 명령어는 무엇인가요?

gcloud builds worker-pools create pool-test \
  --project=qwiklabs-gcp-04-5258a2c7ab7d \
  --region=us-east4 \
  --no-public-egress

Artifact Registry에서 컨테이너 이미지용 비공개 Docker 저장소를 만들려면 gcloud를 어떻게 사용해야 하나요?

gcloud artifacts repositories create my-repo \
  --repository-format=docker \
  --location=us-east4 \
  --description="My private Docker repository"

6. 정리


Gemini의 도움을 받아 GKE 클러스터를 만듭니다.
GKE에 일련의 마이크로서비스를 배포합니다.
Gemini의 도움을 받아 애플리케이션 로그를 찾고 이해합니다.
Gemini를 활용해 비공개 빌드 환경을 만드는 방법을 조사합니다.

이번엔 GKE 클러스터를 만들고 마이크로 서비스 배포, Gemini에게 물어서 로그 확인하는 쿼리 작성하는 법과 환경 만드는 법만 익혔다.
DevOps가 이런 역할을 하는 건가? CI/CD를 하는 줄 알았는데 로그를 확인해보는 경험은 처음이어서 즐거웠다.

0개의 댓글