Infra/Kubernetes

    k8s service webhook issue 해결

    오늘은 k8s를 활용하면서 겪었던 webhook issue에 대해 적어보려구 합니다 !! 일단 제가 k8s에 대한 경험이 많이 없어서 이 문제를 조금 오랫동안 해결하려고 노력했던 것 같고 진짜 허무하게도 CNI 플러그인 이슈였더라구요 ㅎ,,, 😂 저는 처음에 DNS 문제이거나 k8s apiserver가 webhook svc에 대한 ca를 제대로 읽지 못하는 문제, 아니면 저의 token이 잘못됐다는 생각을 했던 것 같아요.. 하지만 configmap과 secrets을 봤을 때 모두 다 정상적으로 되어 있었구 처음에는 DNS 오류가 있긴 했지만 이후에 해결해도 문제가 나더라구요 ㅎ,, cert-manager는 certificate를 관리해주는 일종의 컴포넌트라고 생각하시면 될 것 같구 저는 flink가 c..

    Deployment

    9.1 파드에서 실행 중인 애플리케이션 업데이트 파드를 업데이트하는 방법에는 두가지가 존재. 하나는 기존 파드를 모두 삭제한 다음 새 파드를 시작하는 방법, 다른 방법은 새로운 파드를 시작하고 기동하면 기존 파드를 삭제하는 방법이 존재. 첫번째 방법은 블루-그린 디플로이먼트라고 부르고 두번째 방법은 롤링업데이트 방식이라고 불림. 첫 번째 방법의 단점은 기존 파드에서 새 파드로 교체되는 시간 동안에는 애플리케이션을 사용할 수 없다는 단점이 있고 두 번째 방법의 단점으로는 애플리케이션이 동시에 두가지 버전이 존재하게 된다는 단점이 있음. 블루-그린 디플로이먼트 방식은 잠시 동안 두배의 파드가 존재하게 되므로 더 많은 리소스를 필요하게 되지만 동시에 두가지 버전이 존재하지는 않음. 그리고 두 방식 보두 또 다..

    쿠버네티스 소개

    쿠버네티스 소개 1.1 쿠버네티스와 같은 시스템이 필요한 이유 1.1.1 모놀리식 구조에서 마이크로서비스 구조로 전환 옛날에는 소프트웨어 애플리케이션이 monolithic 구조였음. 현재도 레거시 시스템은 이런 경우가 많음. 현대에 와서는 이런 구조가 마이크로서비스라는 독립적으로 실행되는 더 작은 구성 요소로 세분화됨. 그래서 급변하는 비즈니스 요구사항에 맞춰서 서비스를 개발할 수 있게 됨. 하지만 서비스의 규모가 커지고 점점 늘어나면서 이걸 수동적으로 관리하는 것을 어려운일. 그래서 배포나 구성, 관리, 스케쥴링, 장애 처리를 해줄 수 있는 자동화 과정이 필요 -> 이 역할을 수행하는게 쿠버네티스 모놀리식 애플리케이션은 서로 강하게 결합되어 있고 전체가 하나의 운영체제 프로세스로 실행되기 때문에 하나의..

    ConfigMap과 Secret

    컨피그맵과 시크릿: 애플리케이션 설정 7.1 컨테이너화된 애플리케이션 설정 컨피그맵은 설정 데이터를 최상위 레벨의 쿠버네티스 리소스에 저장하는 방법을 말함. 시크릿은 컨피그맵과 비슷한 설정 데이터를 저장하지만 암호화 키 값은 보안과 관련된 정보를 저장한다는 차이가 존재. 7.2 컨테이너에 명령줄 인자 전달 7.2.1 도커에서 명령어와 인자 정의 dockerfile에서 ENTRYPOINT는 컨테이너가 시작될 때 호출될 명령어를 정의하고 CMD는 ENTRYPOINT에 전달되는 인자를 정의. ENTRYPOINT를 전달하는 형식은 shell과 exec형식이 있는 shell은 ex) ENTRYPOINT node app.js 방식이고 exec 방식은 ex) ENTRYPOINT ["node","app.js"] 방식이..