All Posts

  • Published on
    OpenTelemetry collector를 사용하여 tracing과 logging을 같이 하는 것을 검토하였다. Kubernetes와 멀어져 있던 사이에 OpenTelemetry 커뮤니티가 엄청나게 성장한 것을 깨닫게 되었다. Log에 traceID를 남기고 그걸로 Tracing 정보를 볼 수 있도록 구성했고, Grafana 하나에서 통합적으로 볼 수 있도록 Loki와 Tempo를 Exporter로 사용했다. 아직 Python과 Nodejs에서는 Log쪽의 상태는 Development나 Experimental이기 때문에, receiver에서 filelog를 사용하여 Kubernetes log file을 fluentbit처럼 tail해서 가져오고 traceId를 log에 넣어주는 instrument libary를 사용했다.
  • Published on
    Vault의 secret engine을 사용하여 네이버 클라우드의 임시 인증키를 발행하고 싶었다. 네이버클라우드는 AWS, Azure처럼 builtin plugin으로 제공하지 않는다. 하지만 custom secret engine을 vault framework SDK를 통해서 쉽게 만들 수 있다. 네이버 클라우드에서 STS API를 제공하기 때문에, custom secret engine을 통해서 임시 인증키를 발행하는 것을 테스트 해보게 되었다. 처음에 구조를 이해하는데 좀 시간이 걸렸지만, Vault Tutorial에서 친절하게 설명하고 있어서 비교적 쉽게 만들 수 있었다.
  • Published on
    GitOps에서 Secret을 어떻게 관리할지 고민을 하였고, 개발자들의 인지부하를 줄이기 위해서 Vault UI로 자신의 앱의 비밀값을 관리하는 것이 제일 효율적이라는 판단을 했다. Vault secrets operator가 GA로 공유가 되었고, Secrets Store CSI나 External secrets 프로젝트보다 깔끔한 방식이라는 생각이 들었다. Vault secrets operator의 CRD로 vault secret과 kubernetes secret의 sync를 맞추고, reloader로 secret이 변경되었을 때 다시 pod를 배포하는 것을 테스트해보았다.
  • Published on
    AWS Cloudformation에서 Secret Manager의 값을 참조하도록 할 수 있다. AWS SAM을 사용하여 배포된 Lambda의 환경변수가 Secret Manager의 값을 참조하는 경우가 있었다. 그런데 Secret manager의 값을 변경하여 다시 배포하여도 변경된 값이 Lambda 환경변수에 반영이 되지 않았다.🧐 AWS SAM의 리포에 관련된 Issue가 있었고, 제안한 해결방법을 적용하였다. 살짝 삽질을 했기 때문에 기록을 남겨 본다.🤪
  • Published on
    Kubernetes cluster에서 Nginx로 허용 가능한 IP를 설정하고 싶었다. 간단하게 끝날 줄 알았던 작업은 또다른 삽질기가 되었다.😭 Kubernetes에서 SNAT이 되는 과정을 이해하고 externalTrafficPolicy를 Local로 설정했다. 그리고 External Load balancer에서는 client IP를 전달하기 위해서 Proxy Protocol와 같은 것을 설정하고, Nginx에서 그 Proxy protocol로 전달된 IP address로 Access control을 할 수 있도록 설정하였다.
  • Published on
    CNAME flattening이 어떻게 작동하고, 왜 사용하게 되었는지 이해하게 되었다.
  • Published on
    책 "유난한 도전"를 시간 가는 줄 모르고 재미있게 읽었다. 토스의 초기부터 최근까지 겪었던 우여곡절과 그 속에서 만들어낸 성공 스토리들을 읽으면서, 내 가슴에 뭔가 꿈틀꿈틀 거리는 열정과 흥분을 느꼈다. 또 다시 주도적인 변화를 만들어내고 싶다는 열정을 가지게 된 것과 동시에 나는 그러한 치열함과 멋진 커리어를 가지지 못했다는 불안감을 가지게 되었다. 책 "무브업"은 나의 커리어적인 불암감에 위에 양념을 살짝 더 뿌려줬다. 하지만 그래도 이제는 그러한 불안감에 압도당하지 않고, 내가 주어진 하루에서 내가 할 수 있는 최선을 고민하는 할 수 있다.
  • Published on
    OpenSCAP으로 Ubuntu20.04 이미지를 사용하는 가상서버의 취약점 리포트를 만들어보고, 보고된 취약점이 패치된 커널 버전으로 업그레이드 하여 해당 이슈를 해결해보았다. 이렇게 업그레이드 된 커널과 패키지들이 정상적으로 작동하는지 확인하고 사용할 수 있는 파이프라인을 만드는 것도 나중에 고민해봐야겠다.
  • Published on
    Pytorch를 컨테이너로 띄우고 GPU를 사용하고 싶었다. 따라서 Docker container에서 NVIDIA GPU를 사용할 수 있도록 셋팅을 해보았다. 그리고 최종적으로 Kubernetes에서 GPU hardware를 사용할 수 있도록 nvidia device plugin을 DaemonSet으로 띄우고 Pod를 실행해보았다.