본문 바로가기

전체 글

(69)
Kubernetes 외부 Ceph 스토리지(CSI) 연동 쿠버네티스 클러스터에는 이미 Longhorn 스토리지가 구축되어 있었지만,별도로 운영 중인 외부 Ceph 클러스터를 Kubernetes에 연동해보는 작업을 진행하게 되었다. Ceph는 블록(RBD), 파일(CephFS), 오브젝트(RGW) 스토리지를 제공하지만이번 글에서는 Kubernetes와 가장 많이 연동되는 Ceph RBD(Block Device)를 기준으로 설명한다. 1️⃣ 외부 Ceph 클러스터 정보 준비# Ceph FSID 확인 -- Ceph 클러스터 고유 IDceph fsid# MON 노드 확인ceph mon stat # output 예: 3 mons at 10.10.200.11:6789,10.10.200.12:6789,10.10.200.13:6789# Pool 목록 확인ceph osd..
쿠버네티스 - too many open files 에러 보호되어 있는 글입니다.
Swap 메모리 ( 도커 서버 다운 현상 ) 램 4기가 t3 small 에 도커 컨테이너 2개 가동하였더니 서버가 며칠에 한번 다운되는 현상 발생디스크 일부를 가상 메모리 처럼 사용하는 swap 메모리 설정후 서버 안정화서버 램과 동일한 크기로 설정하였다. 1. Swap 파일 생성 (예: 4GB) sudo fallocate -l 4G /swapfile또는 sudo dd if=/dev/zero of=/swapfile bs=1M count=40962. 권한 설정sudo chmod 600 /swapfile 3. Swap 영역으로 초기화sudo mkswap /swapfile 4. Swap 활성화sudo swapon /swapfile 5. 재부팅 후에도 유지되도록 /etc/fstab에 아래 내용 추가/swapfile none swap sw 0 0 free..
[Docker]compose 운영서버 배포 기존 배포 계획톰캣 + Redis 환경 구성  Redis 연동을 위한 라이브러리를 추가하고 설정 파일을 컨테이너화 하기위해 Dockerfile작성 프로젝트 소스 코드 포함한 이미지 빌드 및 전송애플리케이션 소스 코드가 포함된 이미지를 tar 파일로 변환하여 SFTP로 전송 후 배포최종 배포 운영 방식톰캣 + Redis 환경 구성 유지소스 코드 마운트 방식 적용간단한 코드수정에도 이미지 전체를 다시 빌드해야 하고 그걸 또 tar파일로 만들고 SFTP로 옮기는 과정이 귀찮다고 생각되어이미지 재빌드 없이 적용 가능하도록 변경Docker Compose 도입볼륨 마운트, 네트워크, 환경 변수까지 설정하려다 보니 docker run 명령어가 길어지고, 운영 중 장애가 발생했을 때 바로 대응하기 어려울것 같기 때문이..
[CI/CD] maven ,ssh ,gitea 프로젝트 Jenkins 배포 초기 설정 Jenkins 관리 > Plugins > Available pulgins 에서 플러그인 설치 1. Gitea  - Gitea  : Gitea에서 소스코드를 가져옴 2. Maven integration- Jenkins에서 Maven을 사용하여 프로젝트를 빌드할 수 있게 해주는 플러그인.- Maven을 설정하여 빌드 과정, 의존성 관리 등을 Jenkins 파이프라인에서 자동화 3. Publish Over SSH  - Jenkins에서 원격 서버로 파일을 전송하고 SSH를 통해 원격서버에서 명령어를 실행할 수 있는 플러그인 4. OpenJDK-native-plugin 혹은 Oracle Java SE Development Kit Installer Plugin- 프로젝트마다 요구되는 jdk버전이 다를수..
[Docker] 설치 (+jenkins) 📌설치 계기EC2에서 젠킨스 서버 운영 예정기존 운영 서버를 마이그레이션하여 도커 이미지로 배포 계획 전 도커 경험 📌절차1. 패키지 업데이트 및 필수 패키지 설치sudo apt-get updatesudo apt-get install apt-transport-https ca-certificates curl software-properties-common -yapt-transport-https : HTTPS를 통해 패키지를 다운로드ca-certificates : SSL 인증서 관리 (Docker 공식 저장소 인증서 신뢰)curl : URL 데이터 가져오는 도구 (Docker GPG 키 다운로드)software-properties-common : 저장소 관리 유틸리티 (Docker 저장소 추가 필요)2...
[Spring Boot]테스트 코드 @Test : 테스트용 메소드를 표현하는 어노테이션@BeforEach : 각 테스트 메소드가 시작되기 전에 실행되어야 하는 메소드를 표현@AfterEach : 각 테스트 메소드가 시작된 후 실행되어야 하는 메소드를 표@BeforAll : 테스트 시작 전에 실행되어야 하는 메소드를 표현 (static 처리 필요)@AfterAll : 테스트 종료 후에 실행되어야 하는 메소드를 표현 (static 처리 필요)@Disabled : 테스트를 실행하지 않  주요 어노테이션 @SpirngBootTest - 통합 테스트 용도로 사용- @SpringBootApplication을 찾아가 하위의 모든 Bean을 스캔하여 로드함- 그 후 Test용 Application Context를 만들어 Bean을 추가하고, MockBe..
JSTL forTokens 서버 오류 (1.1.2 버전 -> 1.2.5 버전) 에러 : The method setItems(String) in the type ForTokensTag is not applicable for the arguments (Object) 최근 운영서버 이관 후 forTokens를 사용할 수 없다고 에러가 뜸로컬이나 다른 운영중인 사이트는 잘되고 다른 표현식에서는 별 이상이 없는데 forTokens 에서 만 해당증상이 나타났다. javax 패키지가 jakarta 형태로 변경해줘야하는 건  tomcat 10 이상 사용중일때 해당하는 방법같고프로젝트 대부분은 8.5버전을 쓰고 있음 기존 jstl 버전  해결 ( 버전 업그레이드 1.1.2 -> 1.2.5)1. WEB-INF/lib 안에 수동으로 라이브러리 파일을 넣어준다.taglibs-standard-impl-1..