공부기록
K8S에 MySQL 띄우기 본문
- 나는 먼저 helm 차트로 mysql을 띄우고 인그레스로 연결하면 알아서 잘 되것거니 생각했다.
- 도메인까지 연결해주고 MySQL WorkBench로 테스트를 해봤지만 되지 않음...
- 안되는 이유는 생각보다 간단했다. Ingress는 http, https 연결을 지원하는데 MySQL connection은 TCP/IP 단계에서 이뤄지고 있었기 때문... 때문에 인그레스 컨트롤러 로그를 봐도 WorkBench로 찍은 테스트 로그는 전혀 남지 않았다... (혹시 해서 브라우저로 테스트한 것은 들어오고 있었고, 이 때문에 TCP 요청을 받지 않는다고 판단함)
- 구글에 ingress tcp connection 이라고 치면 다음의 문서가 나온다.
- 내용은 즉, ingress-controller의 tcp-servcies 라는 configMap에 내가 붙고자 하는 TCP 연결의 포트를 설정 해줘야 하는 것이다.
apiVersion: v1 kind: ConfigMap metadata: name: tcp-services namespace: ingress-nginx data: 9000: "default/example-go:8080"
- 위 예시는 port 9000 으로의 연결을 default 네임스페이스의 example-go 서비스에 8080 port 로 연결한다는 의미이다.
- 위 처럼 설정하니까 WorkBench 테스트 잘 붙음 ㅋㅋ
결론
- 연결이 안될 때는 ingress-controller로 로그가 찍히는지 먼저 보자.
'일단써' 카테고리의 다른 글
스파크에 파이썬 프로젝트 서브밋하기 (0) | 2023.04.21 |
---|---|
feature 브랜치 develop에 머지후 revert 한 뒤 수정사항 다시 적용하는 방법 (0) | 2023.03.02 |
코틀린에서 스프링 커스텀 예외는 Exception 을 상속하자 (0) | 2022.07.15 |
logback log level 설정 (0) | 2022.06.19 |
pandas 특수문자가 들어간 query가 있을 때 (0) | 2022.02.18 |