ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Validation webhook + k8s certificate 갱신 문제 Trouble shooting
    Trouble Shooting 2022. 9. 18. 12:18

    문제 상황 

    평소처럼 회사 k8s cluster 환경에서 operator 수정 작업을 하고 있었다.

    (회사 k8s cluster 환경에는 제품을 실행시키기 위해 필요한 모듈들이 모두 깔려 있다)

     

    docker image 빌드 후, 돌아가고 있는 deployment의 tag를 변경해서 바꾸어주는 방식으로 테스트를 하고 있었는데, 

    그러던 어느 날, deployment의 image tag를 변경해도 pod가 생성되지 않는 문제가 생겼다.

    정확하게 말하면, replicas가 새로 생성되지 않았고, deployment를 지웠다가 새로 생성해도 마찬가지였다. 

    기존에 있던 pod를 삭제해도, 새로운 pod가 생성되지 않는 혼란스러운 상황이었다. 

     

    describe deploy operator를 해도 error는 확인할 수 없었고, 

    get deploy operator -o yaml을 통해서 deployment status를 통해서 error를 확인했더니 

    모듈 A에서 validating webhook error가 발생하고 있었다는 메시지를 확인했다. 

    (모듈 A는 회사에서 따로 만든 모듈이라 정확하게 어떤 모듈이라고 말을 할 수는 없다)

     

    해당 모듈 A의 로그를 보면 kube-apiserver가 있는 master node의 ip로부터 오는 요청에서 bad cerfificate error를 만들고 있었다.  그래서 해당 모듈 A와 kube-api-server 간의 tls 연결 간의 문제가 있다고 생각했다.  

     

    현 환경에서는 인증서를 cert-manager로 관리를 하는데

    잘못된 certificate 문제로 의심되기 때문에 모듈 A가 사용하는 certificate의 cluster issuer를 확인해보았다. 

     

    확인 결과 cluster issuer가 갱신된지 얼마 되지 않았고,

    해당 cluster issuer를 사용하는 모듈 A의 certificate는 갱신되지 않았던 것이 문제였던 것이다.  

     

    갱신되지 않은 certificate의 secret을 모듈 A가 계속 mount하고 있어서

    kube-apiserver와 tls 연결에서 error가 발생한 것으로 추측했다.  

     

    조치 

    그래서 모듈 A의 certificate 리소스를 삭제한 후

    (certifcate가 생성한 secret도 알아서 함께  삭제된다.)

    새로운 certificate를 생성했고, certificate를 통해 생성된 새로운 secret을 모듈 A pod에 마운트 시키기 위해 

    pod를 재기동시켰다. 

     

    그리고 다시 operator로 돌아와서, deployment를 만들어보니 정상적으로 생성된다.  

    반응형

    댓글

Designed by Tistory.