전체 글 794

테라폼으로 EKS만들기 프로젝트 3-2편 - 테라폼 동작원리

이 글은 테라폼이 어떻게 동작하는지 설명합니다. 3편에서 실행했던 hello world예제를 참고합니다. ▶ 테라폼 동작원리 유투브 영상: https://youtu.be/47FJVP437nk 1. 동작원리 테라폼은 코드를 읽어 코드가 실행가능한지 분석합니다. 이 후, 대상에서 지원하는 API를 사용하여 코드를 대상에 반영합니다. 테라폼 내부(아키텍처)는 테라폼 공식문서에서 설명합니다. 테라폼은 코어와 플러그인으로 구성되어 있습니다. ① 코어는 테라폼 코드를 읽어 코드 문법검사와 실행 순서를 결정합니다. 실행 순서 형태를 리소스 종속성 그래프(resource dependency graph)라고 부릅니다. ② 코어는 테라폼 코드 실행을 플러그인에게 요청합니다. ③ 플러그인은 provider 설정을 읽어 적절..

연재 시리즈 2023.06.24

linux에서 GPU card목록 확인

들어가며 며칠 전, 회사에 워크스테이션 서버가 왔습니다. 이 서버에는 GPU 4080이 있었습니다!!!. 처음 GPU 4080을 봤는데 크기가 엄청 컸습니다. 확인방법 서버에 GPU카드 인식여부는 lspci명령어로 확인가능합니다. 서버에 장착되어 있는 4080이 잘 보이네요!. lspci | grep VGA lspci명령어는 메인보드에 연결된 PCI 장비 목록을 보여줍니다. man lspci 위키문서에 따르면 PCI는 메인보드에 있는 버스입니다.

테라폼으로 EKS만들기 프로젝트 3-1편 - helloworld

이 글은 테라폼을 어떻게 실행하는지 체험합니다. 영상: https://youtu.be/-1OQ_lb3x0k 1. 예제코드 다운로드 예제 코드는 git repo에 공개되어 있습니다. helloworld 폴더가 이번 챕터 예제 코드입니다. git clone https://github.com/choisungwook/terraform_practice.git example cd example cd helloworld 2. 테라폼 초기화 테라폼 코드를 실행하기 위해 초기화 과정이 필요합니다. 초기화 과정은 테라폼 코드가 사용하는 모듈을 다운로드 받습니다. terraform init 3. 테라폼 실행결과 미리보기 테라폼 코드가 실행되면 어떻게 대상에 적용되는지 예상결과를 볼 수 있습니다. terraform plan명..

연재 시리즈 2023.06.18

테라폼으로 EKS만들기 프로젝트 2편 - 테라폼과 코드에디터 설치

이 글은 테라폼 설치화 테라폼 코드 작성을 위한 코드 편집기 설치 과정을 설명합니다. 1. 테라폼 설치 테라폼은 윈도우, 리눅스, 맥에서 사용가능합니다. 이 글은 윈도우 운영체제 WSL ubuntu 20.04LTS에서 테라폼 설치 방법을 설명합니다. 그러므로 WSL ubuntu 20.04LTS가 이미 설치되어 있어야 합니다. 테라폼 다운로드 페이지를 엽니다. [Linux -> Ubuntu/Debian]메뉴를 클릭하고 다운로드 명령어를 복사합니다. WSL리눅스 쉘에서 다운로드 명령어를 실행합니다. 정상적으로 설치되면 terraform 명령어를 실행할 수 있습니다. 테라폼 버전은 아래 명령어로 확인합니다. 23년 6월 기준으로 v.1.5.0이 최신버전입니다. terraform -version 2. 코드에디터..

연재 시리즈 2023.06.18

테라폼으로 EKS만들기 프로젝트 1편 - 개요

EKS스터디가 끝나고 EKS 템플릿을 만드는게 좋을 것 같다고 생각했습니다. 그래서 EKS스터디에서 진행하지 못했던 테라폼을 병행해서 EKS템플릿을 만들기로 생각했습니다. 목표 회사 팀원들도 같이 따라갈 수 있도록 문서작성과 예제생성 테라폼으로 EKS배포 테라폼으로 argocd배포(변경될 수 있음) argocd를 사용하여 bootstrap 쿠버네티스 오픈소스 배포

연재 시리즈 2023.06.18

프로메테우스 오퍼레이터에서 pod label수집

프로메테우스 오퍼레이터 디폴트 설정 프로메테우스 오퍼레이터 기본 helm values를 사용하면, pod label이 메트릭으로 수집되지 않습니다. pod 메트릭을 생성하는 kube-state-metrics가 pod label을 수집하지 않기 때문입니다. ※ 시연: https://youtube.com/shorts/71LUdFCtQy8?feature=share 메트릭에서 pod label수집 설정방법 그래서 helm values에서 kube-state-metrics필드를 수정해야 합니다. metricLabelAllowlist필드에 모든 pod label을 수집하도록 설정합니다. kube-state-metrics: metricLabelsAllowlist: - pods=[*] ... 수정한 helm value..

EKS 스터디 - 7주차 flux 예제

이 글은 flux가 무엇이고 간단한 예제를 살펴봅니다. 예제를 쉽게 따라하기 위해 모든 예제는 flux CLI를 사용합니다. flux란? flux는 쿠버네티스를 위한 gitops 도구입니다. flux는 git에 있는 쿠버네티스를 manifest를 읽고, 쿠버네티스에 manifest를 배포합니다. flux와 argocd 비교 flux는 argocd와 같은 역할을 하고 있어 비교대상으로 자주 언급됩니다. flux를 잠깐 써본 경험으로, flux는 argocd에 비해 kustomize에 매우 특화된 도구로 느꼈습니다. argocd는 kustomize를 사용할 때 디폴트 설정이 부족하기 때문에, argocd configmap에서 kustomize옵션을 한땀한땀 설정해야 합니다. 반면에 flux는 바로 kusto..

연재 시리즈 2023.06.04

컨테이너 안에서 host iptables조회가 안된다면?

불가피하게 컨테이너에서 host의 iptables를 사용할 때가 있습니다. 일반 설정으로 컨테이너를 실행하면 host iptable을 조회하지 못합니다. network namespce를 host로 설정 host의 iptables을 접근해야 하므로 host network namespace를 설정해야 합니다. docker run --net host ... privileged와 capability 설정 host 네트워크인터페이스에 접근해야되므로 privileged와 capablity가 필요합니다. docker run --net host --privileged --cap-add=NET_ADMIN ... privileged와 capability가 궁금하신 분은 이전 글을 참고해주세요!. privileged 이전글..

vscode에서 ansible-lint 오류

문제 vscode에서 Ansible extension에서 lint기능을 제공합니다. 하지만, lint기능이 제대로 동작하지 않았습니다. 원인 찾아보니 최신버전 ansible extension은 python 3.8이하는 더 이상 지원을 하지 않은 것 같네요. ㅜ.ㅜ github issue에 구 파이썬 버전은 지원계획이 없다고 말한 것 같습니다. 아니면 WSL에서 파이썬 환경이 꼬여서 그럴지도.. 요즘 느낀점은 업무를 할 때 윈도우 운영체제가 매우 불편합니다.