전체 글 794

ArgoCD 9편 - Project 상세내용

영상: https://youtu.be/rx-G89XGObA 1. Project란? Project는 Application을 그룹으로 관리하는 개념입니다. Appliction은 생성할 때 Project를 선택해야 하고 Project는 0개 이상 Application을 가질 수 있습니다. Application을 그룹핑하여 공통으로 사용하는 설정을 관리하는 장점과 Applicatoin 권한을 제한하여 안정적으로 Argo CD를 운영할 수 있게 합니다. Argo CD를 설치하면 default Project가 기본으로 생성 되어 있습니다. 2. 구성요소 Project는 여러가지 정보로 구성됩니다. Git repo, sync할 쿠버네티스 클러스터 정보, Role 등이 있습니다. Project에 속한 Applicati..

연재 시리즈 2022.10.23

Event Exporter - 쿠버네티스 이벤트 장기저장

쿠버네티스 이벤트란? 쿠버네티스 이벤트는 쿠버네티스가 어떤 동작을 하고 결과를 기록하는 로그입니다. kubectl get event로 이벤트를 조회할 수 있습니다. 쿠버네티스 장애분석을 위해 많이 보는 로그입니다. kubectl get event -n {namespace} Event Exporter란? Event Exporter github 링크: https://github.com/resmoio/kubernetes-event-exporter 쿠버네티스 이벤트는 최대 60분 이하만 조회됩니다. 그러므로 60분 초과된 이벤트는 조회할 수 없습니다. 쿠버네티스 이벤트를 전체시간을 조회하기 위한 오픈소스가 여러개 있습니다. 그 중 하나가 Event Exporter(프로메테우스 Exporter가 아님)입니다. E..

테라폼 시리즈 12편. 1주차 과제

안녕하세요. 이 글은 테라폼스터디 1주차 과제를 정리했습니다. 1. 과제1 1.1 목표 EC2 Instance에 Apache 실행합니다. 외부에서 Apache에 접속하면 NICKNAME을 리턴합니다. 1.2 요구사항 user_data를 이용하여 EC2 Instance에 apache를 설치합니다. index.html은 닉네임을 출력하도록 설정합니다. 작업내용은 user_data에 설정합니다. 잘 반영되었는지 닉네임 출력을 확인합니다. 1.3 실습내용 user-data apache를 설치하는 스크립트를 추가했습니다. 외부에서 http를 호출하면 닉네임을 출력해야하므로 index.html파일 내용을 수정했습니다. security-group apache를 설치하기 위해 ubuntu 패키지 목록을 업데이트해야 합..

연재 시리즈 2022.10.22

테라폼 시리즈 11편. 변수와 입력

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 변수선언 방법 변수 variable BLOCK type을 사용하면 변수를 선언할 수 있습니다. 정의할 수 있는 속성은 테라폼 공식문서를 참고하시길 바랍니다. terraform INPUT 공식문서: https://developer.hashicorp.com/terraform/language/values/variables#arguments variable "" { description = "변수 설명" type = 변수타입 } 아래 예제는 server_port라는 변수이름을 선언했습니다. server_port 변수는 정수타입니다. 관례적으로 변수정의는 variables.tf파일에 저장합니다. cat

연재 시리즈 2022.10.22

테라폼 시리즈 10편. 출력(Output)

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 출력(Output)이란? output Block은 코드가 인프라에 반영된 후, 반영된 세부사항을 테라폼 코드에 저장하고 싶을 때 사용합니다. 예를 들어 aws EC2 Instance public IP를 output에 설정하여, 수동으로 aws EC2 Instance 대시보드를 확인하지 않아도 됩니다. 단지 output으로 ec2 Instance IP를 조회할 수 있습니다. 2. 예제 아래 테라폼 코드를 terraform apply명령어로 aws에 반영합니다. output은 aws_instance리소스를 참조하여 public IP를 참조했습니다. cat

연재 시리즈 2022.10.22

테라폼 시리즈 9편. 리소스 참조

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 리소스 참조란? 리소스가 다른 리소스와 관계가 있다면, 테라폼은 리소스 참조라는 기능을 제공하여 리소스 관계를 설정합니다. 예를 들어 aws EC2 Instance에서는 Securtiy Group이 필요합니다. Security Group을 먼저 생성한 후, EC2 Instance 리소스에서 {BLOCK LABEL}.{resource name}.{attribute}로 Security Group리소스에 접근할 수 있습니다. 2. 예제 테라폼 리소스 참조 예제는 EC2 Instance를 생성하고 외부에서 접속할 수 있도록 http 애플리케이션을 실행합니다. 외부에서는 EC2 Instance의 http://public_IP:8080으로 애플리케..

연재 시리즈 2022.10.22

테라폼 시리즈 8편. 변경/변경불가능 속성

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 변경/변경불가능 속성이란? 테라폼 코드를 인프라에 반영 한 후, 일부 속성을 변경하고 다시 인프라에 반영하면 어떻게 될까요? 조건에 따라 결과가 달라집니다. provider에서 변경내용이 적용 불가능하면 해당 리소스를 삭제하고 다시 생성합니다. 바로 적용이 가능하면 리소스 속성만 수정합니다. 예제를 살펴보면서 변경가능/불가능 과정을 상세히 살펴볼게요!. 2. 변경 가능(Mutable) 속성 변경가능 속성은 값이 수정되면, 기존 인프라에 수정된 내용이 바로 반영됩니다. 실습 예제는 AWS EC2 Instance의 태그를 수정해볼게요. 먼저 태그가 없는 ec2인스턴스를 생성하겠습니다. 코드는 아래와 같습니다. cat

연재 시리즈 2022.10.21

테라폼 시리즈 7편. 테라폼 상태파일(tfstate)

안녕하세요. 이 글은 테라폼스터디 1주차 내용을 정리했습니다. 1. 상태파일이란? 테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리합니다. 파일 확장자는 tfstate입니다. 상태파일은 json파일입니다. 2. 상태파일 목록 확인 상태파일에 있는 내용이 매우 많으면 사람이 해석하기 매우 불편합니다. 다행히 테라폼은 상태목록과 내용을 확인하는 명령어를 제공합니다. 상태파일 목록은 terraform state list명령어로 확인할 수 있습니다. list로 보이는 목록은 tf파일의 BLOCK라벨입니다. 주의사항은 tf파일에 정의되어 있다고 state list에 보이는 것이 아니라, terraform apply명령어를 통해 코드가 인프라에 반영되어 있어야 합니다. terraform state lis..

연재 시리즈 2022.10.21

테라폼 시리즈 5편. 테라폼 언어 구조

참고자료: https://www.terraform.io/language#about-the-terraform-language 테라폼 언어는 BLOCK단위로 구성됩니다. "" "" { # Block body = # Argument } 아래 예제는 provider이라는 BLOCK타입을 사용하여 provider를 설정합니다. provider "aws" { region = "ap-northeast-2" access_key = "my-access-key" secret_key = "my-secret-key" } 아래 예제는 resource라는 BLOCK타입을 이용하여 aws provider의 vpc를 설정합니다. resource BLOCK은 많이 사용하는 BLOCK TYPE입니다. resource "aws_vpc" ..

연재 시리즈 2022.10.19