본문 바로가기
Kubernetes/Kubernetes Based

테라폼(Terraform)을 활용해 GKE Pod 배포

by 썩석 2024. 3. 6.
반응형

지난번에는 테라폼으로 GKE를 배포해보았다면

오늘은 배포한 GKE 클러스터에 Pod를 배포해볼예정

사실 Pod는 테라폼 배포를 잘 안하지만 공부하다 궁금해서 테스트

 

시작하기 전


지난 포스팅에서 마지막 명령줄 액세스 버튼을 클릭하면 ~/.kube 폴더에 config 파일 생성됨

 

 

 

먼저 폴더 구조는 위와 같이 cluster 폴더, pod 폴더로 나뉘어있고 이는 각각 GKE 클러스터와 Pod를 배포하는 폴더

#nginx.tf

provider "kubernetes" {
  config_path = "~/.kube/config" # kubeconfig 파일 위치
}

resource "kubernetes_deployment" "nginx" { # Deployment 배포
  metadata {
    name = "nginx-deploy" # 이름
    labels = {
      app = "nginx" # Label명
    }
  }

  spec {
    replicas = 3 # Replica 갯수
    selector {
      match_labels = {
        app = "nginx"
      }
    }

    template {
      metadata {
        labels = {
          app = "nginx"
        }
      }

      spec {
        container {
          image = "nginx:latest" # Image명
          name  = "nginx" # Container 이름
          port {
            container_port = 80 # 사용할 Port
          }
        }
      }
    }
  }
}

 

$ terraform init
  • 테라폼 초기화

$ terraform plan
  • 배포 전 미리보기

$ terraform apply
  • 테라폼 배포

 

 

$ kubectl get pod -o wide
  • 배포한 pod 확인

 

 

 

참고사항

provider "kubernetes" {
  config_context_cluster   = "gke_sseokseok_us-west1_sseokseok" # context 지정 안됨
}

resource "kubernetes_deployment" "nginx" {
  metadata {
    name = "nginx-deploy"
    labels = {
      app = "nginx"
이하 생략

 

nginx.tf 파일 생성시 위와 같이 context를 직접 지정해서 사용하고 싶었지만 배포 안됨

현재 설정되어있는 kubeconfig context를 넣어서 배포했지만 아래와 같은 에러 발생

 

 

함께보면 좋은 내용

https://sseokseok.tistory.com/27

반응형