본문 바로가기

클라우드/GCP 자원 테라폼으로 관리해보기

(8-5) Terraform에서 helm 관리 - Ingress Controller

반응형

Nginx ingress를 helm을 통해 받아오고 helm.tf 파일에서 관리하도록 설정하였다.

 

먼저 External IP를 예약하고 해당 IP로 ingress service ip로 지정하도록 설정하였다.

# EXTERNAL
resource "google_compute_address" "internal_with_subnet_and_address" {
  name         = "my-internal-address"
  project  = "pjt-an3-dev-vm-2"
  #subnetwork   = module.sbn_an3_gkenet_1.google_compute_subnetwork
  address_type = "EXTERNAL"
  #address      = "10.128.0.21"
  region       = "asia-northeast3"
}

 

# 네임스페이스 생성

kubectl create ns ingress-nginx 

 

# Helm 관련 설정 

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

helm pull ingress-nginx/ingress-nginx --untar

cd ingress-nginx
helm package . 

 

resource "helm_release" "nginx_ingress_controller" {
  name       = "ingress-nginx-controller"
  chart      = "../ingress-nginx/ingress-nginx-4.10.0.tgz"
  namespace   = "ingress-nginx"
 

  set {
    name  = "controller.service.loadBalancerIP"
    value = google_compute_address.internal_with_subnet_and_address.address
  }  
 

  values = [
    "${file("../ingress-nginx/values.yaml")}"
  ]

}

 

 

ingress-nginx.zip
0.17MB

 

ingress controller pod 확인

 

서비스 확인

반응형