본문 바로가기

반응형

DevOps

(16)
[DevOps] EKS 환경에서 Helm으로 Jenkins 안전하게 구축하기 1. 개요AWS 환경에서 Jenkins를 안정적이고 효율적으로 운영하고 싶다면 Helm으로 Jenkins를 설치하는 것이 정신 건강상 좋다고 본다. 왜냐하면 EC2 환경에서의 Agent 연결하는 방식과 다르게 Controller와 Agent를 단순 values.yaml 파일만 가지고 분리하는 것도 굉장히 쉽고 Controller를 재시작해도 EBS Volume을 붙여둔다면 안전하게 재시작할 수 있기 때문이다. 다음의 내용들을 고려하여 작업한다고 가정한다. - Agent, Controller의 분리- Controller를 자유롭게 재시작할 수 있도록 EBS Volume 붙이기- docker 명령어를 agent pod에서 사용할 수 있도록 하기- 모니터링을 수월하게 할 수 있도록 하기...  참괴 : 이 글..
[EKS] Spot Instance를 안전하게 처리하는 방안에 대해서 1. 개요요즘에는 대부분 Karpenter를 활용해서 EKS Node를 관리한다. Karpenter에서는 Spot Instance를 손쉽게 활용할 수 있기 때문에 Spot Instance를 활용하는 곳들이 많을 것이다. Spot Instance는 미사용 EC2 용량을 온디맨드 가격에 비해 최대 90% 저렴하게 사용할 수 있지만 언제든지 AWS에 의해 회수당할 수 있기 때문에 안정성이 떨어질 수 있다는 단점이 있다. 이 때 다음의 문제가 발생할 수 있다. 1. Deployment가 1대인데 파드가 떠있는 Node가 Spot Instance이기 때문에 강제로 evict 당한다면, 기존 Pod는 terminating이 되고 신규 pod는 Pending -> ContainerCreating -> Running ..
[Harbor] EKS 환경에서 Harbor 고가용성(HA)으로 구성하기 1. Harbor 구성요소Harbor는 OIC와 호환되는 Cloud-native 아티팩트 레지스트리이다.이 말은 즉 Harbor는 OCI 이미지 정의를 준수하는 이미지, Helm 차트, CNAB, OPA 등을 관리할 수 있다는 것을 의미하며 이러한 종류의 Artifact를 Pulling, Pushing, Deleting, Tagging, Replicating, Scanning 등을 모두 지원한다.  [1] Redis : cache 데이터를 저장하며 jobservice를 위한 job metadata 또한 관리한다.[2] Database : Postgres를 사용하며 Harbor project, user, role, replication policy, tag retention policy, image, ch..
[Grafana Loki] 청크 중복성 제거하기 (ingester에만 chunk cache 적용) 1. 개요Grafana Loki에서는 기본적으로 RF(Replication Factor, 복제 요소)의 값을 3으로 설정할 것을 권장한다. 이는 Ingester 인스턴스의 Rolling Update 중 일부 로그의 유실을 방지하기 위해서이다. 관련 내용은 아래 글에 정리되었으니 참고하면 된다. https://nyyang.tistory.com/195 [Log] Grafana Loki 성능 최적화 방법 정리Loki 3.0에서는 Bloom Filter가 도입될 예정이라고 한다. (이미 Loki 3.0은 release 되었다. Loki를 갓 도입하는 분들는 3.x 버전으로 도입하는게 좋아보인다.) 아마 이게 도입되면 필터링 검색 시 굉장히 빨nyyang.tistory.com 이 때 별도의 설정을 하지 않는다면 ..
[Strimzi Kafka Connect] 손쉽게 커넥터 Config에 시크릿 적용하기 아래 공식문서를 참고하여 시크릿을 적용 https://strimzi.io/blog/2021/07/22/using-kubernetes-config-provider-to-load-data-from-secrets-and-config-maps/ Using Kubernetes Configuration Provider to load data from Secrets and Config MapsUsing Kubernetes Configuration Provider to load data from Secrets and Config Maps When running Apache Kafka on Kubernetes, you will sooner or later probably need to use Config Maps or ..
[Ansible] 사용자 계정 생성 및 apache http 설치 실습 가시다님 주관 A101 스터디에 대한 정리 - 3주차 입니다. 1, 2 주차에는 Ansible 개념에 대해 전반적으로 알아보았습니다. 이번 주차에는 간단한 실습을 진행해봅니다. 추가로 valut 암호화 시 aws secrets manager를 활용해보겠습니다. 실습 환경에 대한 설명은 따로 하지 않음 1. 사용자 계정 생성 실습 원격 서버에 사용자 계정을 Playbook, 암호화를 활용하여 생성해보자. # 아이디어 - ansible.builtin.user 모듈을 사용하면 될 것 같다. - ansible은 ansible-vault를 통해 암호화를 수행할 수 있다. >> playbook 안에 username, password를 직접 넣어 만들수도 있지만 이는 보안에 취약하다. >> 따라서 별도 file에 u..
[Ansible] 반복문, 조건문, 핸들러, 블록, Recsue 등 개념 정리 가시다님 주관 A101 스터디에 대한 정리 - 2주차 입니다. 이번 주차에는 반복문, 조건문, 핸들러 개념에 대해 정리합니다. # 반복문 Ansible은 loop, with_, until 키워드를 통해 반복문을 사용할 수 있도록 제공한다. ( with_ 구문은 Ansible 2.5 버전부터 권장되지 않으며 loop을 사용할 것을 권장함 ) 예를 들어 여러개의 file을 만든다던지 여러 user를 생성한다던지 등이 그 예이다. https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_loops.html Loops — Ansible Documentation As of Ansible 2.8, you can get extended loop informa..
[Ansible] 기본 개념 정리 가시다님 주관 A101 스터디에 대한 정리 - 1주차 입니다. 이번 주차에는 Ansible 기본 개념에 대해 정리합니다. Ansible이란? Ansible은 Python module 및 ssh를 사용하여 원격 호스트에 명령을 수행할 수 있도록 도와주는 CM(Configuration Management) 도구이다. 별도의 Agent를 설치하지 않아도 되며 단순히 SSH 접속이 가능하면 편리하게 사용할 수 있다. (내부적으로 Python을 사용하게 되는데 대부분의 Linux에는 Python이 기본적으로 설치되어 있다.) 필자는 Ansible을 사용할 때 일반적으로 다음의 과정들을 거친다. [1] ansible.cfg 파일 작성 및 확인 [2] inventory 파일 생성, 그룹 변수 생성, 호스트 변수 생성..

반응형