ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kubernetes (K8S): ConfigMap
    공부합시다!/Kubernetes 2022. 6. 22. 06:33
    728x90

    각기 다른 설정 파일을 갖는 Appcation or Pod를 K8S에서 배포하고 싶다면?

    바로 그럴때 사용하는 것이 Configmap과 Secret 기능입니다..

     

    Configmap은 통상적으로 보안을 필요로 하지 않는 경우에 사용을 하고

    Secret는 보안이 필요한 password 등에 사용을 합니다.

     

    만일 위의 기능을 사용하지 않는다면 App배포 후 변경사항을 모두 image에서 관리를 해야 하며, 보안에 중점을 둬야할 중용한 정보들은 App에서 관리를 할 수 없게됩니다.

     

    적용하는 방법으로는 

    1). 정의해 놓은 값을 환경 변수로 Pod에 적용하는 방법과

    2). 정의해 놓은 Pod디스크 볼륨으로 Mount 하는 방법이 있습니다.

     

    오늘은 Configmap에 대해서 학습합니다.

    wordpress5.6 imgae를 이용하여 환경변수를 정의하고 configmap 작성 후 pod를 생성합니다.

     

    1. 환경변수 정의 파일 만들기

     1.1. wordconf라는 이름의 파일생성

    # vi wordconf
    
    WORDPRESS_DB_HOST=mysql
    WORDPRESS_DB_USER=wordpress
    WORDPRESS_DB_PASSWORD=It12345@
    WORDPRESS_DB_NAME=wordpress

     

    2. configmap 작성

     2.1. 파일을 이용하여 configmap 생성 후 확인

    # kubectl create configmap word-env --from-env-file wordconf
    # kubectl get config map
    # kubectl get configmap word-env -o yaml

     2.2. configmap create 주요 사용 예제

     

     

    3. pod 실행

     3.1. pod 파일 작성

    # vi wordpress.yml
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: wordpress-pod
    
    spec:
      containers:
      - name: wordpress
        image: wordpress:5.6
        envFrom:
          - configMapRef:
              name: word-env
        ports:
        - containerPort: 80

     

    3.2. pod 실행

    # kubectl apply -f wordpress.yml
    # kubectl get pod

     

    4. 확인

     4.1. pod 세부 정보확인

    # kubectl describe pod wordpress-pod

     

     4.2. pod 접속 후 wp-config.php 확인

    # kubectl exec wordpress-pod -it -- bash

     

    잘 되었네요!

    그럼 MySQL은 여러분들 손으로 직접 만들어서 연결해 보시기 바랍니다.

     

    Have a nice day!

     

    728x90
Designed by Tistory.