소개
현재 카카오뱅크에서 클라우드 엔지니어(SRE)로 근무하고 있습니다. 서비스를 위한 아키텍처를 설계/제공하고, 조직에서 필요한 다양한 도구들을 만들고 제공하거나 구축하는 등의 일을 하고 있습니다.
문의: 7424069@gmail.com
강의
전체5수강평
게시글
질문&답변
2024.09.09
Bind Mount에서 마운트가 되지 않습니다. (파일/경로 동일)
안녕하세요! 디렉토리를 파일에 마운트 하려 했거나, 파일을 디렉토리에 마운트 하려 했을 때 발생하는 오류로 보입니다. file index.html index.html: HTML document text, ASCII text file index.html index.html: directory 위와 같이 file 명령을 통해서, 로컬 경로에 존재하는 내용이 파일인지 디렉토리인지 확인 부탁드립니다.(오류로 봐서는 index.html이 디렉토리인 것 같아 보입니다.) 감사합니다.
- 1
- 2
- 16
질문&답변
2024.08.22
깃허브 액션에서 deploy가 실패해요
안녕하세요! 26err: ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory 27err: Error response from daemon: No such container: 843371319 28err: Unable to find image 'cokeholic-kim/docker-cicd-test:latest' locally 질문 주신 내용의 위 부분을 봤을 때 simple-cicd 스크립트 파일의 아래 부분이 누락되어 있는게 아닌지 의심되네요. (사진) 정확히 어떤 셋팅을 하셨는지를 모르는 상황이라서 위 내용 올바르게 들어가 있는지 확인 부탁드리겠습니다. 위 내용 외에도 뭔가 스크립트나 도커파일 부분에서 제공해드린 것과 다른 내용이 있는걸로 보입니다. 가능하시다면 활용중이 yaml파일과 도커 파일 내용도 공유해주시면 감사하겠습니다.
- 1
- 1
- 41
질문&답변
2024.08.08
IRSA 의 토큰이 최대 24시간인데 만료되면 어떻게 되나요?
안녕하세요! 좋은 질문 주셔서 감사합니다. 먼저 아셔야 하는건 토큰을 발급하고 주입하는 기능은 k8s의 기능 이라는 것 입니다. k8s 1.12 버전부터 도입된 ProjectedServiceAccountToken 이라는 기능 으로, 자세한 내용은 projected volume 이라는 키워드와 함께 찾아보시길 권장 드립니다. (말 그대로 k8s의 기능이기에...) 위의 기능을 AWS의 Identity providers 기능과 연계해서 사용하는게 IRSA라고 보시면 됩니다. (그리고 AWS에 등록된 프로바이더를 통해 검증하기 위해 EKS OIDC 엔드포인트는 무조건 퍼블릭인겁니다.) 결과적으로 토큰의 로테이션 또한 k8s의 kubelet이 수행(요청)합니다. 링크 로 가셔서 조금 내리면 아래와 같은 문구가 있습니다. The kubelet will: request and store the token on behalf of the Pod; make the token available to the Pod at a configurable file path; and refresh the token as it approaches expiration. The kubelet proactively requests rotation for the token if it is older than 80% of its total time-to-live (TTL), or if the token is older than 24 hours. The application is responsible for reloading the token when it rotates. It's often good enough for the application to load the token on a schedule (for example: once every 5 minutes), without tracking the actual expiry time. 대충 요약하면, "kubelet은 토큰의 수명이 80%보다 오래됐거나 24시간을 넘으면 로테이션을 수행한다." 겠죠? 결국 중요한 일은 k8s가 모두 수행하는거고, aws-eks-pod-identity-webhook은 볼륨마운트와 환경변수 주입을 수행하는거라고 보시면 됩니다! (실제 적용될 yaml 수정) !꿀팁! 을 하나 드리자면, k8s preStop hook 사용 시 토큰 로테이션이 정상적으로 되지 않는 이슈 가 있으니 실제 실무에서 사용하실 때에는 안내도 같이 해주시면 같이 일하시는 분들도 좋아하실 것 같습니다! (장애 사전 예방 ㅎㅎ) -추가- 조금 더 정확한 내용은 링크 참고하시면 좋을 것 같네요! 감사합니다!
- 1
- 1
- 153
질문&답변
2024.07.27
logs 폴더가 없는 것 같습니다.
안녕하세요! .gitignore 파일에 해당 이름이 들어가있어서 푸쉬가 안됐었네요 ㅠ 지금 조치했으니 다시 한 번 확인 부탁드립니다!
- 1
- 1
- 108
질문&답변
2024.07.22
AWS API 동작 방식에서 type 질문
안녕하세요. 답변 먼저 드리면, 정해진건 없습니다. 하지만! 모두 지정해주는게 좋은 것 같습니다. 크게 두 가지 케이스로 살펴보면, mypy_boto3_ec2 같은 것들을 설치해서 활용하는 경우 사실 굳이 타입을 명시하지 않아도 개발 과정에서는 쉽게 확인이 가능 합니다. 그럼에도 명시적으로 작성해준 이유는 아래와 같은데요. 강의 기준으로만 보면, 이후에 타입을 활용할것이기 때문이구요. 실무 기준으로는, 누군가는 mypy_boto3를 활용하지 않을 수도 있어 설치할 수 밖에 없게 만드는 역할을 할 수 있구요. 굳이 직접 문서를 찾아보지 않아도, 타입을 쫓아가면 바로 어떤 값들이 있고 어떤 값들이 선택적인지 필수인지 등을 확인할 수 있는 장점이 있습니다. 커스텀(?) 데이터를 만드는 경우 타입이 없으면 코드를 만지기가 상당히 까다롭습니다.(다루는 데이터가 어떤 형태인지를 떠나서) 그렇기에 명확히 정의를 해놓으면 당연히 여러 사람이 작업하는데는 큰 도움이 되겠죠. 그리고 타입을 명시해주는 특정 경우나 범위 같은건 딱히 없습니다만, 정말 간단한게 아니면 어쨋든 명시해주는게 좋다고 생각 하긴 합니다.(협업을 위해서이기도 하지만, 시간 조금만 지나면 스스로도 까먹기 때문에...) (사진)엄청 간단하고 당연히 추론해줘야 하는 것 같은 코드들도 이렇게 추론을 잘 못하는 경우가 있거든요. 어찌됐건 강제성은 없기 때문에 프로그래밍 하는 사람 마음이긴 하지만, 링크 의 코드를(잘했다 못했다의 문제는 아닙니다. 비하 의도 절대 없습니다.) 인수인계 받아서 업그레이드하거나 버그가 발생해서 유지보수 해야된다고 생각해보면 코드가 길지 않음에도 불구하고 저 개인적으론 상당히 만지기가 꺼려질 것 같긴합니다.(근데 500줄 1000줄 작성한게 타입이 없다고 생각하면 끔직하겠죠...?) 결론은! 규칙도 없고 지정하던 말던 상관없지만, 다른 사람들 그리고 나를 위해서 모두 지정해주는게 좋은 것 같습니다.
- 1
- 1
- 59