본문 바로가기

반응형

[Kubernetes]

(8)
[Kubernetes] ServiceAccount로 IAM Credentials 대신하기 - 1 서비스 개발하면서 계속 걸렸던게 바로 AWS IAM의 Credentials 정보들을 어딘가에 계속 저장해서 사용하고 있다는거다. 물론 배포할때 환경변수로 넣을수도 혹은 암호화해서 사용해서 일시적으로 숨길 수는 있으나 여전히 마음에 안든다. 그러다 찾은게 바로 IAM roles for service accounts라는 글이였다 https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html IAM roles for service accounts - Amazon EKS IAM roles for service accounts Applications in a pod's containers can use an AWS SDK o..
[ArgoCD] 쿠버네티스 1.24 이상인 경우, AWS EKS에서 무의식적으로 최신버전으로 클러스터를 만들었고 ArgoCD에 클러스터를 연결했더니 대뜸 아래와 같은 오류가 발생했다. 뭔가하고 검색을 해보니 쿠버네티스 1.24버전 이후부터는 ServiceAccount를 만들어도 Secret을 안만들어 준댄다... 너무해! 그래서 이제부터는 사용자가 수동으로 시크릿을 연결해줘야 한다. 1. ArgoCD를 사용하려는 클러스터로 변경 kubectl config use-context 2. Secret 파일 적용 apiVersion: v1 kind: Secret metadata: annotations: kubernetes.io/service-account.name: argocd-manager name: argocd-manager-token namespace: k..
[k8s] ALB 적용하기 - 2. AWS console 사용 1. AWS OIDC 생성 1-1. OIDC 조회 및 복사 EKS에서 클러스터를 생성하게 되면 OIDC url도 생성된다. EKS > Cluster > Overview에 들어가서 확인해도 되고 아래 명령어로 검색해도 된다. aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text 그러면 아래와 비슷한 결과가 나올거다. https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE OIDC를 복사했으면 IAM 페이지로 넘어간다. 1-2. Identity Provider 생성 IAM > 좌측메뉴 Access Manag..
[k8s] ALB 적용하기 - 1. eksctl 사용 1. 사전작업 eksctl 설치 EKS cluster 생성 2. OIDC 연결 서로 다른 서비스간 사용자의 인증을 도와주는 기능. (예. 구글, 애플) 쿠버네티스 서비스 계정에 IAM 역할을 사용하려면 클러스터에 IAM OIDC 공급자가 필요하다 eksctl utils associate-iam-oidc-provider \ --cluster [클러스터명] \ --region [리전] \ --profile [프로파일명] \ --approve 3. AWS Load Balancer Controller 설치 3-1. AWS Load Balancer Controller에 필요한 IAM policy 다운 curl -o iam-policy.json \ https://raw.githubusercontent.com/kub..
[ArgoCD] ArgoCD 사용설명서 - 4. 번외 SSL 적용 1. AWS certificate 적용 만약 ArgoCD의 웹주소를 외부로 노출하고 싶어서 AWS에서 제공해주는 AWS Certificate Manager를 사용했다고 했을 때 연결하는 방법이다. 1-1. ArgoCD의 설치파일을 로컬에 저장한다. curl -LO https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml 1-2. Service 영역수정 annotation에 ssl cert를 추가 --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/component: server app.kubernetes.io/name: argocd-server a..
[ArgoCD] ArgoCD 사용설명서 - 2. Git Repository 및 Cluster 연결 https://gomip-dev.tistory.com/26 [ArgoCD] ArgoCD 사용설명서 - 1. 기본설정 ArgoCD란? golang도 그렇고 argo도 그렇고 go가 들어가면 애들이 너무 멍청하게 생겼다 앞서 설명한 GitOps 전략에서 Pull Type 형태를 이용해 ArgoCD에서 설정한 Git Repository를 지속적으로 감시하고 yaml 파.. gomip-dev.tistory.com 저번 글에서는 기본설정들을 했으니 이번에는 Git Repository와 Cluster에 연결하자 1. Git Repository 연결 1-1. ssh keygen # -f : 파일 명 # -t : 암호화 알고리즘 # -C : 주석 ssh-keygen -f [SSH파일명] -t ed25519 -C [이..
[ArgoCD] ArgoCD 사용설명서 - 1. 기본설정 ArgoCD란? golang도 그렇고 argo도 그렇고 go가 들어가면 애들이 너무 멍청하게 생겼다 앞서 설명한 GitOps 전략에서 Pull Type 형태를 이용해 ArgoCD에서 설정한 Git Repository를 지속적으로 감시하고 yaml 파일에 변경이 발생하면 배포를 진행해주는 문어다. 1. ArgoCD 설치 1-1. Namespace 생성 # Namespace 생성 kubectl create ns argocd ArgoCD의 install.yaml 파일은 Namespace argocd를 바라보기 때문에 해당 작업은 필수다. 1-2. ArgoCD 설치 # argocd 설치 kubectl apply -n argocd \ -f https://raw.githubusercontent.com/argopr..
[ArgoCD] GitOps란 GitOps란? Git을 이용한 인프라 및 애플리케이션을 관리하는 것을 말한다. GitOps의 핵심포인트 1. 모든 시스템들은 선언적으로 표현되어야한다. 사실(fact)들의 집합으로 이루어져야 한다. 애플리케이션이 Git으로 관리를 하면 단일 진실 출처 (SSOT, Single source of truth)를 얻을 수 있다. 가령 쿠버네티스를 예로 들면 배포, 혹은 롤백을 할때 Git에 정의된 버전을 토대로 진행을 할 수 있게 된다. 2. Git에 정의된 버전을 표준으로 한다 Git에 정의된 버전을 토대로 배포를 진행을 하며, 롤백을 위해서는 Git revert를 진행한다 3. 배포 자동화 배포가 승인된 버전은 자동으로 시스템에 적용된다. 클러스터에 대한 추가적인 credential이 필요없다. 4. 시..

728x90