전체 글
![[EKS] ingress-nginx helm chart 에 AWS ACM 등록](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGIAYK%2FbtrOgSf85MC%2FKgPJOguwOqJJoKn95YHOp1%2Fimg.png)
[EKS] ingress-nginx helm chart 에 AWS ACM 등록
개요 https://kubernetes.github.io/ingress-nginx/deploy/#aws 공식문서에서 deploy.yaml 을 다운받아서 acm 설정한 다음 kubectl apply -f deploy.yaml을 했을 때는 https 접속이 정상적으로 됐음 https://github.com/kubernetes/ingress-nginx 그런데 helm chart 로 설치를 했더니 "The plain HTTP request was sent to HTTPS port" 에러가 뜨면서 https 접속이 안됨 해결 방법 helm chart info repo: ingress-nginx repo url: https://kubernetes.github.io/ingress-nginx chart: ingress..
![Argocd를 사용하여 helm chart 배포 및 주의사항](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqlkFM%2FbtrOAikkbKp%2FV4pCM7TNM3C569n9aPaqM1%2Fimg.png)
Argocd를 사용하여 helm chart 배포 및 주의사항
1. helm repo 사용 Application CRD # applications.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: tomcat namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.io spec: project: apps source: repoURL: https://charts.bitnami.com/bitnami chart: tomcat targetRevision: "10.1.21" destination: namespace: tomcat server: "https://kubernetes.default.svc" syncPolicy: autom..
![[EKS] eksctl create cluster yaml file 생성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwjxam%2FbtrOlC4yFuK%2FB0yEE6aTkUXp2Jj0dJSp20%2Fimg.png)
[EKS] eksctl create cluster yaml file 생성
사전 환경 VPC 1개 Private Subnet 2개 Public Subnet 에 IGW, NAT 생성 keypair 생성 클러스터 적용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: eks-demo region: ap-northeast-2 version: "1.21" iam: withOIDC: true vpc: subnets: private: ap-northeast-2a: { id: subnet-xxxxxxxxxxxxxxxxx } ap-northeast-2c: { id: subnet-xxxxxxxxxxxxxxxxx } cs metadata 에 cluster 의..
![argoCD App of Apps 패턴을 사용한 서비스 배포](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDbeDD%2FbtrOyhGnw2P%2FanNBSTFAtK1Q5SkUCfvD31%2Fimg.png)
argoCD App of Apps 패턴을 사용한 서비스 배포
개요 GitOps로 app 을 일괄적으로 관리하고 new app 이 추가되어도 구조가 바뀌지 않도록 하기 위한 방법을 생각해봤습니다. 그래서 하나의 폴더에 child application 을 생성하도록 하는 App of Apps 패턴을 사용하게 되었습니다. 이를 사용하면 배포 및 구성할 수 있는 apps 들을 선언적으로 관리 할 수 있습니다. https://argo-cd.readthedocs.io/en/stable/operator-manual/cluster-bootstrapping/ 디렉터리(GitOps) 구조 ├── application.yaml ├── apps │ ├── app-apache.yaml │ ├── app-kustomize-guestbook.yaml │ └── app-helm-nginx.y..
![Github, Jenkins, argoCD를 사용하여 CI/CD 구축](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb74QZx%2FbtrrD8X0N7R%2FKGz9MLAj5c21NspY98zz51%2Fimg.jpg)
Github, Jenkins, argoCD를 사용하여 CI/CD 구축
프로젝트의 발단은 위 아키텍처를 보고 시작했습니다. 개발자가 도커 이미지를 변경하여 Github에 push 하면 Jenkins에서 도커 이미지를 build 하고, 빌드 번호를 이미지 태그에 붙여 ECR에 push 합니다. 그리고 Github의 deployment.yaml 파일에 이미지 태그의 정보를 업데이트합니다. argoCD에서 EKS Cluster에 Pod를 배포합니다. 처음으로 제대로 된 CICD를 구축해 볼 생각에 즐거웠습니다. 하지만 과정은 그렇게 즐겁지만은 않았죠... 젠킨스 파일 삽질을 꽤 했습니다... 시작해보겠습니다. 작업 순서 1. EKS, ECR 생성 2. Github에 코드 올리기 3. Jenkins 설치 및 설정 4. Jenkinsfile 5. argoCD 설치 6. 확인 1. E..
![Jenkins Pipeline Github Private Token 사용하여 연동](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczyNv8%2Fbtrpyjvw0Gk%2FPvUqMHqd9IBH9jhV2Ogiq1%2Fimg.png)
Jenkins Pipeline Github Private Token 사용하여 연동
보안을 위해서 Github Private Repo 를 생성하였습니다. 프라이빗 저장소를 Jenkins와 연동하는 방법에는 1. ssh private, public key 사용 2. token 사용 두가지 방법이 있습니다. 저는 이번에 두번째 방법을 사용하겠습니다. 참고로 token을 발급받은 이후에는 git bash에서 git clone, push 등을 할 때 pw를 물어보면 token을 입력해야 합니다. (github 주소에서 로그인할때는 제외인것 같네요) 1. Github Personal Access Token 생성 깃헙에 로그인한 후, 계정이미지를 클릭하여 Settings를 클릭하세요. Developer settings > Personal access tokens > 생성 클릭 위의 두개를 선택하고..
![[EKS] AWS EBS 볼륨을 K8S PV로 사용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTlS2P%2FbtrOmU4mBPB%2FoK0dSrjWk3ksILgpVkeXY1%2Fimg.png)
[EKS] AWS EBS 볼륨을 K8S PV로 사용
Pod 간 공유 가능한 스토리지를 만들어야 했습니다. 그러던 중 PV, PVC 라는 k8s 개념이 있어서 공부한 것을 정리해 보겠습니다. 물리 스토리지를 쿠버네티스 클러스터에 표현한 것이 PV이고, Pod의 볼륨과 PV를 연결하는 관계가 PVC 입니다. EKS 1.23버전 이후부터는 AWS EBS CSI Driver(https://github.com/kubernetes-sigs/aws-ebs-csi-driver)를 설치 하지 않으면 EBS를 PV로 사용할 수 없습니다. 참고: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/kubernetes-versions.html#kubernetes-1.23 Provisioning PV를 프로비저닝 할 수 있는 방법에..
![[EKS] alb-ingress-controller path 기반 라우팅 404 에러](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjwVOv%2FbtrOmVPI7EP%2FKjFRvxmc46ETwsxKBn7wo0%2Fimg.png)
[EKS] alb-ingress-controller path 기반 라우팅 404 에러
경로에 따라서 라우팅을 할 수 있도록 ALB Ingress를 작성하고 싶었습니다. 하지만 www.example.com/nginx 를 할 때마다 계속 404 에러가 났습니다. (jenkins 포함) 왜 에러가 났는지 포스팅하겠습니다. 해당 Ingress 파일 내용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress namespace: kube-system annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing ..
![[AWS] EC2에 EBS 추가하는 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrcsLn%2FbtrOihfX9US%2FPUTkkE5a5Fj7snbvIDeLK0%2Fimg.png)
[AWS] EC2에 EBS 추가하는 방법
EBS 개념 EC2 인스턴스에 사용할 수 있는 블록 수준 스토리지 볼륨을 제공합니다. EBS 볼륨은 형식이 지정되지 않은 원시 블록 디바이스처럼 동작합니다. 이러한 볼륨을 인스턴스에 디바이스로 마운트 할 수 있습니다. 인스턴스에 연결된 EBS 볼륨은 스토리지 볼륨으로 표시되며, 인스턴스 수명에 관계없이 지속됩니다. 즉, 인스턴스가 종료되어도 보관할 수 있습니다. 서버의 스토리지 개념입니다. 주의할 점: 루트볼륨의 용량은 신중하게 생성해야 합니다. 한번 생성하고 나면 용량을 늘릴 수는 있지만 줄이는 것은 불가능합니다. EC2에 EBS 추가하는 방법 1. EC2 > EBS > 볼륨 생성 원하는 용량의 볼륨을 생성합니다 2. EBS Attach 생성한 볼륨이 사용 가능 상태가 되면 해당 볼륨을 선택하고 작업 ..
![AWS SAP-C01 온라인시험 합격 후기(PSI)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmosOs%2FbtrOlg8FYmh%2FFqPKLWpJuhhLluLrHKs8C1%2Fimg.png)
AWS SAP-C01 온라인시험 합격 후기(PSI)
공부기간: 3주 지식수준: AWS에 대한 기본 지식 있음, SAA 취득함 덤프만 달달 외우면 SAP를 금방 딸 수 있을 줄 알았는데 덤프는 오답 투성이었고, 문제 자체도 쉽지 않았습니다. SAP는 만만한 시험이 아니니 공부를 열심히 하셔야 할 것 같습니다. 공부를 시작한 지 첫 주는 유데미에서 구매한 덤프를 번역하고 구글링 하면서 답을 맞혀보는데 시간을 썼습니다. 문제 전체를 복사하고 구글링 하면서 운이 좋게 examtopics이 나오면 토론 창을 보면서 답을 맞혔습니다. 이런 식으로 첫 주는 덤프를 구글링 하면서 모르는 서비스가 나오면 서비스에 대한 공부를 하였습니다. 그 후로는 2주 동안 덤프를 2~3 회독하였고, 서비스에 대한 공식문서를 보면서 공부했습니다. 다른 분들의 후기를 보니 덤프에 대한 적..