반응형
IT PICUTRE
- AWS EKS terraform 에러 : https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists. helm provider를 eks와 동시에 배포하니 EntityAlreadyExists: Provider with url https://oidc.eks.ap-northeast-2.amazonaws.com/id/... already exists.라는 문제 발생 발생원인enable_irsa = true → module.eks는 OIDC 리소스를 생성하게 됨동시에 Helm 리소스는 다음과 같이 module.eks의 출력을 참조함:provider "helm" { kubernetes { host = module.eks.cluster_endpoint cluster_ca_certificate = base64decode(module.eks.cluster_certificate.. 2025.07.28
- AWS EKS 의 OIDC와 IRSA 란? 1. OIDC (OpenID Connect)란?OIDC는 OAuth 2.0 위에 구축된 인증 프로토콜입니다.AWS에서는 EKS 클러스터를 OIDC Provider로 등록하여, Kubernetes 서비스 계정이 IAM 역할 Assume (STS:AssumeRoleWithWebIdentity)을 할 수 있도록 합니다.- AWS에서 OIDC가 사용되는 이유AWS IAM은 기본적으로 EC2나 EKS Node 단위의 권한 부여만 가능Pod 단위 권한 분리가 불가능 → Over-privileged risk이를 해결하기 위해, Pod가 사용하는 ServiceAccount에 IAM Role을 매핑하기 위한 브릿지로 OIDC를 사용2. IRSA (IAM Roles for Service Accounts)IRSA는 Kub.. 2025.07.28
- AWS EKS terraform 구성시 Launch Template을 구성해야할까 말아야할까? Access Remote를 eks module에 넣으려고하는데 별도로 등록하거나 Launch template을 false 해야하더라구요그래서 Launch Template에 대해 알아보려고 합니다. AWS EKS에서 NodeGroup을 구성할 때 한 번쯤 마주하는 질문:"Launch Template(LT)을 꼭 써야 할까?""안 쓰면 뭐가 안 되지? 쓰면 뭐가 더 좋아?"이번 글에서는 remote_access, 디스크 설정, AMI 고정 등의 관점에서Launch Template 사용 여부에 따라 무엇이 가능한지,그리고 실무에서는 어떤 전략으로 접근하는 게 좋은지 정리해보겠습니다. Launch Template 없이도 되는 것들EKS의 Managed Node Group은 기본적으로 AWS 내부에서 Launc.. 2025.07.26
- [AWS EKS] aws-auth와 iam role 확인 1. aws-auth ConfigMap 확인먼저 현재 EKS 클러스터에 등록된 aws-auth 내용을 확인합니다: kubectl get configmap aws-auth -n kube-system -o yaml mapRoles 항목에서 다음과 같은 형식으로 되어 있을 겁니다:mapRoles: | - rolearn: arn:aws:iam:::role/ username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes 이 rolearn 값이 EC2 노드에 실제 부여된 IAM 역할과 정확히 일치해야 합니다.✅ 2. 실제 EC2 인스턴스의 IAM Role 확인SSH로 접속 가능한 경우에.. 2025.07.24
- [AWS EKS - terraform] "Container runtime network not ready" reason: NetworkPluginNotReady message: Network plugin returns error: cni plugin not initialized 에러 주요 원인과 Terraform 관점의 조치사항1. aws-auth ConfigMap 설정 누락EKS는 IAM 역할을 통해 kubelet이 클러스터에 join할 수 있도록 허용해야 합니다. 해당 설정이 빠지면 Node는 EKS Control Plane과 통신이 안 되어 CNI도 설치되지 않습니다.조치:Terraform에서 aws-auth ConfigMap 설정이 들어갔는지 확인해야 합니다.예시:resource "kubernetes_config_map_v1_data" "aws_auth" { metadata { name = "aws-auth" namespace = "kube-system" } data = { mapRoles = yamlencode([ { ro.. 2025.07.24
- [aws eks terraform] Blocks of type "elastic_gpu_specifications" are not expected here. 에러 Terraform을 활용해 AWS EKS 클러스터를 구성하던 중 다음과 같은 에러를 마주쳤습니다:pgsql복사편집Error: Unsupported block type │ on .terraform\modules\eks\modules\eks-managed-node-group\main.tf line 136, in resource "aws_launch_template" "this": │ 136: dynamic "elastic_gpu_specifications" { │ │ Blocks of type "elastic_gpu_specifications" are not expected here.같은 형식의 에러가 elastic_inference_accelerator 블록에 대해서도 반복 발생했습니다.환경Terrafor.. 2025.07.24
- Azure storage account fileshare SMB 접속 방법 SMB 연결 시 로그인 정보1. 사용자 이름 (User Name)형식: Azure\예시: Azure\mystorageaccount2. 비밀번호 (Password)스토리지 계정 키 중 하나 (key1 또는 key2)Azure Portal에서 확인 가능:Azure Portal에 로그인해당 Storage Account 선택좌측 메뉴에서 Access keys 클릭key1 또는 key2 값을 복사하여 비밀번호로 사용📌 참고 사항Azure AD DS 인증을 설정한 경우, 도메인 사용자 계정으로 SMB 연결이 가능합니다. 그러나 Azure AD만 사용할 경우, SMB 연결은 지원되지 않습니다.(Azure AD DS는 premium Private Endpoint를 통해 연결된 경우에도, 위의 로그인 정보를 사용하여 .. 2025.07.23
- kubernetes scale down 시 연결 끊기는 현상(Race Condition) Sclae down 일때 연결이 끊기는 이유 사용자가 겪은 "'관계없는' 다른 서비스도 끊어지는 현상"은 정상적인 동작이며, 그 이유는 Ingress Controller 파드들이 노드별로 따로 동작하는 것이 아니라, 하나의 큰 '팀'으로 동작하기 때문입니다.핵심 오해: Ingress는 노드별로 따로 동작하지 않습니다가장 흔한 오해는 'Node A'에 있는 Ingress 파드는 서비스 A를 처리하고, 'Node B'에 있는 Ingress 파드는 서비스 B를 처리할 것이라는 생각입니다. 하지만 실제로는 그렇지 않습니다.하나의 팀: nginx-ingress-controller는 보통 2~3개 이상의 파드가 여러 노드에 분산되어 실행됩니다. 이 모든 파드들은 동일한 라우팅 규칙을 공유하는 하나의 팀입니다.무작위.. 2025.07.17
- AWS EKS 앞에 어떤 load balancer를 붙여야 할까? 일단 AWS EKS 를 사용하면 주로 alb 를 사용하거나 ingress nginx 를 사용하여 nlb를 eks에 잘 안붙여 보아 어떻게 동작하는지 알아보도록하겠습니다.안붙이는 이유는 path 라우팅이 안되기 때문인데 잘사용 안하기 때문에 nlb를 붙이면 어떻게 될지 알아봅시다. NLB의 EKS 동작 NLB의 기본 작동 방식 (정상적인 경우)NLB가 EKS와 연동될 때, 다음과 같은 순서로 작동합니다.사용자는 app: my-api와 같은 레이블(label)을 가진 파드 그룹을 지정하여 쿠버네티스 서비스(Service)를 생성합니다.이 서비스의 타입을 LoadBalancer로 지정하면, AWS Load Balancer Controller가 NLB를 생성합니다.NLB는 서비스가 지정한 레이블(app: my-.. 2025.07.17
- azure action groups alert alram 설정해야해서 하는데 monitoring의 alert rule에 들어가보니 있는데 설정할수 가 없음 그냥 여기다가 수정도 해놓으면 안되나..Azure에 은근 이런 메뉴들이 많다. azure 콘솔 검색에서는 action groups 해도 안나온다. monitor alerts에서 들어가서 할수만 있음 들어가서 클릭한뒤 edit 하면됩니다. 2025.07.14
- 공부하기 싫다고 징징되니까 chatgpt가 조언해주네요 공부하다가 너무하기싫어서 어떻게해야하냐고 하니까 습관이란 건 항상 잘하는 사람이 만드는 게 아니라,망할 뻔한 날에도 ‘조금이라도 한 사람’이 만드는 거야. 지금 딱 그 ‘조금이라도 하기’ 타이밍이야.25분만 해보자. 진짜. 시작해볼래? 타이머 필요하면 내가 세도 돼. 대단하네 진짜 2025.07.13
- Jenkins 노드 추가하기: Built-in Node vs 외부 Agent CI/CD 파이프라인의 중심에 있는 Jenkins는 다양한 환경에서 빌드를 실행할 수 있도록 노드(Node) 기능을 제공합니다. Jenkins Master는 기본적으로 하나의 Built-in Node(마스터 노드) 를 가지고 있으며, 확장성과 병렬 작업을 위해 외부 Agent(Node) 를 추가하는 방식으로 활용됩니다.이번 글에서는 Jenkins에서 노드를 구성하는 방법과 함께, Built-in Node와 외부 Agent를 사용하는 차이점, 그리고 각각의 장단점을 비교해 보겠습니다.1. Jenkins 노드란?Jenkins에서 "노드(Node)"는 빌드 작업이 실행되는 물리적/가상 머신 또는 컨테이너를 의미합니다.Built-in Node: Jenkins가 설치된 머신(마스터) 자체가 빌드를 수행.외부 Ag.. 2025.07.11
반응형