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 조회
Container 접속
$ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
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)
Container 접속
$ kubectl -n <NAMESPACE-NAME> exec -it <POD-NAME> bash
Volume이 Mount된 Directory로 이동
$ cd /bitnami/mariadb
파일이 생성되는지 확인
$ 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