본문 바로가기

반응형

Study/Docker & Kubernetes

(24)
kubernetes에 sonarqube 설치 & jenkins에서 사용해 보기 공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. sonarqube 소개 sonarqube는 30개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석을 자동 리뷰 수행하기 위한 지속적인 코드 품질 검사용 오픈소스 플랫폼이다. https://www.sonarsource.com/products/sonarqube/ 개발할 때 findbug, checkstyle, pmd를 사용하여 코드상 문제를 파악하고 수정할 수 있다. sonarqube는 이런 분석 내용을 저장하고 해결된 내역을 기록하여 코드 품질을 관리할 수 있도록 도와준다. sonarqube는 java 뿐만 아니라 C#, C, C++, Go, Kotlin, PHP, Python, Ru..
kubernetes에 Prometheus, Grafana 설치하고 metric 정보 수집해 보기 공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. Observability, Monitoring에 대하여 Observability(관측 가능성)는 시스템의 출력 변수를 사용하여 상태 변수에 대한 정보를 알아낼 수 있는지를 나타내는 용어이다. 이런 정보를 확인하기 위해서는 데이터를 수집하고 저장하여 지속적으로 관찰, 감시할 수 있는 모니터링이 필요하다. 저장할 데이터의 종류는 크게 log, metric, trace (추가로 event?)으로 나누어 볼 수 있다. log는 일반적으로 개발하면서 logger를 통해 남기는 데이터라고 생각하면 된다. metric은 현재 application의 상태에 대한 지표를 주기적으로 수집하여 시간별 상태를 확인할 수 있도록 시계열 데이터(tim..
kubernetes ConfigMap, Secret 사용해 보기 ConfigMap https://kubernetes.io/ko/docs/concepts/configuration/configmap/ key-value 쌍으로 이루어진 데이터를 저장하는데 사용하는 API Object이다. pod는 volume에서 environment variables, command-line argument 로 configmap을 사용할 수 있다. configmap은 암호화를 제공하지 않으므로 계정/비밀번호 같은 데이터는 secret을 사용하면 된다. 기본적인 구성은 다음과 같다. 일반적인 key/value 쌍으로 이루어진 데이터 key를 파일이름으로, value를 파일의 내용으로 구성할 수도 있다. apiVersion: v1 kind: ConfigMap metadata: name: ga..
kubernetes PersistentVolume, PersistentVolumeClaim 사용해 보기 docker container는 재시작시 모든 데이터가 초기화된다. 데이터를 유지하기 위해 기존에는 Volumes의 hostPath 설정을 통해 host의 디렉토리를 참조하여 사용하였었다. mariadb를 사용하는 경우 기존 설정은 다음과 같았다 apiVersion: apps/v1 kind: Deployment metadata: name: mariadb-deployment labels: app: mariadb spec: replicas: 1 selector: matchLabels: app: mariadb template: metadata: labels: app: mariadb spec: containers: - name: mariadb image: mariadb ports: - containerPort:..
Rancher Desktop에서 docker 명령어 사용하기 한동안 Rancher Desktop에서 Docker 명령어를 사용하는 방법을 모르고 대안인 nerdctl을 사용하였었다. 사용하다 보니 여러모로 불편한 점이 많았다. (예를 들면 kubernetes의 yaml 파일에서 이미지 설정 시 로컬 docker image를 사용하지 못해 nexus repository를 만들어 올린 후 사용해야 하는 부분) 알고 보니 기본 설정이 nerdctl이고 docker도 사용이 가능하다는 걸 나중에 알게 되었다. 다음과 같이 Preferences에서 containerd 대신 dockerd를 선택하고 재시작하면 된다.
로컬 docker-desktop의 kubernetes (k8s)에 elasticsearch, kibana 설치해보기 elasticsearch와 kibana를 공부해볼까 싶어 설치를 해보았다. Elastic stack 소개 ELK는 Elasticsearch, Logstash, Kibana를 말한다. 각각 다음과 같은 역할을 담당한다. Elasticsearch : 데이터 저장 & 검색 엔진 Logstash : 데이터 수집 Kibana : 시각화 기존 아파치 솔라 같은 검색 엔진은 라이브러리 형태로 제공되어 사용하기 위해 구현해야 하는 항목들이 많았다. ELK는 라이브러리가 아닌 플랫폼 수준으로 제공되는 오픈소스이고 이러한 묶음을 Elastic stack이라고 통칭한다. (이와 비슷하게 CNCF stack도 있다.) 설치하기 내 경우 window에서 docker desktop을 사용하여 kubernetes로 설치해보았고 E..
Window에서 Docker Desktop 없이 docker, kubernetes 사용하기 (Rancher Desktop 사용하기) Window Docker Desktop이 개인 사용자에게는 무료이지만 기업에서는 유료화가 되었다. (정확한 기준은 more than 250 employees or more than $10 million in annual revenue, 직원 250명 이상 또는 연간 매출 천만 달러 이상인 경우 유료) 이로 인해 회사 PC에서 windows docker desktop을 사용하던 경우 다른 대안을 찾아야 하는 상황이 되었다. docker의 경우 docker desktop이 유료로 전환되었지만 wsl2를 이용하여 ubuntu에서 docker ce를 사용하는 것은 무료이다. 그리고 Rancher Desktop을 사용하면 마찬가지로 wsl2로 손쉽게 window에서도 kubernetnes를 사용할 수 있게 된다...
kubernetes kubectl 명령어 모음 여기 있는 내용은 모두 아래 공식 한글 문서의 내용임. 운영자가 아닌 사용자 입장에서 많이 쓰는 명령어 위주로 정리 https://kubernetes.io/ko/docs/reference/kubectl/overview/ kubectl 개요 Kubectl은 쿠버네티스 클러스터를 제어하기 위한 커맨드 라인 도구이다. 구성을 위해, kubectl 은 config 파일을 $HOME/.kube 에서 찾는다. KUBECONFIG 환경 변수를 설정하거나 --kubeconfig 플래그를 설정하여 kubernetes.io kubectl은 kubernetes cluster를 제어하기 위한 command line tool이다. config file은 $HOME/.kube에서 찾으며 KUBECONFIG 환경 변수를 설정하거나..

반응형