썸네일 [logback/k6] Rolling File Appenders 샘플 및 k6 테스트 Rolling File AppenderWhat is Rolling?로그 파일을 관리하는 데 사용되는 기능로그 파일의 크기나 시간에 따라 새 파일로 롤링(전환)하도록 설정하는 방법이다. How to use Rolling Appenders?[root@]$ cat logback.xml ${LOGS_ABSOLUTE_PATH}/online/app_${변수명}.log [%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%logger{36}:%line] - %msg%n ..
썸네일 [카프카/스프링부트] Kafka On Docker(WLS2/Window) + SpringBoot 샘플코드 카프카What is Kafka?분산 스트리밍 플랫폼으로, 실시간 데이터 스트리밍과 처리에 특화된 오픈소스 소프트웨어다. 카프카의 주요 개념Producer: 데이터를 생성하여 카프카로 보내는 애플리케이션Consumer: 카프카에서 데이터를 읽어가는 애플리케이션Broker: 데이터를 저장하고 관리하는 서버. 카프카 클러스터를 구성하며 분산 처리의 핵심Topic: 메시지를 분류하여 저장하는 논리적 공간. Producer는 특정 Topic에 데이터를 보낸다. 카프카의 주요 기능메시지 큐 역할데이터(메시지)를 특정 순서로 안전하게 저장 및 전달한다.Producer가 보낸 메시지를 Consumer가 처리한다. 분산 시스템여러 Broker로 구성된 클러스터 형태로 동작해 높은 가용성과 확장성을 제공한다.장애 발생 시..
썸네일 [쿠버네티스] 자원 기반 접근법, 명령 기반 접근법 출처Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy) 접근법두 가지의 접근법애플리케이션 배포 및 관리 방식과 관련이 있는 자원 기반 접근법(Declarative Approach)과 명령 기반 접근법(Imperative Approach)이다. 자원 기반 접근법(Declarative Approach)상태를 정의하는 방식YAML 파일을 사용하여 배포 설정을 정의하고, kubectl apply -f deployment.yaml 명령어로 적용하는 방식 선언적 방식은 변경된 상태를 쉽게 추적하고, 자동으로 복원할 수 있어 안정성이 높..
썸네일 [GitLab] Group Access Token Group Access ToeknWhat is Group Access Token?GitLab 그룹 레벨에서 인증을 수행할 수 있는 토큰이다.특정 그룹에 속한 리포지토리나 기타 리소스에 대한 액세스를 제어할 수 있다.GitLab API를 사용하기 위해 발급되는 토큰이다. Group Access Token(이하 GAT)의 특징GAT는 Group에서 role:50인 User만 발급할 수 있다.GAT생성 API의 expires_at속성(만료일자/UTC)이 필수값이 된 것은 GitLab 16.0에서 도입되었다.(최대 365일이후까지 지정 가능)그룹멤버추가는 Owner만 가능하다.프로젝트 및 하위그룹생성은 권한 설정에 따라 다르다. Group Access Token API#그룹액세스토큰 생성[root@]$ curl..
썸네일 [쿠버네티스] 네임스페이스 출처Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy)namespaceWhat is namespace?클러스터 내에서 리소스를 논리적으로 분리하는 방법이다. namespace의 특징리소스 격리: 각 namespace안에서 리소스들이 격리되어 다른 namespace에서 같은 이름의 Pod나 Service가 동시에 존재할 수 있다.리소스 할당 및 쿼터 관리: namespace단위로 리소스를 할당하고, 특정 namespace에 대해 ResourceQuota를 설정하여 사용량을 제한할 수 있다. (CPU, 메모리 등)보안 및 접근 ..
썸네일 [쿠버네티스] 서비스 출처Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy)SERVICESWhat is Service?앱 안팎의 다양한 구성 요소 간의 통신을 가능하게 한다.Pod와 Pod 또는 Pod와 사용자를 연결한다. 사용자가 Pod에 배포된 웹 앱에 접근하는 과정사용자가 웹 브라우저 또는 API를 통해 웹 애플리케이션에 요청을 보낸다.요청이 외부 IP주소를 통해 클러스터의 LB로 전달된다. LB는 요청을 Service로 전달한다.LB 또는 NodePort를 통해 전달된 요청은 클러스터 내의 특정 Service로 라우팅 된다. Service..
썸네일 [쿠버네티스] ReplicaSet 출처Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy)ReplicaSetWhat is ReplicaSet?쿠버네티스에서 특정 갯수의 Pod를 항상 유지하도록 보장하는 리소스  ReplicaSet의 필요성Stateful: 지정된 수의 Pod를 유지하기 위해 현재 상태를 지속적으로 모니터링하고 조정한다.AutoScailing: App의 요구에 따라 Pod의 수를 조절할 수 있어, 리소스의 활용도를 극대화하고 운영비를 절감할 수 있다.롤링업데이트: 새로운 버전의 Pod를 생성하고 기존의 Pod를 점진적으로 교체하는 롤링업데이트를 ..
썸네일 [도커] localhost 접근 실패 오류 해결 hostsWhat is hosts?호스트 이름과 IP 주소 간의 매핑을 정의하는 파일이다.DNS 서버를 사용하지 않고도 네트워크에서 호스트 이름을 해결하는 데 사용된다. localhost 접근 실패 이유Docker Container를 자주 삭제하거나 기동할 때 hosts 파일이 꼬이면서 접근이 불가능하게 된다.실제로 http://127.0.0.1로는 접근이 가능하나 http://localhost 접근이 불가능한 경우가 발생하게 된다. 에러 해결 방안hosts 파일을 열어 127.0.0.1에 매핑된 값들을 확인한다.컨테이너 외부 접근 url에 매핑된 값 또는 127.0.0.1에 관련된 값들을 삭제 후 저장한다.localhost로 접근이 가능한지 확인한다.#hosts 파일을 열어 127.0.0.1에 매핑된 ..
썸네일 [Git] Svn To Git 마이그레이션 샘플소스 authors-fileGit사용자와 SVN사용자 매핑git svn 명령어에서 사용되며, SVN 커밋의 작성자 정보를 Git 형식으로 변환할 때 사용자 매핑을 정의하는 파일을 지정한다. 매핑파일생성#authors-file 생성[root@]$ vi authors-file.txt#SVN사용자와 Git 사용자정보 매핑user1 = user1 user2 = user2 ...SVN Checkoutgit svn 명령어Git과 SVN 간의 상호작용을 지원한다.SVN을 Git으로 clone 또는 Git에서 SVN으로 Push할 수 있다. git svn 명령어 샘플#SVN Repo를 Git Repo로 Clone[root@]$ git svn clone {SVN Repo IP:PORT/svnRepo} --authors-fil..
썸네일 [오픈소스] Istio IstioWhat is Istio?클라우드 네이티브 애플리케이션의 서비스 메쉬를 구축하기 위한 오픈 소스 플랫폼이다.Istio의 핵심은 Service 로 가는 모든 통신의 경로를 통제하고 모니터링하는 것이다.출처: https://istio.io/latest/about/service-mesh/ Istio의 주요기능트래픽 관리: 서비스 간의 트래픽 흐름을 제어하고, Routing, LB, Timeout 등의 정책을 설정할 수 있다.보안: 서비스 간의 통신을 암호화하고, 인증 및 권한 부여를 지원하여 보안을 강화할 수 있다.모니터링 및 로깅: 서비스의 성능을 모니터링하고, Metry, Log, Tracing을 수집하여 문제를 진단할 수 있도록 돕는다.서비스간의 분리: 네트워크와 애플리케이션의 복잡성을 줄여주어..
썸네일 [쿠버네티스] ETCD 출처Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy) ETCDetcd?분산 시스템에서 데이터를 저장하고 관리하기 위한 고가용성 키-값 저장소주로 Kubernetes와 같은 클라우드 네이티브 애플리케이션에서 구성 정보를 저장하는 데 사용된다Replicated state machine(RSM)Replicated state machineRSM분산 시스템에서 상태를 복제하여 일관성을 유지하는 방식 다수의 노드가 클러스터를 구성하고 있는 상황에서 일부 장애가 발생하더라도 전체 시스템은 문제 없이 동작할 수 있도록 작동한다Kafka의..
썸네일 [쿠버네티스] Container Runtime Interface (CRI) Container Runtime InterfaceCRI?kubelet과 여러 컨테이너 런타임을 연결해주는 표준 인터페이스주요기능컨테이너 생성 및 관리컨테이너 이미지의 Pulling 및 관리 기능컨테이너 로그에 접근할 수 있는 기능컨테이너의 성능과 리소스 사용 정보를 추적하는 기능 구성요소kubelet: CRI를 통해 컨테이너 런타임과 상호작용한다컨테이너 런타임: 컨테이너를 실행하고 관리한다cri-api: 컨테이너 런타임과 kubelet간의 통신을 위한 api다 장점유연성: 다양한 컨테이너 런타임을 지원하여, 클러스터 환경에 맞는 최적의 런타임을 선택할 수 있다모듈화: 쿠버네티스의 핵심 구성 요소와 컨테이너 런타임이 분리되어 있어, 런타임의 교체가 쉽다표준화: 컨테이너 런타임과의 통신을 표준화하여, 여러 ..