공부기록

K8S에 MySQL 띄우기 본문

일단써

K8S에 MySQL 띄우기

코타쿠 2022. 10. 22. 08:32
  • 나는 먼저 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로 로그가 찍히는지 먼저 보자.