GKE Project

Terraform을 사용하여 GKE(Google Kubernetes Engine) 배포 - 사전 준비

Joon0464 2024. 4. 4. 22:09

GCP에서 제공하는 300달러 크래딧으로 토이 프로젝트를 진행하려는데 GKE를 계속 띄워두자니 크래딧을 너무 빨리 소모할 것 같다. Terraform도 사용해보고 IaC을 사용해서 손쉽게 올리고 내리기 위해 우선 Terraform으로 GKE를 구성해보고자 글을 작성한다.

 

1. WSL에 gcloud SDK 설치 및 계정 등록

# WSL2 / Ubuntu 22.04 에 설치 진행

# Cloud SDK 를 사용하기 위해서는 Python 설치가 필수이므로 Python3를 아래와 같이 설치 진행합니다.

$ sudo apt update
$ sudo apt install -y python3 python3-pip


# 이어서 gcloud 설치를 진행합니다.
$ curl https://sdk.cloud.google.com | bash

# 쉘을 재시작하고 gcloud version을 확인하여 설치를 확인합니다.
$ exec -l $SHELL
$ gcloud version

 

설치 버전을 확인한다.

# gcloud init으로 계정 등록과정을 수행한다.
$ gcloud init

OSError 가 발생..

별의 별 삽질 했는데 재부팅 후에 gcloud init 해보니 잘 된다...

다시 gcloud init 명령어를 입력하고 url에 접근하여 gcp 계정으 로그인한다.
이어서 원하는 프로젝트를 생성하거나 선택하고
default region을 선택하려면 선택하고 설정을 마친다.

다음 명령어로 등록된 정보를 확인할 수 있다.

$ gcloud config list

2. Terraform 설치

이어서 Terraform 설치를 진행합니다.

# 사전에 필요한 패키지를 설치합니다.
$ sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl

# HashiCorp 의 GPG Key 등록합니다.
$ curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -

# Repository 등록
$ sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"

# Terraform 설치
$ sudo apt-get update && sudo apt-get install terraform

# 자동완성 설정
$ echo "terraform -install-autocomplete" >> .bashrc

# 자동완성 설정 확인
$ tail -n 1 .bashrc
terraform -install-autocomplete

# .bashrc 즉시적용
$ source .bashrc

# terraform 설치 확인(버전)
$ terraform version

설치가 완료되면 version 명령어로 확인한다.

 

3. VSCode 설정

vscode에서 wsl 패키지를 설치한다.

wsl에서 원하는 디렉토리로 이동 후 다음 명령어를 수행한다.

$ code .

code . 을 입력하면 패키지 설치가 진행된다.
설치가 완료되면 vscode에서 다음과 같은 팝업 창이 뜨는데 Trust하고 Yes 하면 된다.

 

$ mkdir {프로젝트를 수행할 디렉토리 명}
$ code {위 명령어로 생성된 디렉토리 명}

디렉토리를 생성하고 해당 디렉토리를 code 명령어로 열어주면 vscode에서 해당 디렉토리를 열게된다.

 

 

 

4. Kubectl 및 gcloud 플러그인 설치

# kubectl 최신 릴리스를 다운로드한다.
$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# Kubectl 을 설치한다.
# sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# kubectl 설치 버전 확인
$ kubectl version --client

 

위 과정만 진행해도 상관은 없으나 편하게 사용하려면 아무래도 kubectl 자동완성까지 설정해주는게 좋다.

# bash-completion 이 설치되어 있지 않다면 설치를 진행한다.
$ sudo apt-get install bash-completion

# type _init_completion 명령어를 수행해보고 명령어가 수행되는지 확인한다.
$ type _init_completion

# 수행이 잘 된다면 아래 명령어를 스킵하고, 수행되지 않는다면 다음 명령어를 수행한다.
$ echo "source /usr/share/bash-completion/bash_completion" >> ~/.bashrc && source .bashrc

 

위 과정을 수행하면 kubectl 자동완성 기능을 사용할 수 있습니다.

$ gcloud components install gke-gcloud-auth-plugin


Your current Google Cloud CLI version is: 471.0.0
Installing components from version: 471.0.0

┌────────────────────────────────────────────┐
│    These components will be installed.     │
├────────────────────────┬─────────┬─────────┤
│          Name          │ Version │   Size  │
├────────────────────────┼─────────┼─────────┤
│ gke-gcloud-auth-plugin │   0.5.8 │ 7.9 MiB │
└────────────────────────┴─────────┴─────────┘

For the latest full release notes, please visit:
  https://cloud.google.com/sdk/release_notes

Do you want to continue (Y/n)?  Y

╔════════════════════════════════════════════════════════════╗
╠═ Creating update staging area                             ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Installing: gke-gcloud-auth-plugin                       ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Installing: gke-gcloud-auth-plugin                       ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Creating backup and activating new installation          ═╣
╚════════════════════════════════════════════════════════════╝

Performing post processing steps...done.

Update done!

 

마지막으로 kubectl gke 플러그인을 설치해주면 모든 사전 준비가 완료됩니다.

 

이번에는 terraform으로 IaC 개발을 수행하기 위한 사전 준비작업 과정에 대해 정리하였습니다.

이어서 Terraform을 작성하여 GKE 클러스터를 구성하는 과정에 대해 포스팅하도록 하겠습니다.

'GKE Project' 카테고리의 다른 글

Terraform 사용하여 GKE Cluster 배포하기  (0) 2024.04.15