2025 연말 회고
·
Experience
격변의 한 해 였다.졸업부터 취업 준비, 첫 정규직 입사, 첫 프로젝트 마무리 등 처음하는 것들이 많았다.많은 경험했고, 많은 사람들 만났다.직무적으로 성장하기 위해 많은 대외 활동, 세미나 참가, 커피챗 등 많이 노력했다. 1. KOSA 클라우드 엔지니어 양성과정 우수수료&대상2. 클라우드 엔지니어 정규직 입사3. 클라우드컴퓨팅 전공수업 일일 강사3. Devops 세미나 2회 참가4. Cloudclub 8기 활동 : 스터디, 네트워킹 행사5. Cloudclub 컨퍼런스 클클콘 서 클라우드 보안 주제 발표6. 첫 실무 프로젝트 수행 및 서비스 오픈 경험7. CKA 취득 학부생까지는 Infra 기술에 포커스가 맞춰져있었다면, 이번 한해는 Devops 키워드에 대해 탐구하고 학습해보려 노력했다.Devops는..
k8s 환경에서 batch 동시 작동 하지 않도록 하는 삽질기
·
Debug
백엔드에 배치가 함께있는 형태의 환경백엔드 pod는 2개가 떠있는 상황2개의 pod에서 동시에 실행되면 안되었음1개의 백엔드 pod 에서만 동작하도록 하는 방법 모색k8s에서 특정 pod이름으로 구분하여 배치를 동작하도록 하는 것은 어려워 보였음pod이름이 랜덤으로 생성되고 특정 1개의 pod중 어느것으로 동작할지 정해야하는 상황이었는데, k8s 환경 상 특정 pod에서만 돌도록 설정하는 것은 어려움이 있어보였음 -> statefulset 사용하면 되지 않을까?be-pod-0be-pod-1 statefulset의 네이밍은 순서대로 진행되니까 가능하지 않을까?0번에서만 배치가 돌도록?-> 0번이 죽으면 배치가 실패이중화 불가백엔드 실패 인지 배치 실패인지 확인하려면 일일이 로그 확인 필요결론 현실적으로 어..
413 Request entity too large : nginx 파일 업로드 용량 설정 (k8s ingress)
·
Debug
파일 업로드 기능 구현 후 업로드 진행 시413 Request entity too large 에러 발생# 해결 방법nginx.conf 에서 client max body size 관련 설정 진행 필요server { ... client_max_body_size 10M ...}BUT reverse proxy 서버의 nginx 설정을 진행했지만 동일한 문제 발생이유는 ingress도 nginx로 이루어져서 동일한 설정을 ingress에도 해주어야 했음# 해결 방법ingress yml에서annotations.nginx.ingress.kubernetes.io/proxy-body-size: 11M해결 완료
k8s cronjob으로 spring batch 작업 설정하기
·
DevOps
cronjob 사용주기마다 job 생성 -> pod 생성# 주기spec.schedule: "*/1 * * * *" -> 1분단위...배치마다 설정된 주기를 제대로 입력# Timezone 설정spec.timezone: "Asia/Seoul"배치는 지정 시간마다 동작함배치 설계시 어떤 시간을 기준으로 했는지에 따라 timezone 설정을 진행해줘야함사용하는 시스템의 기본 timezone이 UTC인지 KST인지 잘 확인하여 동일하게 설정해줘야 제대로 동작 가능기본 UTC# 중복 실행 방지spec.concurrencyPolicy: "Forbid"1분주기로 실행시켜야하는 배치가 있을 때 배치 실행 시간이 1분이상 걸리는 경우 발생 -> conflict 발생 concurrencyPolicy옵션으로 중복 실행 방지#..
K8s 에서 Client IP를 BE에 전달하기 : nginx ingress annotation 설정
·
Debug
X-forwarded-header 전달 옵션 설정 필요nginx.ingress.kubernetes.io/use-fowarded-headers: 'true'nginx.ingress.kubernetes.io/x-forwarded-for: $proxy_add_x_forwarded_forBUTSNAT 되면 client ip가 lb ip로 변경되어 진짜 client ip 알 수없음k8s cluster 환경 구성마다 다름 필자는 ingress 관련 expose가 nodeport 로 되어있고 lb를 사용하는 환경이므로 해결안되었음참고barisein.tistory.com/999sawaca96.tistory.com/18findstar.pe.kr/2021/08/22/nginx-ingress-controller-use-fo..
대상 서버의 특정 포트 열려있는지 확인하는 방법 (컨테이너 환경)
·
OS
기업 내부 폐쇄망 환경에서는 방화벽에 포트 오픈 요청을 진행한 뒤, 실제로 해당 포트가 열렸는지 확인하는 과정이 꼭 필요하다.특히 Kubernetes Pod 내부 컨테이너에서 포트 체크가 필요한 경우가 많았다. 다른 명령어들은 그래도 경험이 있지만,특히 pod 안의 컨테이너 환경에서 특정 포트가 열렸는지 확인하는 방법은 이번에 처음 접하게 되어 잊지 않도록 정리해본다. 1️⃣ Telnettelnet telnet 패키지 설치 필요접속 성공 시 검은 화면이 나타남종료: Ctrl + ] → quit 2️⃣ Netcat (nc)nc -v -z 단순하고 빠르게 포트 열림 여부 확인 가능-z: 데이터 전송 없이 스캔만 수행-v: 상세 출력 3️⃣ Bash /dev/tcpecho > /dev/tcp// && ec..