목록DevOps (19)
규도자 개발 블로그
k8s kind cluster 만들 때 SAN 설정하기 (kind cluster에 외부 접속 허용하기) 로컬에서 간단하게 k8s환경을 구성해서 테스트해볼 때 주로 사용하는 minikube와 비슷한 역할을 하는게 kind이다. 솔직히 말해서 둘의 차이점은 잘 모르겠다. 그래서 ChatGPT쨩에게 물어봤다. Q: What is major differences between minikube and kind? A: Minikube and Kind (Kubernetes in Docker) are both tools used to run Kubernetes clusters locally. The main difference between the two is that Minikube runs a single-node..

github actions의 자세한 실행환경 + 요청 IP 알아보기 업무 중 이런 일이 있었다. 온프레미스로 운용되고 있는 서버에 gitOps를 도입해야 했지만 k8s상에서 노드로 잡혀 있는 서버가 아니었으므로 argoCD같은 걸로 디플로이먼트가 참조하여 서비스를 갱신할 수 있을만 한 manifest파일도 없었다. 결국 github actions상에서 ssh 접속을 통해 이미지를 pull 받는 스크립트를 실행하는 형태로 구현하는 것으로 가닥이 잡혔는데 이상하게 접속이 안되는 것이다. 내가 이럴 때마다 자주 표현하는 방식이 있는데 진짜 때려 죽여도 접속이 안됐다. 그때 사용했던 건 https://github.com/appleboy/ssh-action 여기서 제공하는 action이었다. 그래서 혹시 이 프로..

Docker container가 localhost를 볼 수 있게 하는 방법 IT산업이 점점 고도화, 전문화되면서 거대해지는 규모에 맞게 MSA architecture의 도입은 이제 고려의 대상이 아닌 필수가 됐다. 그만큼 기존에 개발하던 환경과도 달라져야 하는 부분이 있는데 그 중 하나가 바로 어플리케이션의 컨테이너화이다. 하지만 이 컨테이너가 참조하는 엔드포인트가 public network이 아닌, Docker engine을 실행하고 있는 localhost의 어플리케이션을 참조해야 한다면? 먼저 localhost에서 실행할 간단한 fastAPI의 sample을 만들어보자. from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(..

github actions로 자동 1일 1커밋 봇 만들기 그냥 재미있는 생각이 들었다. 1일 1커밋을 생활화하려는 개발자들이 있지만 그게 또 힘드니 이걸 github actions로 해결하면어떨까(?)하는 그런 생각 말이다. 알다시피 github actions에는 PR이나 push등의 이벤트에만 작동하는 것이 아닌, 일정 시간마다 작동하는 workflow또한 작성할 수 있다. 진짜 간단한 scheduled.yml을 작성해보자. 아, 모든 과정은 내가 인프라 공부할 때 사용하는 https://github.com/jujumilk3/infra-study 이 레포지토리에서 진행할 것이니 행여 나중에 진행과정을 참고할 사람이 있다면 해당 저장소의 커밋 내역을 따라가보면 될 것이다. 그리고 Actions칸에 있는 ..

docker, cronjob 하는 container 만들기 + supervisor, 환경변수 적용하기 일단은 간단한 cronjob을 수행하는 container를 만드는 Dockerfile을 작성해보자. 과정은 내가 자주 사용하는 python을 base image로 진행하겠다. # Dockerfile FROM python:3.9 WORKDIR /home/docker/code RUN apt-get -qq update \ && apt-get -qq install -y --no-install-recommends \ cron \ && apt-get -qq autoremove \ && apt-get -qq clean COPY . /home/docker/code RUN cp /home/docker/code/cronj..

django로 github actions찍먹해보기 github actions라고 요즘 핫한 친구가 있다. 간단하게 말하자면 github actions를 설정한 저장소에 특정 이벤트가 일어나면(push를 했을 때나 정해진 시간 등) 정해놓은 워크플로우를 자동으로 실행하게 해주는 기능이다. 일종의 CI/CD작업을 깃허브에서 실행하게 만들 수도 있는 셈이다. 그래서 보통 jenkins에서 수행하던 CI작업을 github actions로 많이 옮기는 추세이다. 허나 완전한 무료는 아니라는 걸(2,000 Actions minute/month FREE) 알아둬야 한다. github에서 직접 지원하는 기능일 뿐더러 build, test, package, release, deploy 등 다양한 이벤트를 기반으로 직접 ..
[macOS] kubectl, kustomize, minukube설치하기 $ brew install kubectl kustomize minikube $ kubectl version Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.5", GitCommit:"5c99e2ac2ff9a3c549d9ca665e7bc05a3e18f07e", GitTreeState:"clean", BuildDate:"2021-12-16T08:38:33Z", GoVersion:"go1.16.12", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"22"..

gmail에는 여러 용도로 사용할 수 있게 아이디 뒤에 +{something}을 붙여서도 사용할 수 있는 기능이 있다. 예를 들어 내 이메일주소가 jujumilk3@gmail.com인데 여기에 jujumilk3+2022@gmail.com을 붙여도 내 원래 계정으로 온다. 이렇게 말이다. 물론 숫자뿐만이 아니라 영어도 되므로 특정 메일을 리스팅하거나 라벨링할 때 쓰기 좋은 기능이지만 이 기능을 aws계정가입과 함께 활용하면 같은 gmail계정으로 여러개의 프리티어계정을 계속 생성할 수 있다. 프리티어계정은 1년 후에 종료되기 때문에 나 같은 경우에는 뒤에 해당년도를 붙여 새로운 계정을 만들어 사용하고 있다. 이렇게 가입시도를 하면 멀쩡히 잘 진행된다. 프리티어 기능을 정상적으로 사용할 수 있다는 확인메일이..

오늘 깃허브 계정을 점검해봤는데 아직도 전직장의 github repository에 내가 등록이 돼있었다. 원래는 그냥 로컬에서만 개인적으로 공부하고 있는 걸 push하는 용도로 썼는데 요즘 fastapi 기여때문에 자주 들어가보게 돼서 발견했다. 보안문제도 있고 할 텐데 왜 내가 아직도 등록이 돼있을까. 아마 발견하기 힘들어서 잊은 게 아닐까 하는 추측 뿐이다. 그리고 당연스레 나 스스로 collaborator를 끊어서 해당 repo를 안볼 수 있지 않을까 싶었는데 아니었다. 레포 세팅에 접근할 권한이 없기 때문에 내가 날 없앨 수 없었다. 방법은 다음과 같다. 그냥 그 유저를 block했다가 다시 풀면 된다. 저 버튼을 눌러서 계정을 Block하고 다시 settings에서 풀면 된다. 그럼 해당 계정과..

깃훅은 깃에서 특정 동작을 줬을 때 정해진 시점에 스크립트를 실행하게 하는 것이다. 어떤 깃훅이 만들어져있나 궁금하면 자신이 로컬에 받아둔 아무 깃 프로젝트에 들어가서 .git/hooks/ 내부에 어떤 파일들이 있는지 보면 된다. 간단하게 스샷으로 보자면 이렇게 있다. 각 스크립트가 정확히 어떤 시점에 실행되는지는 이곳을 참조하면 된다. 뭐 암튼 파일 이름에서 유추할 수 있듯이 .sample이라는 suffix만 지워주면 각 훅의 시점에 작성된 스크립트가 실행된다. 한 예로 이번 포스팅에서 다뤄볼 pre-commit.sample파일을 수정해서 precommit기능을 사용해보자. 이렇게 내가 hook에 써놨던 echo부분이 실행되면서 커밋이 진행되는 걸 알 수 있다. 뭐 대충 git hook은 이렇게 작성해..