반응형 Development30 nginx reload와 keep-alive (부제: zero-downtime은 사기일까?) * 분석내용이 틀릴 수도 있습니다. 지적해주시면 감사하겠습니다. 해당 이슈를 얘기하기 전에 Ingress 리소스정보 변경에 따른 Ingress-nginx controller 의 config reload flow를 먼저 설명한다.예를 들어, Ingress의 host를 변경한다고 가정하자. 변경이 되면 Ingress 리소스를 watch하는 Ingress-nginx controller(nginx가 아니다!)에서 Ingress를 읽어 nginx.conf를 새로 만든다. 그리고나서 nginx -s reload 명령을 날리게 된다. 이 때, nginx 에서는 어떤 방식으로 config을 반영할까? 구글링으로 reload 시 내부적으로 일어나는 구체적인 flow를 찾을 수 있었다.serverfault.com/ques.. 2021. 1. 16. SW설계 시 고려해야 하는 사항 SW설계 방법론에서 다루는 얘기와는 다르다. 굳이 범주를 말하자면 Architectural Concerns 에 가깝다고 할 수 있다. 실제 개발시에 마주할수 있는 여러가지 이슈들을 최소화 하기 위한 나의 경험만으로 정의되는 사항들이다. 이 점을 참고하여 읽으면 좋겠다. 배포&롤백 SW를 배포할때 어떠한 방법으로 배포할 것인지를 수립해야한다. Blue-Green인지 canary인지 그로인한 기존 시스템 영향도는 어떻게 되는지, 배포시간이 얼마나 예상되는지, 그리고 배포하다 문제가 생겼을때 어떻게 피해를 최소화 하면서 롤백을 할 것인지 그에 따른 전략을 세워야 한다. 버전 업그레이드 이 SW가 나중에 업그레이드를 할때 어떻게 쉽고 빠르고 문제 없이 할것인가, 하위 버전과의 호환성도 고려해야 한다. 또한 데이.. 2020. 11. 18. Git Flow 와 CI/CD kubernetes기반으로 작동하는 모니터링 서비스 개발과 배포를 최대한 자동화 하기 위해서 Git Flow와 CI/CD를 도입해보았다. Git Flow를 이해하기 위해 다음의 아티클을 참고하였다. http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html CI/CD인 경우는 circleci 와 helm 을 이용하였다. 대상 git repo에는 소스코드와 helm chart가 모두 있다. 그래서 실제 빌드에서부터 Chart배포까지 모두 한 곳에서 이루어진다. (원래는 분.. 2020. 3. 19. Thanos Tips Thanos 는 Prometheus 사용할 때 HA 와 Long-term storage 를 보완하기 위한 솔루션으로서 기본적인 컨셉과 설명은 조대협님 블로그에 잘 설명되어 있다. https://bcho.tistory.com/1375 Prometheus 를 스케일링 하기 위한 Thanos (타노스) 문제 정의 프로메테우스가 좋은 모니터링 시스템이긴 하지만 두가지 결정적인 문제점을 가지고 있다. 결정적으로 클러스터링 구조를 지원하지 않기 때문에, 확장성과 가용성 문제를 가지고 있다. 확장성 측면에서.. bcho.tistory.com 여기서는 추가적으로 실 운영단계에서 알아둬야할 몇가지 팁을 요약해보고자 한다. - Thanos의 쿼리 속도는 Vanila Prometheus 보다 최소 2~10배 까지 느릴 수 .. 2020. 2. 11. 빈번한 No data alert 벗어나기(in Grafana) Grafana Alert은 상당히 직관적이고 편리하지만 가끔가다 Metric수집이 안됐을 경우 No Data Alert이 다량 발생할 수 있다. 모니터링에서 이러한 작은 No Data 이슈는 큰 문제가 아니며(수집이 timeout이나 네트웍에 잠깐 문제가 있을수도 있기 때문이다) 곧 정상으로 돌아왔다면 굳이 이러한 패턴에 모두 No Data Alert을 걸어둘 필요는 없다고 본다. Grafana Alert을 셋팅할때 No Data and Error Handling에서 "If no data or all values are null" 항목의 state를 No Data로 해두면 이 경향이 더 심한데, 이유는 No Data로 했을 경우 Pending 상태(For 항목에서 지정한 period)를 무시하고 곧바로 .. 2019. 12. 12. Shared Informer 사실 Shared Informer에 대한 자료는 구글링을 하면 널리고 널렸다. 다만 필자는 이것을 이해하기전, Shared라는 키워드에 대한 썰을 풀어보고자 한다(필자와 같은 사람이 있을 수도 있겠다는 가정아래) https://medium.com/@muhammet.arslan/write-your-own-kubernetes-controller-with-informers-9920e8ab6f84 Write your own kubernetes controller with informers In applications of robotics and automation, a control loop is a non-terminating loop that regulates the state of the system. I.. 2019. 12. 11. 이전 1 2 3 4 5 다음 반응형