Keep a record in order not to do the same thing

Category Knowledge

[Kubernetes] Helm을 이용한 안정적인 MongoDB 구축

기존에 MongoDB를 외부에 두고 접근을 하는 형태로 구성을 하였는데, Kubernetes 적극 활용하고 싶다는 생각에 Helm을 이용하여 Kubernetes cluster에 MongoDB를 구축하게 되었다. 사용한 chart는 Bitnami에서 제공해는 것으로 다음의 chart를 이용했다. https://github.com/bitnami/charts/tree/master/bitnami/mongodb Architecture의 경우 scale in/out을 할 수 없는 standalone과 여러개의 pod을… Continue Reading →

[Kubernetes] CKAD (Certified Kubernetes Application Developer) 취득

3월 달에 CKA를 취득 하면서, 운영과 내부 동작 등의 측면에서 많은 것을 배웠다. 이후에 개발자 입장에서 Kubernetes를 어떻게 사용할지에 대해 좀 더 알고 싶다는 생각을 하게 되어 CKAD를 준비하였다. CKA를 취득해서 그런지 준비 과정에 있어서 여유가 있었고, 실제로 시험 난이도도… Continue Reading →

[Kubernetes] Ngrinder 구축

사내 공용으로 구축되어 있는 Ngrinder를 Kubernetes로 이전하는 작업을 하였다. 버그인지 유저불량인지 간혹가다 컨트롤러가 멈추거나 에이전트가 정상 동작을 못하는 경우가 있었는데, 부하 테스트 용도로 사용되는 툴이므로 크리티컬 하지 않아 단순 재시작을 해줘왔다. Kubernetes로 이전하면서 발생되는 장점은 liveness를 통해 컨트롤러가 멈추면 자동… Continue Reading →

[CDN] User Agent 이슈

특정 User Agent 헤더 필터링 이슈 필터링 값인 JCE가 포함된 문자열이 UA로 들어와서 정상적인 UA가 필터링 되는 경우가 발생하였다. 넘어온 UA 값은 Dalvik/2.1.0 (Linux; U; Android 10; M2004J19C MIUI/V11.0.7.0.QJCEUXM)로 샤오미 기기에서 붙어오는 UA 헤더이다. 해결책 웹스캐너의 타겟은 일반적으로 CDN의 캐싱된… Continue Reading →

[Kubernetes] 작업을 좀 더 손쉽게 하기 위한 명령어 모음

Kubernetes 클러스터에서 Pod, Deployment, DaemonSet 등 매번 생성을 하려면 yaml 스켈레톤 파일이 필요했는데 이러한 문제를 해소해주는 명령어가 있다는걸 알고 매우 반가웠다. 찾아보면 이것 뿐만 아니라 추가적으로 나올 것 같아서 발견할 때마다 이 글에 추가해 나갈 예정이다. 기본적으로 다음 사이트를 많이… Continue Reading →

[Git] 자주 사용하지만 매번 구글링을 해서 시간 낭비가 되는 명령어 정리

신규 서비스 출시를 위해서 사용하던 Git 커밋을 정리하던 도중 자주 사용하지만 매번 까먹어서 구글링을 하게 되는 명령어를 정리하자는 마음으로 글을 작성하게 되었다. 이번 출시의 프론트엔드를 혼자서 구현한 만큼 협업을 위한 신경을 쓰지 않았기 때문에 커밋이 매우 지저분하여 정리할 것이 많았다…. Continue Reading →

[Docker] 자주 사용하는 명령어 정리 및 애매한 개념 해소

사내에 구형 배포 시스템인 Webistrano를 해당 서버가 위치한 상면과 유지보수 등의 이슈로 인해 EOL되면서 철거 일자를 잡아놓았는데, 한 서비스팀에서 아직 신규 배포 시스템 준비가 안되어서 급하게 철거 대상과 별도로 Webistrano 띄워 달라는 요청이 왔다. Webistrano 바라보던 데이터베이스는 철거 대상이 아니어서… Continue Reading →

[CDN] Cache Poisoning

문제점 CDN 서버를 운영 중에 요청 헤더를 응답 헤더에 포함시키는 오리진이 존재 했습니다. 이 경우 발생할 수 있는 문제점은 Content-Disposition ‘attachment; filename=”hack.exe”와 같은 헤더를 요청 헤더에 포함 했을 때입니다. 일반적인 웹 구성이라면 상관이 없지만 해당 컨텐츠를 캐싱하는 경우 다음과 같이… Continue Reading →

Load Average에 대한 분석과 문제점 유추하기

Load average란 실행 가능한 상태거나 중단 불가능한 상태에 있는 process의 평균 개수를 의미합니다. 실행 가능한 process란 현재 cpu를 사용하거나 사용을 위해 대기 중인 process고, 중단 불가능한 process는 I/O 접근을 기다리고 있는 process입니다. Load average의 확인은 uptime 명령어를 통해 할 수… Continue Reading →

[Kubernetes] Service

기본개념 Pod은 존재하는 동안 생성과 소멸을 반복합니다. 생성 할 때마다 IP 정보와 이름이 바뀌어서 추적하는데 어려움이 있습니다. 따라서, 변화하는 pod에 접근하기 위한 interface가 필요했고, 이것이 바로 service입니다. ( 대부분의 예제는 Kubernetes in Action의 내용을 활용하였습니다. ) Service가 생성되면 ClusterIP라는 것이… Continue Reading →

« Older posts

© 2019 Jinn