본문 바로가기

개발31

[EKS] Github Action과 ArgoCD로 CI/CD 파이프라인 구축 AWS EKS환경에서 쿠버네티스 클러스터를 생성하고 CI/CD 파이프라인을 구축합니다. CICD는 지속적통합 / 지속적배포라는 개념으로 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 서비스를 제공하는 방법입니다. 코드를 통합하고 배포하는 과정의 파이프라인을 통해 자동화할 수 있습니다. CI ( 지속적 통합) CI는 작성한 코드를 지속적으로 통합하는 방법입니다. 코드 변경이 발생할 때마다 자동으로 빌드 및 테스트를 수행하여 품질을 높이고 문제를 빠르게 감지할 수 있습니다. 개발자가 코드를 원격 코드 저장소에 push하면 원격 코드 저장소에서 코드를 가져와 유닛테스트 후 빌드를 진행합니다. 이 결과물을 다른 컴포넌트와 잘 통합되는지 확인합니다. CD (지속적 배포) 소프트웨어 .. 2024. 1. 24.
[EKS] 3티어 아키텍처 (RDS, Redis, 인그레스, tls, 도메인연결) AWS EKS를 이용하여 쿠버네티스 환경의 3티어 아키텍처를 구성합니다. 구성환경은 VScode를 사용합니다. 먼저, 로컬에서 kubectl 명령을 사용하기 위해 eksctl을 설치해야합니다. 아래 블로그를 참고하여 진행합니다. 04_AWS CLI와 PowerShell을 이용한 EKS 관리 오늘은 AWS의 Command Line Interface와 윈도우의 PowerShell을 이용한 EKS 관리 시간입니다. 당연히 AWS CLI v2 설치와 함께 kubectl, iam_authenticator 설치 및 kubeconfig 파일에 리전과 클러스터를 업데이트하는 작업 virtualtech.tistory.com 이제 쿠버네티스 클러스터를 생성합니다. 아래명령을 입력하여 노드 3개를 가지고 psy라는 키페어를.. 2024. 1. 8.
[k8s] 쿠버네티스 Service와 Deployment 기본적으로 쿠버네티스 매니패스트 파일을 통해 클러스터 내부의 애플리케이션의 네트워크 설정, 구성 등의 리소스를 작성하고 관리합니다. yaml 또는 yml 형식의 파일을 사용합니다. 쿠버네티스 클러스터의 구성에 대해서는 아래 글에서 다루고 있습니다. [k8s] 쿠버네티스 기초 쿠버네티스란? 쿠버네티스는 구글이 내부적으로 사용하던 컨테이너 클러스터 관리도구에서 아이디어를 얻어서 만든 오픈소스 소프트웨어입니다. 쿠버네티스는 컨테이너화된 애플리케이션의 parkkingcar.tistory.com Pod Pod은 쿠버네티스의 기본 배포 단위입니다. Pod은 하나 이상의 컨테이너를 묶은 단위로, 컨테이너들이 동일한 호스트에서 실행됩니다. Pod은 네트워크 네임스페이스, IPC 네임스페이스, 호스트 이름, 스토리지 리.. 2023. 12. 19.
[k8s] 쿠버네티스 기초 쿠버네티스란? 쿠버네티스는 구글이 내부적으로 사용하던 컨테이너 클러스터 관리도구에서 아이디어를 얻어서 만든 오픈소스 소프트웨어입니다. 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장을 관리하는 것을 자동화하기 위한 컨테이너 오케스트레이션 엔진입니다. 최근 도커를 비롯한 컨테이너 기술이 화두가 되면서 실제 서비스 환경에 컨테이너를 적용하는 사례가 늘어나는데, 도커 자체로는 여러 호스트 구성 또는 큰 규모의 서비스 환경에서 사용하는 시스템을 구축하기 어렵습니다. 그래서 쿠버네티스와 같은 컨테이너 오케스트레이션 엔진을 사용해 이러한 시스템을 구축합니다. 쿠버네티스에서 실제 컨테이너가 기동하는 노드는 쿠버네티스 노드라 하고, 그 쿠버네티스 노드를 관리하는 노드는 쿠버네티스 마스터라 합니다. 쿠버네티스(Kub.. 2023. 12. 19.
우분투에 도커, 도커컴포즈 설치 실행환경Ubuntu 22.04 Docker 설치방법 1. 우분투 시스템 패키지 업데이트sudo apt-get update2. 필요한 패키지 설치sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker의 공식 GPG키를 추가curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 4. Docker의 공식 apt 저장소를 추가sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_rele.. 2023. 12. 6.
[Linux] 사용자 관리와 파일 속성 Rocky linux 9 기준 사용자와 그룹 리눅스는 다중 사용자 시스템으로 아래 명령을 통해 사용자가 담긴 파일을 볼 수 있다 $ vi /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail.. 2023. 10. 19.
[Elasticsearch] 클러스터 구축하기 - 3 앞서 작성한 '클러스터 구축하기 - 1'을 기반으로, 시나리오를 통해 실제 클러스터를 구성할 때 고려해야 할 항목들을 알아보겠습니다. 엘라스틱서치는 클라이언트에 저장되는 로그를 장기간 모아 데이터를 분석/집계하는 분석 엔진으로 사용되거나, 검색에 쓰일 데이터를 저장하여 사용자의 검색 요청에 데이터를 제공하는 형태의 검색 엔진으로 서비스하는 것이 일반적입니다. 시나리오 #1 - 일 100GB 데이터 분석용 클러스터 첫번째 시나리오는 분석 엔진으로 엘라스틱서치 클러스터를 가정하는 시나리오입니다. - 시나리오 #1 : 하루에 100GB 정도의 데이터를 저장하면서 보관 기간이 한 달인 분석 엔진 클러스터 - 인덱스 이름 패턴 : elasticsearch-YYYY.MM.dd - 프라이머리 샤드 기준 하루에 색인되.. 2023. 8. 21.
[Elasticsearch] 클러스터 구축하기 - 2 앞서 작성한 '클러스터 구축하기 - 1'을 기반으로 직접 클러스터를 구축합니다. elasticsearch.yml와 jvm.options파일의 설정은 엘라스틱서치 8.9.1버전을 기준으로 작성하였습니다. 기본 값으로 구성된 elasticsearch.yml을 다중 노드 클러스터로 구성하는 방법에 대해 다루겠습니다. 클러스터 사용하기 단일 노드로 운영 중인 엘라스틱서치를 3대의 마스터 노드와 3대의 데이터 노드로 바꾸는 과정을 예시로 합니다. 먼저 모든 설정이 주석 처리 되어있는 elasticsearch.yml을 수정하지 않고 실행할 경우 단일 노드로 환경설정이 구성됩니다. 이때 클러스터의 이름은 기본값인 elasticsearch로 설정되기 때문에 일단 클러스터의 이름은 elasticsearch로 설정하여 파.. 2023. 8. 20.
[Elasticsearch] 클러스터 구축하기 - 1 클러스터 구축을 위해 엘라스틱서치 환경 설정 파일을 다루는 방법에 대해 알아보겠습니다. elasticsearch.yml와 jvm.options파일의 설정은 엘라스틱서치 8.9.1버전을 기준으로 작성하였습니다. 대부분의 설정이 주석으로 처리되어 있고, 해당 설정에 대한 간략한 설명이 주석으로 제공됩니다. 기본으로 제공되는 설정과 필수적으로 알아야 하는 여러가지 설정을 영역별로 살펴보겠습니다. elasticsearch.yml 설정 파일 elasticsearch.yml 파일은 엘라스틱서치를 구성하기 위해 기본이 되는 환경 설정 파일입니다. 아래 코드는 엘라스틱서치를 처음 설치했을 때의 기본 설정입니다. elasticsearch.yml # ======================== Elasticsearch C.. 2023. 8. 19.