13. Cloud Z DB에서 kubectl를 활용한 MariaDB 인스턴스 관리

Print


13.1. kubectl 사용을 위한 WebSSH


kubectl은 Kubernetes의 자원 생성/관리를 위한 커맨드라인 도구입니다.

kubectl을 WebSSH를 이용하여 설치 및 환경구성을 하지 않고 사용할 수 있습니다.


13.1.1. Cloud Z CP Portal

Cloud Z CP Portal에 접속 후 아이디와 패스워드를 입력하여 로그인합니다.


13.1.2. DevOps 선택

페이지 좌측 상단의 DevOps 버튼을 누릅니다.


13.1.3. WebSSH 선택

DevOps 하위 항목 중 - WebSSH 버튼을 클릭하면 WebSSH 화면으로 전환됩니다.


13.1.4. Namespace Connect

원하는 Namespace를 선택하고 Connect를 클릭합니다.


Connecting이 완료되고 WebSSH가 준비가 되면 다음과 같은 화면을 출력합니다.



13.2. kubectl을 활용한 Container 관리 (Pod)


Kubernetes에서 Container는 Pod이라는 논리적인 단위로 관리됩니다. kubectl을 이용하여 Container를 관리하는 방법은 아래와 같습니다.

Container 동작 상태 확인

$ kubectl -n <NAMESPACE-NAME> get pod

Container 이벤트 조회 (Container 생성 과정 확인)

$ kubectl -n <NAMESPACE-NAME> describe pod <POD-NAME>

Container 접속

$ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash

Container 재배포(DB 재시작)

$ kubectl -n <NAMESPACE-NAME> delete pod <POD-NAME>
또는
$ kubectl -n <NAMESPACE-NAME> scale deployment <DEPLOYMENT-NAME> --replicas=0  # deployment 또는 statefulset
$ kubectl -n <NAMESPACE-NAME> scale deployment <DEPLOYMENT-NAME> --replicas=1  # deployment 또는 statefulset


13.3. kubectl을 활용한 Volume 관리


Volume 조회

  1. Container 접속

    $ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
  2. Volume 조회

    $ df -h
    Filesystem                                     Size  Used Avail Use% Mounted on
    overlay                                         99G  3.1G   91G   4% /
    tmpfs                                          7.9G     0  7.9G   0% /dev
    tmpfs                                          7.9G     0  7.9G   0% /sys/fs/cgroup
    /dev/mapper/docker_data                         99G  3.1G   91G   4% /etc/hosts
    /dev/mapper/3600a09803830446d463f4c4548565767   20G  780M   19G   4% /bitnami/mariadb  # Persistent Volume
    shm                                             64M     0   64M   0% /dev/shm
    tmpfs                                          7.9G   12K  7.9G   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs                                          7.9G     0  7.9G   0% /sys/firmware

Volume 상태 확인 (Read/Write or Read-only)

  1. Container 접속

    $ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
  2. Volume이 Mount된 Directory로 이동

    $ cd /bitnami/mariadb
  3. 파일이 생성되는지 확인

    $ touch test



13.4. kubectl을 활용한 MariaDB 관리


MariaDB 접속

$ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
$ mysql -u <USER-NAME> -p

MariaDB 패스워드 조회

$ kubectl -n <NAMESPACE-NAME> get secret <SECRET-NAME>
$ echo <ENCRYPTED-PASSWORD> | base64 --decode

로그 조회

  • kubectl 명령어 이용(mariadb.log만 조회 가능)

    $ kubectl -n <NAMESPACE-NAME> logs -f <POD-NAME> <CONTAINER-NAME> # MariaDB의 Container Name은 'mariadb'
  • 로그 파일 직접 확인

    $ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
    $ cd /bitnami/mariadb/logs

로그 파일 다운로드

$ kubectl -n <NAMESPACE-NAME> cp <POD-NAME>:bitnami/mariadb/logs/<LOG-FILE-NAME> .

설정값 확인 (my.cnf)

$ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
$ cat /opt/bitnami/mariadb/conf/my.cnf



이 답변이 유용합니까? 아니오

Send feedback
도움이 되어드리지 못해 죄송합니다. 아티클 개선을 위해 의견을 제공해 주시기 바랍니다.