rook cluster는 위와 같이 설정했을 때, 테스트 단계에서 ssl true + self-signed-cert으로 구성된다.
그리고 ssl: false인 경우는 rook-ceph-mgr-dashboard (dashboard enabled인 경우 생성되는 service)의 port가 7000 (http-dashboard)이고,
ssl: true인 경우는 port가 8443 (https-dashboard)로 기본값이 구성되어 있다.
그리고 문제는 ssl이 true이고, service가 8443으로 표시되는데 (operator log 확인)
정작 이 dashboard를 관리하는 mgr module에서는 요렇게 뜬다.
관련 ceph의 issue로는 최근 계속 보고되고 있는 것 같다.
- https://github.com/rook/rook/issues/10796
- https://github.com/rook/rook/issues/10532
- https://github.com/rook/rook/issues/10612
대충 내용을 요약하면, ceph의 config상으로는 ssl true/false에 대해서 service는 잘 생성되지만,
"mgr" 자체에서 deploy하는 port가 7000으로 고정되어버리는 상황이 발생한다.
그래서 mgr이 실행되는 pod를 재시작하겠다고 강제 삭제하는 순간부터 엄청나게 꼬인다고도 한다 (...난 이미 삭제후 재실행했는데)
일단 대책으로 제시된
1. cluster config 를 ssl false로 바꿨다가, true로 돌리기
정상적으로 service가 7000(http-dashboard) 포트로 설정된 것을 확인할 수 있다.
다음과 같이 operator logs에도 잘 찍힌다.
하지만 다시 ssl true로 하고 실행해도.. 7000으로 실행된다. ssl=no래요 ㅠㅠ
operator를 다시 찍어보면
8443으로 찍히고, 여기 더해서 self-singed cert 관련 에러가 뜬다.
요건 이 명령어를 실행하면 된다.
다만, 가끔 위 명령어가 실행되지 않는 경우에는 기존 key/crt 값을 제거해주면 정상적으로 작동한다.
단, 이 때는 ssl=false 적용한 후 하는 게 좋다. (재생성 후에는 다시 ssl=true)
ceph config-key rm mgr/dashboard/key
ceph config-key rm mgr/dashboard/crt
ceph dashboard create-self-signed-cert
무튼...
dashboard ssl true를 했는지 더 알아보기 위해 다음과 같은 명령어도 호출해보았다.
이정도면... service쪽은 문제가 없는데, mgr 내부 코드의 문제라는 결론이다.
(issue thread에서도 이런 식으로 말이 나온다. )
일단... 계속 찾아보고 있음 ㅠㅠ