본문 바로가기

개발중/Kubernetes (k8s)

(4)
Spring Boot vs Fluentd vs ElasticSearch ✨ 구성 요소 Spring Boot Pods 여기서 실행되는 애플리케이션 로그를 생성합니다. DaemonSet Fluentd Kubernetes 클러스터의 각 노드에 Fluentd를 실행하여 로그를 수집합니다. 이는 각 노드에 자동으로 배포되어 노드에 생성된 로그를 수집하는 역할을 합니다. 로그 전송 Fluentd는 수집한 로그를 Elasticsearch로 전송합니다. Elasticsearch Fluentd로부터 수신한 로그 데이터를 저장하고 인덱싱하여 검색이 가능하게 만듭니다. LogStash 와 Fluentd 중에서 Fluentd 를 선택한 이유 경량성 Fluentd는 Ruby와 C로 작성되어 있어 리소스 사용이 더 효율적일 수 있습니다. 반면, Logstash는 JRuby로 작성되었고 JVM 위에서 실..
Docker / k8s 환경에서 cookie (JSESSIONID) 가 발급되지 않았을 때 해결 방법 ( server.xml Alias 추가로 해결 ) 기존에 일반 서버에서 관리되던 웹을 k8s 에 업로드 해야하는 일이 생겼습니다. 대상 프로젝트는 Spring Core 프로젝트로써 Spring Boot 기반 프로젝트 들과 쿠키 설정하는 방식도 달랐습니다. 문제 1 로그인 관리를 JSESSIONID 쿠키를 사용하여 관리를 하는데, JESSEIONID 가 발급되지 않는다 (?) Api 요청은 정상적으로 이뤄지나 쿠키 발급이 되지 않았다. 정리 1 프로세스들을 아래와 같이 정리해봤습니다. 각각의 파드가 로딩 될 때는 localhost 로 로딩이 되어야 합니다. ( 외장 톰캣이므로 server.xml 에 host 를 적어줘야함 ) 후에 생성된 pod 들에게 접근 할 수 있는 service 를 생성하고 istio 를 이용해 service 에 접근할 수 있는데 이..
Dockerfile Build 에러 (jdk 버전 문제) 이슈 Local 에서는 maven clean > maven install 잘 되나 Docker 로 빌드시 Failure 발생 16.91 [INFO] Changes detected - recompiling the module! 16.92 [INFO] Compiling 99 source files to /root/sources/target/classes 16.92 [INFO] ------------------------------------------------------------------------ 16.92 [INFO] BUILD FAILURE 16.92 [INFO] ------------------------------------------------------------------------ 16..
쿠버네티스의 여정 전통적인 배포 시대 초기 조직은 애플리케이션을 물리 서버에서 실행했었다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생했다. 예를 들어 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있고, 결과적으로는 다른 애플리케이션의 성능이 저하될 수 있었다. 이에 대한 해결책은 서로 다른 여러 물리 서버에서 각 애플리케이션을 실행하는 것이 있다. 그러나 이는 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않았으므로, 물리 서버를 많이 유지하기 위해서 조직에게 많은 비용이 들었다. 가상화된 배포 시대 그 해결책으로 가상화가 도입되었다. 이는 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM..