전체 글 794

Ansible playbook

https://youtu.be/sqj7lSCagO4 Ansible playbook은 Ansible task(작업할 내용)를 효율적으로 관리하고 실행합니다. 왜 효율적이라고 표현했는지 이 글에서 다룰려고 합니다. Ansible 작업할 내용을 파일로 관리하려면? Ansible에서 여러 task를 수행하려면 ansible 명령어를 여러번 실행해야 합니다. 아래 예제는 bob, alice, john계정을 생성하는 예제입니다. ansible -i ./inventory -m user -a "name=bob state=present" all ansible -i ./inventory -m user -a "name=alice state=present" all ansible -i ./inventory -m user -a ..

연재 시리즈 2024.01.14

Ansible 사용방법

https://youtu.be/F7LnYUqrrqE?si=sWpTFIcVgFUgaI-1 Ansible을 사용하기 위해 2가지 설정이 필요합니다 1. 첫 번째: SSH 연결 설정 Ansible은 SSH프로토콜로 통신을 하기 때문에 control-node와 managed-node간 ssh연결 설정이 필요합니다. ssh 연결을 하려면 control-node와 managed-node에서 공개키를 교환해야 합니다. 교환한 공개키는 파일로 저장됩니다. control-node: $HOME/.ssh/known_hosts managed-node: $HOME/.ssh/authorized_keys control-node에서 ssh-copy-id로 쉽게 공개키를 교환할 수 있습니다. ssh-copy-id를 사용하려면 mana..

연재 시리즈 2024.01.12

Ansible 소개

Ansible이란? Ansible은 여러 시스템에 코드를 동일하게 실행하는 도구입니다. 시스템 상태 체크, 시스템 구축 등 여러 시스템에 동일한 작업을 할 때 사용합니다. 아키텍처 Ansible은 control-node가 ansible을 실행하여 managed-node에 코드를 실행하는 구조입니다. control-node는 ssh프로콜을 사용하여 managed-node에 ansible모듈을 복사합니다. managed-node는 전달받은 ansible모듈을 파이썬으로 실행합니다. Ansible이 실행되는 동안 managed-node 프로세스 상태를 확인하면, 파이썬이 Ansible모듈을 실행하고 있는 것이 보입니다. Terrform과 비교 첫 번째 차이는 상태관리 입니다. Ansible은 상태가 없고 Te..

연재 시리즈 2024.01.09

Argo CD extension

ArgoCD extension기능 ArgoCD extension은 ArgoCD기본 기능을 확장합니다. ArgoCD UI 커스터마이징 헬스체크 커스터마이징 커스텀 버튼 추가 https://www.youtube.com/shorts/24zzkj0mYiw 설치 방법 extension 설치 방법은 initContainer를 사용해야 합니다. initContainer 환경변수 EXTENSION_URL에 설치할 extension을 명시하면 됩니다. mainContainer는 initContainer가 설치한 extension을 가져오기 위해 volumeMount로 가져옵니다. 예제 - Argo Rollouts UI extension 아래 예제는 argocd-server에 Argo Rollouts UI extensio..

ubuntu에서 pyenv설치 방법

1. pyenv git repo를 clone합니다. clone위치는 $HOME경로에 숨김디렉터리로 합니다. git clone https://github.com/pyenv/pyenv.git ~/.pyenv 2. 자기 쉘 설정파일(예: ~/.bashrc)에서 pyenv실행을 설정합니다. # bashrc echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc # zsh echo 'export PYENV_ROOT="$HOME/.pyenv"' >..

karpenter에서 인스턴스 후보를 결정하는 요소

EKS환경에서 karpenter는 EC2 fleet이 인스턴스 타입을 잘 결정할 수 있도록 인스턴스 타입 후보를 전달합니다. EC2 fleet은 전달받은 인스턴스 타입 중에 적절한 타입을 선택하고 EKS노드를 생성합니다. karpenter가 EC2 인스턴스 후보를 결정하는 기준은 아래와 같습니다. pending pod의 resources.request 합 VPC CNI 등 daemonset을 실행할 여유 리소스 계산 NodePool에 정의한 인스턴스 옵션을 고려하여 인스턴스 후보 선택 예를 들어 아래 그림 처럼 2개 pod가 있으면, 인스턴스 후보의 cpu는 3코어를 초과해야 합니다. 그리고 NodePool에 정의한 인스턴스 옵션을 고려하여 최종 인스턴스 후보를 결정합니다. pending pod에 res..

터미널에서 AWS EC2 인스턴스 타입 검색

이 글은 터미널에서 AWS EC2 인스턴스 타입을 검색하는 "amazon-ec2-instance-selector" 도구를 소개합니다. 이 글은 유투브에서도 만나 볼 수 있습니다. 웹 브라우저에서 EC2 인스턴스 타입 검색 방법 웹 브라우저에서 AWS EC2인스턴스 타입을 검색하려면 AWS 홈페이지나 EC2 대시보드(로그인 필요)를 사용합니다. 터미널에서 인스턴스 타입 검색 방법 터미널에서는 AWS CLI를 사용하여 EC2인스턴스 타입을 검색할 수 있습니다. 하지만, 필터규칙을 작성하기 어렵습니다. amazon-ec2-instance-selector는 AWS CLI단점을 보완한 도구입니다. 인스턴스 필터 규칙을 매우 쉽게 작성합니다. 설치와 사용방법은 github을 참고해주세요. gituhub 링크: ..

AWS spot 인스턴스 어드바이저

AWS spot 인스턴스 어드바이저는 spot인스턴스 중단 빈도를 보여주는 도구입니다. 링크: https://aws.amazon.com/ko/ec2/spot/instance-advisor/ AWS spot 인스턴스는 미사용 중인 인스턴스를 저렴하게 사용하는 서비스입니다. 가격은 저렴하지만 인스턴스 사용 요청이 들어오면 Spot 인스턴스가 중지됩니다. 이러한 과정을 Spot 인스턴스 중단이라고 하며 인스턴스 유형에 따라 중단 빈도가 다릅니다. 따라서 중단 빈도가 낮은 spot 인스턴스를 선택하면 해당 인스턴스를 장기간 사용할 수 있습니다.