오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-20 11:35
관리 메뉴

우노

[Terraform] K8S Deployment Volume Mount 본문

DevOps/Terraform

[Terraform] K8S Deployment Volume Mount

운호(Noah) 2023. 3. 30. 15:42

들어가기 앞서,

  • kubernetes_secret을 사용해, 임의의 파일을 외부에 공개되지 않도록 pod에 저장한 뒤,
  • container에서 pod의 volume을 mount하는 방법에 대해서 다뤄보겠습니다.

예제 코드

  • kubernetes_secret을 사용해, pod에 저장할 파일 정의

      resource "kubernetes_secret" "access_secret" {
        metadata {
          name = "mlflow-access-secret"
          namespace = kubernetes_namespace.mlflow_nginx.metadata[0].name
        }
    
        data = {
              # "파일명" = "파일내용"
          ".htpasswd" = "id:pwd"
        }
      }
  • kubernetes_deployment를 사용해, container가 pod의 볼륨을 마운트하도록 정의

      resource "kubernetes_deployment" "k8s_deploy" {
        metadata {
          name =
          namespace =
          labels = {
            app =
          }
        }
        spec {
          replicas =
          selector {
            match_labels = {
              app =
            }
          }
          template {
            metadata {
              labels = {
                app =
              }
            }
            spec {
              service_account_name =
    
              # Pod에 access-secret라는 이름을 가진 볼륨을 정의
              volume {
                name = "access-secret"
                secret {
                  secret_name = kubernetes_secret.access_secret.metadata[0].name
                }
              }
    
              container {
                name =
                image =
    
                port {
                  container_port =
                  protocol =
                }
    
                # Pod의 access-secret 볼륨을 Container에 Mount
                volume_mount {
                  name       = "access-secret"
                  mount_path = "/var/nginx/access-secret"
    
                }
              }
            }
          }
        }
      }

결론

  • Container 내부 /var/nginx/access-secret에 .htpasswd이 저장된 것을 확인할 수 있습니다.
Comments