본문 바로가기
728x90

전체 글424

당신의 첫 프로젝트를 위한 스프링 시큐리티(6) - 로그인 시 JWT 발급과 redis 저장 구현하기 📌 이번 글에서는 지난 시간에 이어 로그인 시 jwt를 발급하여 응답 헤더에 싣고, 토큰을 redis에 저장하는 과정을 구현해 보겠습니다.🤗 저의 스프링 시큐리티 구현은 아래와 같은 시나리오를 기준으로 합니다.- 프론트 엔드와 백엔드가 나뉘어 진행되는 프로젝트를 기반으로 하여 스프링 시큐리티 설정에서 로그인 페이지에 대한 설정을 따로 하지 않음- JWT 토큰 인증 방식을 사용함- 토큰 관리에 redis를 이용함 🙉 이전 글 보기첫 번째 글부터 정독하시면 보다 쉽게 이해하실 수 있습니다!https://suzuworld.tistory.com/438 - 당신의 첫 프로젝트를 위한 스프링 시큐리티 톺아보기이전 글https://suzuworld.tistory.com/446 - JwtTokenizer와 Red.. 2025. 3. 9.
당신의 첫 프로젝트를 위한 스프링 시큐리티(5) -JwtTokenizer와 Redis 클래스 작성하기 📌 이번 글에서는 지난 시간에 이어 JwtTokenizer와 Redis 클래스 생성하여 jwt 발급과 redis에 토큰을 저장하는 과정에 대한 준비를 해보겠습니다.🤗 저의 스프링 시큐리티 구현은 아래와 같은 시나리오를 기준으로 합니다.- 프론트 엔드와 백엔드가 나뉘어 진행되는 프로젝트를 기반으로 하여 스프링 시큐리티 설정에서 로그인 페이지에 대한 설정을 따로 하지 않음- JWT 토큰 인증 방식을 사용함- 토큰 관리에 redis를 이용함 🙉 이전 글 보기첫 번째 글부터 정독하시면 보다 쉽게 이해하실 수 있습니다!https://suzuworld.tistory.com/438 - 당신의 첫 프로젝트를 위한 스프링 시큐리티 톺아보기이전 글https://suzuworld.tistory.com/442 - 로그인.. 2025. 3. 6.
Linux에서 CPU 과부하를 일으키는 의문의 프로세스 추적하기(Docker 공식 이미지 내 멀웨어, kdevtmpfsi) 몇 주 전부터 테스트 서버에 설정해 놓은 CPU 사용량 알람이 불규칙하게 발생했다.이 알람은 CPU 사용량이 5분간 90% 이상일 때만 전송되도록 설정한 것이었는데 사용량이 아예 없는 새벽에도 뜬금없이 메일이 오기도 했다.최근에 잦아진 느낌이 들어 리눅스 명령어를 통해 원인을 파악해 보았다. 🛠️  top 명령어 실행$ top# 출력문 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND .. 2025. 2. 16.
Kubernetes ImageGCFailed, FreeDiskSpaceFailed 원인 생각 해보기(쿠버네티스 가비지 컬렉션) 🚨 Error # 출력...Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- NetworkUnavailable False Mon, 06 Jan 2025 11:16:31 +0000 Mon, 06 Jan 2025 11:16:31 +0000 Fl.. 2025. 1. 24.
kubernetes node : kubelet has disk pressure 해결 방법 총정리(pod status evicted, Attempting to reclaim ephemeral-storage) 지난 글에서 워커 노드의 디스크 가용량이 부족하여 해당 노드에 Pod를 스케줄링할 수 없는 문제에 대한 이슈를 정리했다. 현재 사내에서 사용 중인 쿠버네티스는 클라우드 내에서 작동 중이며 디스크 용량 부족 이슈는 이미 해결되었다.이와는 별개로 기존에 사용하던 On-premises 서버에서는 지속적으로 Pod가 Evicted 되는 문제가 발생하고 있었다.Evicted 되었다는 얘기는 파드가 노드로부터 축출되었다는 뜻이다.drain 명령어로 고의적으로 축출하지 않는 이상 무언가 문제가 생겨 자동으로 축출된 것이다.결론부터 이야기하면 이것 역시 디스크 용량 문제였다.해당 서버의 쿠버네티스는 클라우드로 마이그레이션이 완료되어 더 이상 사용되지 않지만 추후에 급하게 사용할 일이 있을 때를 대비하여 문제를 해결해놓.. 2025. 1. 17.
😡 1 node(s) had untolerated taint(node.kubernetes.io/disk-pressure:)의 원인 파악과 해결 🚨 Error : 🚨 Pod를 여러 개 띄우고 테스트하는 도중에 새 Pod를 생성하자 Pending 상태가 지속되다가 한참 지나서 Running으로 변경되는 상황이 발생했다.Pod에 문제가 발생하여 Running 상태가 되지 못하면 아래 명령어로 Pod의 Event를 확인할 수 있다. $ kubectl describe po # 출력...Warning FailedScheduling 6m21s default-scheduler 0/2 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }, 1 node(s) had untolerated taint {node.kubernetes.io/di.. 2025. 1. 15.
Docker image -> Containerd image로 변환하는 방법 📌 Kubernetes에서 컨테이너 런타임으로 도커를 더 이상 지원하지 않기 때문에 Containerd의 이미지를 사용해야 했다.그러나, Containerd에서는 이미지를 직접 빌드하는 기능이 없다. 따라서 다른 방법을 사용해야 하는데 pod가 사용할 이미지의 출처로  docker private registry를 사용하는 방법이 있다.나는 보다 간단한 테스트를 위해 Docker의 이미지를 Containerd 이미지로 변환하여 사용했다.🥸참고로 마스터노드가 아닌 워커노드에서 수행해야 한다. Pod가 실행되는 노드가 워커노드이기 때문이다.(이미지 참조 시 워커 노드 내 containerd 이미지를 사용하도록 함.)또한, pod를 생성할 yaml 파일 내 직접 만든 이미지를 사용할 것이므로 imagePul.. 2025. 1. 7.
😡 kubernetes coredns | HINFO: read udp xxx read: no route to host 관련 해결(파드 내부에서 외부 연결 실패) 🚨 Error :$ k get po -ANAMESPACE NAME READY STATUS RESTARTS AGEkube-flannel kube-flannel-ds-xxxxx 1/1 Running 0 52skube-flannel kube-flannel-ds-xxxxx 1/1 Running 0 52skube-system coredns-xxxxxxxxxx-xxxxx 1/1 Running 0 8m57skube-system coredns-xxxxxxxxxx-xxx.. 2025. 1. 6.
728x90