DevOps

DevOps/Terraform

Terraform import 사용법

terraform state backend를 외부로 설정하고 외부에서 인프라를 수정했을 때 외부의 tfstate와 로컬의 tfstate를 state pull/push를 통해 일관성을 유지할 수 있다. 다만, 이와 달리 terraform에서 전혀 다루지 않고 Web GUI에서만 생성한 경우 terraform import를 통해 infra를 코드로 정의할 수 있다. 사용법 terraform [global options] import [options] ADDR ID ADDR - import하는 대상에게 부여하는 리소스 주소 ID - import 대상의 고유 값 import를 수행하기 위해서는 대상을 위한 provider를 구성하여 init까지 완료되어야한다. 이후 Security Group을 예시로 들자면, ..

DevOps/AWS

iam RBAC 실습

eks에선 iam을 RBAC 구성에 사용할 수 있다. $ aws eks update-kubeconfig --name 위 명령어 입력 시 현재 aws sts get-caller-identity 를 통해 확인되는 iam으로 ~/.kube/config에 파일이 생성된다. 때문에 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY 환경변수 설정 시 해당 iam으로 구성되고 또한 update-kubeconfig 뒤에 —profile을 붙여 이미 configure 된 iam을 사용할 수도 있다. 다만, 현재는 새로운 Role 구성 테스트이므로 eks를 생성한 계정으로 kube config를 생성한다. k8s에서 role 구성 rbac.yaml apiVersion: v1 kind: Namespa..

DevOps/k8s

EKS VPC CNI

Amazon VPC CNI plugin for kubernetes EKS의 각 EC2에 배포되어 추가적인 ENI를 attach 함으로써각 Pod 및 서비스에 할당한다. 즉 EKS에서 실행시킨 pod의 내부 IP 주소(ex. 10.0.0.4)를 할당하기 위해 ENI를 추가한다는 것이다. 장점 기존에 사용하던 overlay network처럼 IP를 할당하는 데에 캡슐화하는 overhead가 발생하지 않는다. 단점 instance 유형에 따라 ENI를 attach 할 수 있는 상한선이 정해져있으므로 각 instance에 대해서 이를 극복하는 추가적인 할당이 불가능하다. Terraform에서 구성 방법 module "vpc_cni_irsa" { source = "terraform-aws-modules/iam/a..

DevOps/k8s

k8s dns ndots

ndots? ndots란 FDQN으로 인지하기 시작하는 .(dot)의 개수이다. $ cat /etc/resolv.conf search default.svc.cluster.local svc.cluster.local cluster.local ap-northeast-2.compute.internal nameserver 10.100.0.10 options ndots:5 위와 같이 조회할 수 있으며, ndots:5에서 5가 n의 역할을 하고 기본적으로 n의 기본값은 resolve.conf man 문서에서 다음과 같이 1이라 이야기한다. ndots:n sets a threshold for the number of dots which must appear in a name before an initial absolu..

DevOps/k8s

k8s의 보안

Service Account k8s에서는 권한을 제어하기 위해 UserAccount와 ServiceAccount를 제공한다. 이때 UserAccount는 GKE의 google 계정, EKS에서의 IAM 계정과 연결되어 있어 k8s 관리 대상이 아니다. UserAccount는 Cluster 수준에서 사용되며, 이에 반해 ServiceAccount는 네임스페이스에서 사용된다. 또한 어떠한 pod라도 반드시 SA가 하당되어야하며, 이를 통해 SA 기반 인증/인가를 진행하고 만약 이를 할당하지 않을 시 기본 account로 할당한다. 실습 $ k create serviceaccount sample-serviceaccount serviceaccount/sample-serviceaccount created $ k ..

DevOps/AWS

ALB, NLB idle timeout, keepalive 차이점, 문제상황 및 해결방법

ALB, NLB idle timeout, keepalive 차이점, 문제상황 및 해결방법 ALB, NLB 차이점 ALB는 http header까지 모두 확인하여 트래픽을 전달하고, NLB는 4계층 까지의 정보만 확인 후 전달한다. 이때 ALB에서는 이러한 트래픽을 Proxying 하게 되는데, 때문에 서버에서 tcpdump 시 반대쪽 IP가 alb의 IP로 찍히게 된다.(EC2에서 client로 전달되는 패킷은 DSR 방식으로 처리된다.) NLB에서는 client의 ip가 그대로 전달되며 proxying하지 않고 패킷 포워더와 같이 작동한다. client → NLB(80 listening) → ec2(8080 listening)일 때, NLB는 트래픽의 포트만을 변경하여 패킷을 ec2로 전송한다. 이때문..

xlwdn98767
'DevOps' 카테고리의 글 목록