우노
[Terraform] K8S Deployment Volume Mount 본문
들어가기 앞서,
- 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이 저장된 것을 확인할 수 있습니다.
'DevOps > Terraform' 카테고리의 다른 글
[Terraform] terraform import (0) | 2023.04.18 |
---|---|
[Terraform] Google Service Account와 GKE Kubernetes Service Account 매핑 (0) | 2023.04.02 |
[Terraform] Google Cloud Load Balancer(GCLB) 생성 (0) | 2023.03.18 |
[Terraform] provider "kubernetes” 선언 시 kubeconfig 파일 작성 방법 (0) | 2023.02.23 |
[Terraform] state 자원 확인 방법 (0) | 2023.02.16 |
Comments