분류 전체보기 1383

[Kubernetes] 쿠버네티스에서 POD(파드)란? 그리고 POD 생성하기

[Kubernetes] 쿠버네티스에서 POD(파드)란? 그리고 POD 생성하기 l Kubernetes 파드(Pod)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다. 도커가 가장 일반적으로 잘 알려진 컨테이너 런타임이지만, 쿠버네티스는 도커 외에도 다양한 컨테이너 런타임을 지원한다. 파드는 하나 이상의 컨테이너의 그룹이며 스토리지 및 네트워크를 공유하고, 해당 컨테이너를 구동하는 방식에 대한 명세를 갖는다. 파드의 컨텐츠는 항상 함께 배치되고, 스케줄되며, 공유 컨텍스트에서 실행된다. 즉, 파드는 공유 네임스페이스와 공유 파일시스템 볼륨이 있는 컨테이너들의 집합과 비슷하다. 파드는 각 애플리케이션의 "논리 호스트"를 모델링한다. 여기에는 상대적으로 밀접하게 결합된 하나 이..

[kubernetes] minikube에서 로컬 docker image 사용하기

[kubernetes] minikube에서 로컬 docker image 사용하기 l Kubernetes, Docker 일반적으로 로컬 컴퓨터에서 쿠버네티스(Kubernetes)를 테스트할 때 minikube 환경을 많이 사용한다. 도커 데스크탑(docker desktop)이 설치된 환경에서도 쿠버네티스를 활성화하면 minikube가 활성화되어 동작한다. 이러한 환경에서 kubectl run 또는 yaml로 파드를 생성할 때, 로컬의 이미지를 사용할 경우 이미지를 가져올 수 없다는 오류와 함께 파드가 생성된 후 종료된다. 이번 포스트에서는 minikube 환경에서 로컬의 docker image를 사용하여 파드를 생성하는 방법을 알아본다. 로컬의 docker images에서 커스텀 빌드된 이미지 proxys..

[Docker] 컨테이너실행시 sh 스크립트 호출과 매개변수 사용

[Docker] 컨테이너실행시 sh 스크립트 호출과 매개변수 사용 l Docerk, Shell script Dockerfil을 제작하면서, 컨테이너 실행시 특정 쉘 스크립트를 실행할 때, 쉘 스크립트 실행에 필요한 파라메터 값을 받아오지 못하는 문제가 있었다. (도커의 문제가 아닌 나의 코드 오류 문제) 단독으로 쉘 스크립트를 실행하면 정상적으로 실행되는데, 유독 컨테이너 실행시에만 그 값을 받지 못하였다. 해결 방법은 매우 간단하게 Dockerfile에서 사용한 ENV 환경변수를 그대로 쉘 스크립트에서 사용하면 되는거였다. (너무 어렵게 생각해서 문제를 해결하지 못한 것이었다.) [잘못된 예시] abc.sh에서 인풋 변수로 값을 사용할 수 있도록 read 명령어를 사용하였으며, 해당 변수로 받은 값을 ..

[Linux] 쉘(shell) 스크립트 기초

[Linux] 쉘(shell) 스크립트 기초 l Linux 쉘 스크립트(shell script)는 셸이나 명령줄 인터프리터(Interpreter)에서 실행되도록 작성되었거나 한 운영 체제를 위해 쓰인 스크립트이다. 쉘 스크립트가 수행하는 일반 기능으로는 파일 이용, 프로그램 실행, 문자열 출력 등이 있다. 쉘 스크립트에서는 .sh라는 파일 확장자를 가진 파일이 특정 종류의 쉘 스크립트를 가리키는 것이 보통이지만, 대부분의 셸 스크립트는 파일 확장자를 지니지 않는다. 쉘 스크립트는 인터프리터 방식이므로 라인별로 읽어 실행함으로 속도가 다소 느리다는 단점이 있다. 쉘 스크립트라는 말은 유닉스 쉘을 위해 쓰인 스크립트를 말하는 반면, command.com(도스)과 cmd.exe (윈도우) 명령 줄 스크립트는 ..

Linux 2023.09.05

[Linux] Alpine Linux (알파인 리눅스) 는 무엇일까?

[Linux] Alpine Linux (알파인 리눅스) 는 무엇일까? l Linux 컨테이너 환경으로 다양한 서비스를 빌드하다보니, DevOps 팀에서 베이스 이미지를 ubuntu나 centos 대신 alpine(알파인) 리눅스를 사용하는 것이 어떻겠냐는 제안을 받았다. 리눅스는 다양한 커널 기반으로 배포판을 가지고 있다. 이번 포스트에서는 Alpine Linux (이하 “알파인 리눅스”)에 대해서 알아본다. [개요] 알파인 리눅스는 리눅스 커널 기반으로 한 리눅스 배포판 중 하나이며 MIT 라이선스 아래에 배포되었으며 LEAF 리눅스의 포크 버전이다. 알파인 리눅스는 다른 배포판과 다르게 Musl과 BusyBox를 기반으로 한다. 알파인 리눅스의 컨셉은 LEAF 리눅스와 동일하게 “작고”, “보안이 뛰..

Linux 2023.09.04

[MySQL] 성능 모니터링을 위한 Performance_Schema 개념

[MySQL] 성능 모니터링을 위한 Performance_Schema 개념 l Version : MySQL 5.X, 8.X MySQL에서 다양한 성능 및 관리 지표를 얻기 위해 사용하는 정보는 performance_schema (이하 “성능 스키마”)와 information_schema이다. 이번 포스트에서는 performance_schema에 관한 전체적인 개념을 다루며 각 항목에 대한 자세한 세부 내용은 별도 포스팅 한다. MySQL performance_schema는 로우레벨에 실행되며, 런타임으로 서버 내부를 검사한다. 사용자가 자주 사용하는 것은 디폴트로 활성화되어 있기 때문에 따로 설정하지 않아도 정보를 볼 수 있지만, 그 외에는 필요에 따라 설정을 활성화해야 한다. performance_sc..

MySQL, MariaDB 2023.09.02

[MySQL] “innodb_table_stats” not found 오류와 예상하지 못한 사이드 이펙트

[MySQL] “innodb_table_stats” not found 오류와 예상하지 못한 사이드 이펙트 l Version : MySQL 5.7 MySQL 5.7에서 서비스 재시작 후 아래와 같은 오류가 로그에 잔뜩 쌓여있다. MySQL 에러 로그 위치는 일반적으로 아래와 같다. sudo cat /var/log/mysql/error.log 2023-08-31T05:15:56.437819Z 2598 [ERROR] InnoDB: Table `mysql`.`innodb_table_stats` not found. 2023-08-31T05:15:56.437825Z 2598 [ERROR] InnoDB: Fetch of persistent statistics requested for table `XXXX`.`wp_4..

MySQL, MariaDB 2023.09.01

[Linux] OOM(Out of Memory)란?

[Linux] OOM(Out of Memory)란? l Linux 몇일전부터 개발 환경에서 겪던 문제로 멀쩡하던 MySQL 서비스가 갑자기 연결이 되지 않는다. 처음엔 단순히 행 현상인줄 알고, MySQL 서비스를 재시작 하였다. 그런데 동일한 상황이 하루에도 여러 번 발생하고 있어서 원인을 살펴보기로 했다. 원인을 살펴보니, 아래와 같은 로그가 있었다. Aug 30 01:35:08 xxxxx kernel: [7189052.423131] [18540] 111 18540 1930392 1535479 12935168 0 0 mysqld Aug 30 01:35:08 xxxxx kernel: [7189052.423132] Out of memory: Kill process 18540 (mysqld) score 5..

Linux 2023.08.30

MySQL PMM(Percona Monitoring and Management) 소개 및 설치

MySQL PMM(Percona Monitoring and Management) 소개 및 설치 l Version : MySQL, MariaDB, PMM PMM은 Percona Monitoring and Management의 약자로 PostgreSQL 및 MySQL, MongoDB를 위한 오픈소스 데이터베이스 모니터링 및 관리 솔루션이다. 이를 통해 데이터베이스 시스템의 상태를 관찰하고, 동작의 새로운 패턴을 탐색하고, 문제를 해결하고, 온프레미스나 클라우드 어디에 있든 데이터베이스 관리 작업을 수행할 수 있다. PMM은 데이터베이스와 해당 호스트로부터 수천 개의 기본 성능 지표를 수집한다. 그리고 웹 UI 대시보드를 제공하여 데이터를 시각화 한다. 추가 기능에는 데이터베이스 상태 평가를 위한 조언을 제공..

MySQL, MariaDB 2023.08.22

MySQL Galera Cluster + ProxySQL에서 Galera Cluster 특성을 고려한 R/W 호스트 그룹 설정 하기

MySQL Galera Cluster + ProxySQL에서 Galera Cluster 특성을 고려한 R/W 호스트 그룹 설정 하기 l Version : MySQL, MariaDB, Galera Cluster, ProxySQL 2.X Galera Cluster (이하 “갈레라 클러스터”)는 다중 마스터 동기 복제를 제공하는 솔루션으로 DB 간의 직접적인 데이터 공유가 없는 형태의 오픈소스 고가용성 솔루션이다. 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터로 제공된다. ProxySQL은 여러 데이터베이스에 대해 동일한 커넥션을 재사용할 수 있도록 멀티 플렉싱 기능과 쿼리를 분석하여 Write/Read를 분산하는 등 다양한 기능을 제공하는 솔루션이다. l ProxySQL 이란 ..

MySQL, MariaDB 2023.08.10