목록분류 전체보기 (67)
Study_note
쿠버네티스 내부 통신은 트래픽이 들어올때 iptables를 거치면서 snat/dnat 되어 client ip를 할당 받지 못한다 이런 경우 client ip를 할당 받으려면 2가지 방법이 있다. 1. 서비스 타입을 nodeport 또는 loadbalancer로 사용할 때 externalTrafficPolicy: Local를 통해 파드로 직접 통신 2. Ingress를 사용할때 Target Type을 instance가 아닌 ip로 사용 우선 1에서 서비스를 loadbalancer를 사용한다 가정 하고 externalTrafficPolicy: Local 유무에 대한 트래픽을 보면 아래와 같다. 예를들어 2개의 컨트롤러가 있는 3개의 노드를 타겟으로 잡으며 externalTrafficPolicy: Local ..
lb 컨트롤러를 생성하다 IAM OIDC Provider 생성하는걸 깜빡해서 삽질한김에 이참에 정리한다 우선 IAM OIDC Provider 란? IAM의 엔터티로서 Google이나 Salesforce와 같은 OpenID Connect(OIDC) 표준을 지원하는 외부 자격 증명 공급자(IdP) 서비스를 설명합니다. 즉 OpenID Connect를 이용하여 외부 서비스를 통해 사용자 인증을 구현할 수 있는 기술 리소스다. 구체적인 내용은 다음 블로그 참조 https://coffeewhale.com/kubernetes/authentication/oidc/2020/05/04/auth03/ k8s 인증 완벽이해 #3 - OpenID Connect 쿠버네티스 인증 완벽 이해 시리즈 3탄, OpenID Connec..
Terraform apply/plan -refresh-only Terraform은 리소스를 변경하기 위한 실행 계획을 생성하기 위해 작업 공간의 상태 파일 내용에 의존합니다. 제안된 변경 사항의 정확성을 보장하려면 상태 파일이 최신 상태여야 합니다. Terraform plan및 apply은 기능의 일부로 암시적 메모리 내 새로 고침을 실행하여 인프라 변경을 제안하기 전에 상태 파일의 드리프트를 조정 가능. -refresh-only를 사용하여 인프라를 수정하지 않고 상태 파일을 업데이트할 수도 있다 ------------------------------------------------------------ 공식 모듈(Terraform Module Registry) Terraform 모듈 기능을 이용한 다양..
테라폼은 선언적 언어로서 실제 배포된 내용을 정확하게 나타내며, 추론하기 쉽지만 특정 유형의 작업을 하기 어렵다. 예를 들어 선언적 언어에는 for 반복문이 없다 -> 같은 리소스를 여러 개 만드는 반복 처리에 어려움이 있다 테라폼은 다행히도 특정 유형을 반복하거나 if문을 사용할 수 있도록 count 메타 변수, for each, for 표현식 등 다양한 함수 등을 제공하고 있다. 반복문은 아래와 같다. count 매개 변수 : 리소스를 반복 for_each 표현식 : 리소스 내에서 리소스 및 인라인 블록 반복 for 표현식 : 리스트와 맵을 반복 for 문자열 지시어 : 문자열 내에서 리스트와 맵을 반복 count 매개 변수 count는 테람폼의 가장 오래되고 단순하며 ㅈ제한된 반복 구조로써 coun..
아래 그림은 스테이징 환경 밖에 없지만 후에 prod, dev 환경을 구축한다면 스테이징에서 코드를 전부 하드 코딩하지 않고 prod, dev 환경을 추가하는 방법이 모듈이다 즉 여러 환경, 리전에 같은 인프라를 배포할 때, 목적에 따라 똑같은 인프라를 여러 개 배포할 필요가 있을 때 사용하는것이 모듈이다 모듈을 어떻게 생성하고, 효율적으로 관리 할지는 적어본다 우선 모듈 폴더를 생성하고 모듈 파일을 만드는데 모듈 파일은 일반 tf파일과는 다르게 provider 내용이 없고 모듈을 사용할 tf파일에서 provider를 아래와 같이 지정해준다. provider "aws" { # 모듈을 사용하는 tf파일은 생성자 입력 region = "us-east-2" } module "webserver_cluster" ..
상태파일 저번 글에서 말했듯이 apply 시 terraform.tfstate 파일이 생성된다 이걸 상태 파일이라 부르는데 이 파일에는 구성파일(.tf)의 테라폼 리소스가 실제 리소스의 표현으로 매핑되는 내용을 기록하며 사용자 정의 JSON 형태로 되어 있고 이는 terraform으로 구성된 인프라스터럭처의 현재 상태를 보여준다. 즉 apply 때마다 AWS에서 지금 작동 중인 EC2 인스턴스의 최신 상태를 가져와서 테라폼의 구성과 비교하여 어느 변경 사항을 적용해야 하는지 결정한다. 아래 사진 처럼 인프라 생성 시 terraform.tfstate 생성 하지만 개인이 사용할 시 문제가 되지 않지만 팀 단위로 사용을 한다면 문제가 발생한다. 상태 파일을 저장하는 공유 스토리지 : 인프라 업데이트 시 각 팀원..