목록기록 일기 (246)
오늘도 한 뼘 더

# 배경 grafana 외에 직접 모니터링 및 개발자들이 사용할 수 있는 간단한 페이지를 만들고 싶다. 시니어분이 틀을 잡아놓은 페이지는 자바스크립트로 되어있는데 이 틀에서 원하는 것을 작성하기 위해서 자바스크립트와 HTML을 알아야 한다. ## HTML이란? 이건 Title입니다. ## HTML 기본 문서 #현재 문서가 HTML5 언어로 작성되어 있다. #웹 문서의 시작과 끝 #실제 브라우저에 보이는 내용 웹 개발 HTML HTML 삽입 미리보기할 수 없는 소스

# 배경 최근 쿠버네티스를 사용하게 되었는데 이전에 ElasticBeanstalk에서는 배포 방식을 선택할 수 있는 설정이 있었는데 쿠버네티스에서의 경우 어떤 방식으로 진행되는지 사실 생각해보지 못했다. 관련 질문을 받고 무슨 방식이 있고 현재 회사에서 사용하기에 제일 적절한 게 무엇인지 고민해 볼 필요가 있다고 생각됐다. # 무중단 배포 방식 실제 사용자가 사용하고 있기 때문에 특히 운영에 배포를 하는 데 있어 무중단 배포 방식은 중요하다! 무중단 배포 전략은 크게 3가지 방법이 있다. Rolling Update, Blue-Green, Canary 세 가지 방식에 대해 알아보고 정리해보고자 한다. # Rolling Update Rolling Update는 구 버전의 Pod을 하나씩 내리고 새 버전의 P..

Jenkins job에 대해서 pipeline으로 작성을 할 때 빌드 및 배포에 대한 결과에 따라서 다른 작업을 두 가지 방법으로 진행할 수 있다. # try / catch 사용하기 pipeline { agent any stages { stage('Checkout') { steps { script { try { build job: 'jenkins_job', parameters: [ string(name: 'parameter_name', value: "${parameter_value}")] } catch (e) { catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh "exit 0" echo "error" } echo 'TEST Fail! But..

# 배경 보통 데이터 백업받을 때 워크벤치에서 export를 사용하거나 mysqldump를 사용했는데, 대부분 전체 데이터를 백업하면 돼서 조건에 맞는 특정 데이터만 받을 일이 없었는데 데이터를 나눠서 백업해야 하다 보니 특정 행들만 dump 해야 하는 상황이 발생하였다. 이때 where문을 쓸 수 있는 것을 확인했다. # 데이터만 백업하기 --no-create-info 옵션을 사용한다. mysqldump -h {hostname} -u {username} -p --no-create-info=TRUE {database} {table} > dump.sql # 조건 추가해서 데이터 백업하기 --where 옵션을 사용한다. mysqldump -h {host} -u {username} -p --no-create-..

# 데이터 백업 mysqldump 명령어를 통해서 데이터 백업을 진행 mysqldump -h ${HOST_NAME} \ -u {USER} \ -p \ --set-gtid-purged=OFF ${DATABASE_NAME} > dump.sql set-gtid-purged=OFF : mysql 서버의 사용자와 데이터를 백업, 복원하는 사용자가 달라도 문제가 안 생기도록 설정하는 명령어 # 데이터 복원 1. 백업을 할 때 스키마 또는 데이터베이스를 같이 만들어 주는 명령어를 포함한 파일로 복원할 경우 mysql -h ${HOST_NAME} -u {USER} -p < dump.sql 2. 데이터와 테이블 구조만 백업이 된 파일일 경우 mysql -h ${HOST_NAME} -u {USER} -p ${DATABAS..

# 배경 이전에 제공되던 GitLab을 사용할 때 언급을 하거나 MR이 올라올 때에 이메일이 왔었는데 직접 GitLab 이미지를 받아서 올리고 난 뒤부터 이메일 기능이 작동하지 않는 것을 알았다. 이메일을 받을 수 있도록 GitLab을 설정하도록 하자. # GitLab 설정 변경하기 GitLab의 환경설정 등은 gitlab.rb를 통해서 변경할 수 있다. gitlab.rb의 내용을 다음과 같이 작성하여 gmail을 통해서 이메일 발송을 진행하였다. gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name']..

# Helm uninstall helm chart를 사용하여 설치한 리소스에 대하여 제거할 때 사용한다. helm uninstall RELEASE_NAME [...] [flags] 예시 helm uninstall prometheus prometheus-community/prometheus -n monitoring # Helm upgrade helm chart를 사용해서 설치한 리소스에 대한 값을 변경할 때 사용한다. 값을 업그레이드할 때 두 가지 방법으로 진행할 수 있다. helm upgrade [RELEASE] [CHART] [flags] 1. yaml 파일을 새로 작성해서 값을 업그레이드하기 helm upgrade prometheus -f new-values.yaml -n monitoring 2. '..

# helm 차트 받아오기 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # 프로메테우스 관련 git clone git clone https://github.com/prometheus-community/helm-charts.git # values.yaml 변경 helm-charts/charts/prometheus 경로에 있는 values.yaml 파일에 대해서 사용하고자 하는 방식으로 변경한다. nodeSelector nodePort server: name: server nodeSelector: monitor: ok ... service: servicePort: 909..

# Helm 설치하기 Helm 다운로드 및 설치 $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh Helm 버전 확인하기 $ helm version

# 배경 데이터를 dump 한 뒤에 다시 import 하려는 sql문을 작성했다. # 문제 mysql -h 127.0.0.1 -u root -p < dump.sql 위의 sql문을 실행했는데 다음과 같은 에러 메세지가 발생하였다. ERROR 1046 (3D000) at line : No database selected # 해결 방법 import하려고 하는 파일에 "use database" 구문이 없어서 발생한 문제이다. 파일 편집기를 켜서 "use database;"를 추가할 수도 있지만 dump 한 파일의 용량이 크면 편집기를 여는데 부하가 걸릴 수 있어서 mysql구문에 데이터베이스 선택을 다음과 같이 작성했다. mysql -h 127.0.0.1 -u root -p --database=jihyunb ..