DevOps
-
ArgoCD 맛보기24년 11월 이전/ArgoCD 2022. 9. 7. 19:30
이 문서에서는 Gitops 구현체 중 하나인 ArgoCD에 대해서 간단히 알아보도록 하곘습니다. 또한 minikube 쿠버네티스 클러스터 환경에서 ArgoCD 배포 후, argocd CLI를 통해 간단히 애플리케이션을 배포하는 내용을 실습해보도록 하겠습니다. Gitops와 ArgoCD Gitops란 애플리케이션의 배포와 운영에 관련된 모든 요소를 코드화하여 깃(Git)에서 관리(Ops)하는 방법론 중 하나입니다. CI/CD 중 지속적인 배포(Continuous Deployment)에 초첨을 두고 있으며, 기본 개념은 코드를 이용하여 인프라를 프로비저닝 하고 관리하는 IaC(Infrastructure as Code)에서 나온 것으로 깃옵스는 이를 인프라에서 전체 애플리케이션 범위로 확장하였다고 보시면 됩니..
-
그라파나 9 새로운 기능 (1) Query Builder24년 11월 이전/Dashboard 2022. 9. 2. 18:20
최근 Grafana 9 버전이 출시되었습니다. 사용자들의 편의성을 위한 많은 기능들이 업데이트 및 생성되었습니다. 이 문서에서는 새로운 기능 중 하나인 Query Builder에 대해서 간단하게 알아보겠습니다. 그라파나 9 이전에 쿼리하는 방법 예를 들어서 다음 쿼리를 Grafana를 통해서 조회한다고 해봅시다. sum(rate(go_gc_duration_seconds{job="node-exporter"}[$__rate_interval])) Grafana 9 이전 버전에서는 "Explore"를 탭에서 쿼리를 하는 UI는 다음과 같습니다. 기존 Grafana 8에서는 사용자가 하나 하나 쿼리를 모두 입력해야하는 불편함이 있었습니다.(물론 자동 완성 기능으로 어느 정도 커버가 가능합니다.) 그라파나 9 에서..
-
쿠버네티스에서 metrics-server 구성하기24년 11월 이전/쿠버네티스 2022. 8. 25. 22:07
개요 쿠버네티스 클러스터를 운영하다보면 파드, 노드들의 리소스들을 확인해야 할 때가 정말 빈번하게 일어납니다. 이럴 때, 유용한 명령어로 kubectl top 명령어가 있습니다. 한, 번 명령어를 입력해볼까요? $ kubectl top po error: Metrics API not available 위 로그를 확인할 수 있듯이 아쉽게도 기본적으로 제공되는 것은 아닙니다. 쿠버네티스 클러스터에 metrics-server라는 컴포넌트를 추가적으로 설치해주어야 합니다. 이 문서에서는 쿠버네티스 클러스터 minikube 환경에서 metrics-server를 구성하는 것에 대하여 다룹니다. metrics-server 구성하기 먼저 다음 명령어를 이용하여 metrics-server를 설치할 수 있습니다. $ kub..
-
cargo 맛보기24년 11월 이전/Rust 2022. 2. 20. 20:48
개발 환경 이 문서에서 진행한 필자의 개발 환경은 다음과 같다. desktop: macbook pro 13 2020 cpu: Intel Core i7 4core memory: 32GB rustup v1.24.3 cargo vv1.58.0 이 문서는 여러분이 cargo가 설치되어 있다고 가정한다. 만약 cargo를 설치하지 않았다면, 이 문서를 참고하여 설치 및 설정을 진행하길 바란다. 또한 이 문서에서 진행하는 각 명령어는 MacOS, Linux 등의 OS는 잘 동작하겠지만 Windows는 동작하지 않을 수도 있다. 그 때는 "참고"절의 문서들을 참고하라. cargo란 cargo는 rust의 빌드 시스템 및 패키지 매니저이다. 대부분의 프로젝트는 이 도구를 통해서 관리된다. 왜냐하면 여러분이 작성한 코드..
-
rust 시작하기24년 11월 이전/Rust 2022. 2. 19. 21:05
개발 환경 이 문서에서 진행한 필자의 개발 환경은 다음과 같다. desktop: macbook pro 13 2020 cpu: Intel Core i7 4core memory: 32GB 각 명령어는 MacOS, Linux 등의 OS는 잘 동작하겠지만 Windows는 동작하지 않을 수도 있다. 그 때는 "참고"절의 문서들을 참고하라. rustup 및 cargo 설치 rustup이란 rust 버전 및 관련 도구들을 위한 커맨드라인 도구이다. rustc, rustfmt, cargo 등이 있다. rustc는 프로그래밍 경험이 있다면 gcc 등의 컴파일러라고 이해하면 편하다. 없다면, 내가 만든 rust 코드를 컴퓨터가 이해할 수 있는 언어로 변경해주는 도구라고 생각하자. rustfmt는 내가 작성한 코드를 포맷팅..
-
[Git] 삭제된 remote branch를 따라 로컬 브랜치 삭제하기24년 11월 이전/ETC 2022. 2. 2. 19:30
개요 이 문서는 merge/delete 된 원격 브랜치를 추적하여 로컬 브랜치 역시 제거하는 것에 대해 다룬다. 준비 사항은 다음과 같다. git github repository 로컬에 git clone 다음은 현재 내 Github Repository의 브랜치 상황이다. 현재는 두 개의 브랜치가 존재하고 있다. master kubernetes-in-action 하지만 내 로컬 브랜치의 상황은 다음과 같다 $ git branch -al ch02 ch03 ch04 ch05 ch06 ch07 ch08 ch09 ch10 ch11 ch12 ch13 * kubernetes-in-action master remotes/origin/HEAD -> origin/master remotes/origin/kubernetes-..
-
멀티 플랫폼 빌드를 위한 Docker Buildx24년 11월 이전/도커 2022. 1. 19. 19:30
개요 최근 Apple M1 기반의 맥북의 등장, AWS 그라비톤 서버군의 등장으로 ARM64 기반의 서버들을 지원하기 위한 도커 이미지 빌드가 필수로 되가고 있다. 따라서 이를 위한 방법으론 크게 2가지가 있다. docker build 서버를 프로세서 별로 1개씩 만들어둔다. docker buildx를 이용하여 멀티 플랫폼 빌드를 한다. 첫 방법은 매우 쉽지만 프로세스가 늘수록 서버의 대수도 늘어나야 한다. CI 배포 환경을 만들었다면, 해당 잡을 담당하는 리소스(ex: Gitlab의 gitlab-runner)가 선형적으로 증가할 것이다. 두 번째 방법은 쉬운데, 리소스 증가도 없다. 간단하게 더 많은 플랫폼들을 위한 이미지를 만들어 둘 수 있다. docker buildx는 docker 19 버전부터는 ..
-
Linux에서 Docker 설치하기 (Amazon Linux2)24년 11월 이전/도커 2022. 1. 17. 19:30
개요 이 문서에서는 Linux(Amazon Linux2) 서버에서 Docker를 설치하고 실행하는 것을 다룬다. 나의 개발 환경은 다음과 같다. instance type: t2.micro, t4g.nano os: Amazon Linux2 Docker 설치 터미널에 다음을 입력한다. # 패키지 업데이트 $ sudo yum update -y # docker 설치 $ sudo amazon-linux-extras install docker 그 후 docker --version 명령어를 다음이 출력된다. (작성일 22년 1월 17일 기준, 시간에 따라 출력문이 다를 수 있음.) $ docker --version Docker version 20.10.7, build f0df350 Docker 실행 이제 Docker..