인프라 개발자의 역할 데브옵스 로드맵 참고 개발자를 도와주는 역할 개발자들이 인프라를 사용하기 쉽도록 도움을 주는 도구를 개발함 쿠버네티스 설치 쿠버네티스 공식문서 v1.24 버전을 다룰 것이다. vagrant 디렉터리 생성 Vagrantfile 문서 내용 va
쿠버네티스 클러스터를 관리하는 동작은 대부분 kubectl이라는 커맨드라인 인터페이스로 실행할 수 있다. kubespary 같은 경우 kubectl이 같이 설치된다.자동완성 기능을 활성화 시켰기 때문에 kubectl (tab)(tab)를 해주면 사용가능한 서브 커맨드를
쿠버네티스 오브젝트 이해 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트이다. 쿠버네티스는 클러스터의 상태를 나타내기 위해 이 오브젝트를 이용한다. 구체적으로 말하자면, 다음같이 기술할 수 있다. 어떤 컨테이너화된 애플리케이션이 동작 중인지 (그리
ReplicaSet을 구성하는 Deployment가 현재 복제를 설정하는 데 권장되는 방법이다. ReplicationController 는 언제든지 지정된 수의 파드 레플리카가 실행 중임을 보장한다. 즉, 레플리케이션 컨트롤러는 파드 또는 동일 종류의 파드의 set이
파드 집합에서 실행중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이다.쿠버네티스를 사용하면 익숙하지 않은 서비스 디스커버리 메커니즘을 사용하기 위해 애플리케이션을 수정할 필요가 없다. 쿠버네티스는 파드에게 고유한 IP 주소와 파드 집합에 대한 단일 DNS 명
hostPath 볼륨은 호스트 노드의 파일시스템에 있는 파일이나 디렉터리를 파드에 마운트한다. 이것은 대부분의 파드들이 필요한 것은 아니지만, 일부 애플리케이션에 강력한 탈출구를 제공한다.네트워크 기반의 스토리지가 아니기때문에 네트워크를 넘어서서 있는 컴퓨팅 리소스에
디플로이먼트(Deployment) 는 파드와 레플리카셋(ReplicaSet)에 대한 선언적 업데이트를 제공한다. 또한 디플로이먼테는 쿠버네티스에서 상태가 없는(stateless)앱을 배포할 때 사용하는 가장 기본적인 컨트롤러이다.디플로이먼트에서 의도하는 상태를 설명하고
파드의 CPU와 메모리 자원을 할당하는 것을 조절한다.request, limit, limitrange, resource_quota가 있는데 req와 limit가 중요하다.파드를 지정할 때, 컨테이너에 필요한 각 리소스의 양을 선택적으로 지정할 수 있다. 지정할 가장 일
모든 쿠버네티스 클러스터의 진입점은 api-server이다. 사용자는 kubectl, 클라이언트 라이브러리 또는 REST 요청을 통해 API에 접근한다. 사용자와 쿠버네티스 서비스 어카운트 모두 API에 접근할 수 있다. 쿠버네티스는 일반적인 사용자 계정과 서비스 계정
HELM 쿠버네티스 패키지 매니저: 헬름 파일과 디렉터리를 압축해서 모아둔 것을 바이너리 릴리스로 헬름 설치 유닉스 계열에서 바이너리는 실행파일을 의미한다. 헬름은 소스 또는 미리-빌드된(pre-built) 바이너리 릴리스로 설치할 수 있다. 바이너리 릴리스로 헬름
윈도우 - client(kubectl 명령 이쪽으로 빼기) VM - 클러스터 서버1(api-server, 노드 3개) AWS EKS - 클러스터 서버2 스크립트는 자동화의 핵심역할이다. 윈도우에 kubectl 설치 및 설정 1 Git Bash 설치 다운로드 할때
네트워크 LoadBalance 서비스와 인그레스를 사용할 수 있게 해준다.AWS 로드 밸런서 컨트롤러 추가 기능 설치AWS Load Balancer Controller는 Kubernetes 클러스터의 AWS Elastic Load Balancer를 관리한다. 이 컨트롤
빌드용으로 ec2를 하나 생성한다. 이름: mybuild이미지: 우분투인스턴스 유형: t3 mediumkey pair 생성인터넷에서 HTTP 트래픽 허용스토리지: 40G코드를 개발자가 깃에 올린 다음부터빌드하고 도커이미지로 만들고 쿠버네티스에 배포하는 일을 할 줄 알아
여행관련 아이디어에서 타당성 , 차별점을 추가하고 구체화를 하여 아래와 같이 최종 아이디어를 도출해냈다.💡 서비스 명 : 구름 대학교 수강신청 서비스주제 : 학생들이 수강신청 기간에 각 학기마다 수강할 강의를 선택 하고 등록할 수 있는 온라인 서비스. 학생들은 이를
Front/back 개발을 담당하는 팀원도 이제 개발을 시작했기에 Front/back 실행파일이 존재하지 않는다. 따라서 개발자가 git에 push한 실행파일을 가지고 Jenkins가 테스트와 빌드를 거쳐 이미지를 생성해 Docker Hub에 넣어서 ArgoCD와 연동
현재 상태는 eks 클러스터가 만들어져 있는 상태이다. 이에 따라 eks용 vpc와 서브넷이 생성이 되어있다.RDS와 클러스터를 연동하는 목적은 서버 인스턴스와 DB 인스턴스를 분리하여 사용하기 위한 목적으로 AWS를 사용하는 핵심 이유이기도 할 것이다. 연동과정은 이
도커라이징이란 어떠한 기술이나 툴 보다는 개발자가 만든 코드를 테스트 & 빌드 해보고 도커 이미지로 만드는 과정을 말한다.이전까지 진행해서 전반적인 인프라구축은 마무리하였다. 추후에 필요한것이나 변경사항에 대해 추가로 구축할 예정이다.따라서 이번에는 개발자가 만든 테스
Route53과 External DNS를 이용하여 외부에서 클라이언트가 IP주소나 복잡한 로드밸런서의 주소를 입력하는 것이 아니라, 우리가 흔히 보는 도메인을 입력하여 서비스에 접근할 수 있도록 한다 .과정 1 . AWS Route53을 이용하여 도메인을 등록하고 호스
두개의 인스턴스(=노드)가 있고 각 인스턴스에는 서비스를 구현하기 위한 리소스들이 똑같이 배포되어 있다. 즉, 이중화 구현을 한것이고, 만약 인스턴스가 포함된 AZ OR 서브넷에 장애가 발생해도 로드밸런싱을 통해 다른 AZ OR 서브넷에 있는 인스턴스에 트래픽이 전달되
CI/CD 파이프라인 구축에 앞서 일단 지금까지 개발한 코드가 정상적으로 빌드되는지 테스트를 하기로 하였다.이전에 진행했던 백엔드 코드를 도커라이징한 과정을 그대로 실행하였다.개발자가 기능을 추가하는 과정에서 git에 새로운 디렉터리들을 추가하였었고, 처음에는 초기 개
Backend 파이프라인 구축 작업은 마무리한 상태에서 Frontend 도커라이징 테스트를 완료하였다. Frontend 파이프라인 구축 작업에 앞서 일단 생성한 Frontend 이미지로 배포한 웹과 Backend 서버가 연결이 잘 되는지 확인작업을 할 것이다.프론트엔드
1 파이프라인 코드 작성Jenkins를 이용해 파이프라인을 구축할 것이다. 우리 프로젝트는 front가 2개이기 때문에 admin 페이지 하나를 먼저 진행한 이후 나중에 user용도 구현할 예정이다. Jenkinsfile 작성에 앞서 플러그인관리에 들어가 NodeJS
User / Admin 페이지 경로 구분 이전 작업으로 3-tier 구성의 연결을 완료하였고, Frontend 부분에서는 Ingress의 다중경로를 사용하여 User 와 Admin페이지를 구분하였다. 또한 User, Admin, Backend의 파이프라인 구축도 완료한
이전 작업을 끝으로 전반적인 인프라 구축 및 CI/CD 파이프라인 구축작업은 종료되었다.User페이지에서 User가 수강신청중 동물이미지를 입력하면 어떤 동물인지 판독하는 서비스를 추가하였다.따라서 해당 ML Backend 코드 또한 가상환경에서 빌드테스트 해보고, 도
지난 작업까지해서 인프라 구성, CI/CD 파이프라인 구축, 서비스 테스트, 트러블 슈팅까지 완료하였다.마지막에 추가된 머신러닝 Backend 서버같은 경우에는 도커라이징까지만 하고 해당 이미지를 ArgoCD에서ML-deployment의 파드로 띄우기까지만 했다. CI