지난 5월 동아리에서 진행 중인 팀 프로젝트의 배포를 진행하게 되었는데, 동아리의 서버 자원은 모두 AWS의 관리형 쿠버네티스 서비스인 EKS에서 관리를 하기 때문에 EKS로의 배포가 필요했다. Docker와 Github Actions를 이용해 ec2 서버에 자동 배포
로컬의 가상환경에서 하나의 노드로 구성된 클러스터로 작동하는 테스트용 k8s 환경이다. $ minikube startKubernetes 클러스터 생성 : Docker 컨테이너 안에 Kubernetes 클러스터를 설치클러스터 구성 요소 초기화 : 주요 컴포넌트가 자동으로
Agnhost란? 쿠버네티스 프로젝트에서 개발한 테스트 전용 컨테이너 이미지 다양한 플랫폼과 운영체제에서 일관된 동작을 보장하는 CLI 도구 "agnostic"(불가지론적)과 "host"를 결합한 합성어로, 플랫폼에 관계없이 동일한 결과를 출력한다는 의미 1. 세팅
토이프로젝트로 사용했던 endermaru/22-5-team1-server 이미지를 deployment로 사용docker compose, env 등을 활용한 환경변수 사용 불가능(spring.profiles.active...)→ deployment를 생성한 뒤 새로운 p
local 프로필을 포함한 각종 환경변수 설정, Secret 분리서버에 필요한 Redis 컨테이너 연결(Spring Actuator로 확인)\--- 구분자를 기준으로 여러 파일로 나눠서 등록 가능(spring-deployment.yaml, spring-service.y
환경변수를 key:value으로 관리민감한 값이 그대로 노출됨→ 앱 비밀번호, 비밀번호 해싱에 필요한 값 등 민감한 데이터의 관리가 불가능Deployment 리소스에 spec.template.spec.containers\[].envFrom\[]에 secretRef 추가
Deployment, Service 등의 Manifest 파일을 하나씩(또는 하나의 파일에) 정의하고, kubectl apply로 해당 파일에 맞게 리소스를 생성 = 개별 리소스를 하나씩 배포하는 방식Hashicorp Vault, External Secret Opera
kubelet은 모든 노드의 pod을 관리, Health Check를 담당livenessProbe: 기본 상태는 SuccessreadinessProbe: 기본 상태는 SuccessstartupProbe: 설정되지 않으면 실행되지 않음별도의 설정이 없을 경우, 프로세스가
지금까지 minikube 상에서 여러 시도를 했다면, 이제 실제 AWS EKS에 우리 팀의 서버를 올려야 함.서버 앱에 맞는 manifest 파일들을 작성해서 PR하는 방식으로 진행실제 manifest 파일 작성에 앞서, ArgoCD가 소스로 삼고 있는 waffle-w
앞서 Secret에 대해 다룬 글은 ESO(External Secret Operator)를 직접 설치하거나, 설치된 환경을 전제로 하고 있음동아리의 EKS 클러스터에 서버를 배포하는 상황에서는 ESO를 따로 설치 불가능아래 작성된 내용은 모두 예시로, 실제 리소스가 아
지금까지의 과정을 통해 k8s 및 관련 서비스들의 개념, k8s의 작동방법, 다른 팀의 서버 배포 등을 살펴볼 수 있었고, 마침내 우리 팀의 서버를 배포하는 단계가 되었다.물론 한 번의 PR로 깔끔하게 배포되진 못 했고, 여러 번의 사고와 수정을 거치며 배포가 진행되었