spinnaker의 경우 halyard를 사용해 배포를 한다. kubernetes의 resource 설정을 하지 않으면 대략 다음과 같이 memory resource를 사용한다. C:\Users\bluesky>kubectl top po -n spinnaker NAME CPU(cores) MEMORY(bytes) spin-clouddriver-9cd8859b6-2hc4m 109m 1802Mi spin-deck-dfb4446b7-l9pch 1m 68Mi spin-echo-676b7f55d5-d24cv 4m 678Mi spin-front50-6ff45f885b-6ncvm 8m 1255Mi spin-gate-7464dcd68f-j624v 3m 1146Mi spin-igor-57f6658c6f-ftfhc 2m 1..
공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. 성능 저하 증상 발생 Windows 10에서 11로 변경하면서 rancher desktop의 설정이 모두 초기화되었고 다시 모두 재설정하였다. Swap memory가 모두 사용 중이었다. (확인하는 방법은 아래 참조) 작업관리자에서 VmmemWSL의 디스크 사용량이 지속적으로 발생하고 있었다. 계속 디스크를 사용하여서 전체적인 성능이 하락하였다. 디스크를 왜 계속 사용하는지에 대해서는 명확하게 확인되지 않았지만 다음과 같이 진행해 보았다. container를 다시 생성하면서 일부 pod가 계속 에러를 발생시켰다. 통계 정보 수집하는 pod가 이 에러난 pod의 통계 정보로 계속 디스크 쓰기 작업이 발생시킨 게 아닌가 짐작하고 ..
공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. Loki 소개 https://github.com/grafana/loki Loki에 대한 소개를 보면 다음과 같다. "Like Prometheus, but for logs" Prometheus가 metric을 시계열 데이터로 저장하기 위해 사용된다면 Loki는 log 데이터를 저장하기 위해 사용된다. https://grafana.com/docs/loki/latest/fundamentals/overview/ Loki는 log data를 효율적으로 보관하기 위해 최적화된 데이터 저장소이다. 다른 logging system과 다르게 Loki index는 label에서 작성되며 원래 log message는 색인화되지 않는다. Prome..
공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. OpenTelemetry 소개 application의 상태를 계측하기 위한 단계는 간략하게 계측 데이터 수집 -> 저장 -> 모니터링의 세 단계로 나누어 볼 수 있다. (이 구분이 절대적인 정의는 아니다.) 각 역할별로 제공되는 여러 라이브러리를 조합해서 사용하는데 ELK(ElasticSearch + Logstash + Kibana), EFK (ElasticSearch + Fluentd + Kibana), PLG (Promtail + Loki + Grafana) 등 다양한 조합이 있고 보통 해당 라이브러리를 만든 회사의 제품들을 묶은 제품군(stack)으로 사용하게 된다. 또한 수집하는 계측 데이터(log, metric, tr..
어떤 경우 helm chart로 kubernetes yaml 파일을 만들고 싶어 질까 설정이나 구성이 복잡한 경우 docker image로 설치할 수 있는 안내를 하지 않고 helm을 사용하는 걸 안내하는 경우가 있다. helm이 간편하게 설치를 할 수 있게 해 주지만 해당 image의 사용이 어떻게 구성이 되었는지 알고 싶거나 또는 helm으로 제공되는 설정을 적당히 참고해서 내가 원하는 구성으로 kubernetes yaml파일을 만들고 싶은데 docker hub를 검색해도 해당 docker image에 대한 커스텀 옵션 안내가 없고 docker file tag를 살펴보거나 해당 소스의 github을 찾아봐도 어떻게 kubernetes yaml을 작성해야 하는지 알기 어려운데 helm으로 사용하는 법만..
공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. sonarqube 소개 sonarqube는 30개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석을 자동 리뷰 수행하기 위한 지속적인 코드 품질 검사용 오픈소스 플랫폼이다. https://www.sonarsource.com/products/sonarqube/ 개발할 때 findbug, checkstyle, pmd를 사용하여 코드상 문제를 파악하고 수정할 수 있다. sonarqube는 이런 분석 내용을 저장하고 해결된 내역을 기록하여 코드 품질을 관리할 수 있도록 도와준다. sonarqube는 java 뿐만 아니라 C#, C, C++, Go, Kotlin, PHP, Python, Ru..
공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. Observability, Monitoring에 대하여 Observability(관측 가능성)는 시스템의 출력 변수를 사용하여 상태 변수에 대한 정보를 알아낼 수 있는지를 나타내는 용어이다. 이런 정보를 확인하기 위해서는 데이터를 수집하고 저장하여 지속적으로 관찰, 감시할 수 있는 모니터링이 필요하다. 저장할 데이터의 종류는 크게 log, metric, trace (추가로 event?)으로 나누어 볼 수 있다. log는 일반적으로 개발하면서 logger를 통해 남기는 데이터라고 생각하면 된다. metric은 현재 application의 상태에 대한 지표를 주기적으로 수집하여 시간별 상태를 확인할 수 있도록 시계열 데이터(tim..
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..
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 명령어를 사용하는 방법을 모르고 대안인 nerdctl을 사용하였었다. 사용하다 보니 여러모로 불편한 점이 많았다. (예를 들면 kubernetes의 yaml 파일에서 이미지 설정 시 로컬 docker image를 사용하지 못해 nexus repository를 만들어 올린 후 사용해야 하는 부분) 알고 보니 기본 설정이 nerdctl이고 docker도 사용이 가능하다는 걸 나중에 알게 되었다. 다음과 같이 Preferences에서 containerd 대신 dockerd를 선택하고 재시작하면 된다.