본문 바로가기
728x90
반응형

Cloud Side21

[k8s] DaemonSet으로 fluentd 구축하기 (configMap, pattern not matched) 어서와 DaemonSet은 처음이지? 회사 서비스 로그 시스템을 구축하는데 벌써 한달이 지나가고 있다. (물론 로그 시스템만 한거 아님! 메트릭 수집도 해야했고 다른 서비스도 개발해야했으니 한달 허투로 쓴거 아님!) 개발은 Docker로만 운영은 k8s로 하기 때문에 로그를 위한 fluentd도 Docker에서 벗어나 k8s에 도입하게 되었다. 근데 k8s의 새로운 kind를 만나게 되었다. 그게 바로 DaemonSet! k8s 공식 문서에서 확인한 DaemonSet의 설명이다. 한마디로 정리하면 알아서 모든 노드에 실행하게 해주는 아이다. DaemonSet을 사용하지 않을 경우 fleuntd의 pod를 각 노드마다 수동으로 생성해줘야 할것이다. 하지만 DaemonSet를 사용하면 딱히 설정해주지 않아도.. 2023. 7. 25.
[Azure] AKS를 생성한 당신..! 요금과 관련된 중요한 정보 드립니다 클라우드 구축하면 가장 걱정되는 것은? 요금! 개발자들 뿐만 아니라 실무진, 대표님이 가장 걱정하는 것이 바로 클라우드 요금이라고 생각한다. 드디어 우리 프로젝트도 클라우드를 구축하기 시작했는데.. 너무 두려웠다 😱 그래서 내가 한 일은 매일 Azure 로그인을 해서 수시로 요금 청구서를 조회했다. 잠시 눈물 좀 닦고 오겠습니다. 근데 이 Azure에서 AKS 요금를 조회할 때 신기한 것을 발견해서 공유하고자 한다. Azure에서 요금 보는 방법 우선 Azure에서 요금 보는 방법을 소개하겠다. 왼쪽 상단에 있는 가로선 3개를 누르면 맨~ 아래에 Cost Management + Billing이 있다. 그럼 여러분의 계정의 요금 볼 수 있는 곳으로 넘어간다. 회사 계정일 경우 여러 서비스가 혼합되어져 있기.. 2023. 4. 27.
[k8s] 초기화 컨테이너 적용시키기 - initContainers MongoDB 연결이 안되었다는데요? 위에는 AKS에 생성된 workloads이다. 총 9개로 아직 Ready 상태가 주황빛이지만 n초만 지나도 오른쪽처럼 초록빛들이 들어온다. 여기에서 중요한 점이 있다. 초록빛이 즉, 정상적으로 Ready 상태가 되는 순서가 뒤죽박죽이다. A라는 서비스가 먼저 Ready가 되었는데 아직 MongoDB가 Not Ready일 때 문제가 생겼다. A 서비스는 시작되면서 바로 MongoDB에 연결을 시도했다. 하지만 MongoDB가 아직 Ready가 되지 못해 통신이 되지 않으니 A 서비스는 연결 오류를 뱉어난다. 나중에 MongoDB가 Ready가 되었다고 하더라도 A 서비스는 이미 연결 오류로 끝났다. 그럼 MongoDB 연결에 timeout을 걸어 위와 같은 상황에 내가.. 2023. 4. 21.
[k8s] 쿠버네티스 명령어 모음 yaml 올리기 kubectl apply -f [파일이름].yaml Pod 조회 kubectl get pod kubectl get pod -o wide 특정 Pod 자세히 조회 kubectl describe pod [pod name] 특정 Pod 재시작 kubectl rollout restart deployment [deployment_name] 특정 Pod의 env 조회 kubectl exec [Pod 이름] -- env 특정 Pod 삭제 kubectl delete po [pod 이름] Service 조회 kubectl get service 로그 조회 kubectl logs [pod name] 컨피그맵 조회 kubectl get configmaps kubectl describe configmaps [이.. 2023. 4. 21.
[Azure] ERROR: A different object named 'x' already exists in clusters in your kubeconfig file. 원인 az aks get-credentials -g [리소스그룹 name] -n [aks name] AKS를 만들어준 다음 kubectl을 사용하기 위해 클러스터에 연결해줬다. 그랬더니 ERROR: A different object named 'x' already exists in clusters in your kubeconfig file. 라는 오류가 나왔다. 이유는 만든 AKS 이름과 동일하게 kubeconfig 파일이 있기 때문이다. 나의 경우 예전에 만들어둔 AKS를 삭제할 때 제대로 kubeconfig 파일까지 삭제하지 않아 생긴 현상이었다. 해결 az aks get-credentials -g [리소스그룹 name] -n [aks name] --overwrite-existing 해결방법은 의외로.. 2023. 4. 18.
[Azure] Kubernetes를 이용한 MSA 배포 셋팅 일대기 결국 도움이 된다! 'AKS를 이용해 서버 배포하기' 라는 이름으로 포스팅을 한지 벌써 6개월 이상 지났네요. 당시 회사 서비스는 MVP 버전으로 아직 클라우드 진입까지는 힘든 시기였습니다. 하지만 먼저 공부해보는 것도 좋을 것 같아 동기님과 이거저거 만져봤었죠. 그때의 경험이 절 살렸습니다 🥹 최근 회사 서비스가 급속도로 개발되면서 클라우드 도입이 빠른 시일내에 완료되어야 하는 과제가 되었어요. 작년 8월에 미리 공부하지 않았다면 불과 일주일만에 클라우드 도입은 하지 못했을거라 예상해봅니다. 여러분들도 미리미리 공부하시면 나~중에 도움이 되실게요! 특히 블로그에 세세히 적어놓으니 제가 제걸 보고 따라하는 진풍경이 나왔답니다. 이미 겪은 에러도 피해갈 수 있었고요. 이렇게 블로그가 큰 도움이 된답니다. .. 2023. 4. 14.
[Docker] 네? docker 장치에 남은 공간이 없다고요?! - no space left on device 해결 Error name - no space left on device 팀 내에서 Docker를 전담하고 있는 1인으로써 어제 처음보는 에러를 발견했다. 뭔가 길지만 결국은 "no space left on device"라는 문구가 눈에 들어온다. 많은 build 과정으로 인해 안쓰는 image, container, volume 등이 쌓여 더이상 build를 할 수 있는 공간이 없어 생긴 문제였다. 사용하지 않는 이미지나 중지된 컨테이너를 완전히 제거하여 여유 공간을 확보하는게 해결 방법이다. Solution docker system prune --all --force --volumes 이 한 줄이면 공간을 확보할 수 있다. docker image rm 혹은 docker container rm 등 해도 되지만 .. 2022. 11. 3.
[Docker] 명령어 모음 개발하면서 자주 쓰는 Docekr 명령어를 모아두었다. Docker-compose 관련 명령어 // Docker 내리기 docker-compose down // Docekr image build docker-compose build // Docker 컨테이너 올리기 docker-compose up -d // 위 3가지를 한 번에 하는 명령어 docker-compose up --build -d 2022. 8. 10.
[Azure] AKS를 이용해서 서버 배포하기 (3) AKS에서 애플리케이션 실행 with.kompose 1. 매니페스트 파일 만들기 Kubernetes 매니페스트 파일이 있어야지 애플리케이션을 실행할 수 있습니다. docker-compose를 사용할 경우 kompose라는 서비스를 이용해서 손쉽게 만들 수 있습니다. brew install kompose brew를 이용해서 간단하게 kompos를 설치합니다. kompose convert -f docker-compose.yaml --out .yaml docker-compose.yaml 파일이 있는 폴더로 가셔서 위 코드를 입력해주세요. 참고로 docker-compose와는 달리 매니페스트 파일은 정해진 이름이 없어 자유롭게 해주시면 됩니다. 저의 경우 k8s.yaml로 써주었어요. 오류 없이 잘 작동했다면 적어주신 이름으로 파일 하나가 생성되었을 것입니다. .. 2022. 8. 5.
728x90
반응형