Cannot connecto to external database from inside kubernetes pod

前端 未结 3 1848
时光说笑
时光说笑 2021-01-27 00:24

I am trying to connect my spring-boot api inside a kubernetes pod to an external database (a separate machine but within the local network), however when running, I get SQLNonTr

相关标签:
3条回答
  • 2021-01-27 01:07

    After hours of digging and reconfiguring, I finally get it to work, thanks to Xenwar from kubernetes group for pointing out the externalIP property, it turns out that i need to point my app to an external ip, in this case the database, here is the service object:

    apiVersion: v1
    kind: Service
    metadata:
      name: db-con
    spec:
      selector:
        app: api2
      ports:
        - name: http
          protocol: TCP
          port: 3306
          targetPort: 3306
      externalIPs:
        - 10.0.123.28
    
    0 讨论(0)
  • 2021-01-27 01:07

    You service is not a "headless" service. Set the IP to None:

    spec:
      clusterIP: None
      ports:
       - port: 3306
         targetPort: 3306
    

    https://kubernetes.io/docs/concepts/services-networking/service/#headless-services

    0 讨论(0)
  • 2021-01-27 01:17

    If I understand you correctly you need a ExternalName service type.

    ExternalName: Maps the Service to the contents of the externalName field (e.g. foo.bar.example.com), by returning a CNAME record with its value. No proxying of any kind is set up.

    Here is an example:

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
      namespace: prod
    spec:
      type: ExternalName
      externalName: my.database.example.com
    

    When looking up the host my-service.prod.svc.cluster.local, the cluster DNS Service returns a CNAME record with the value my.database.example.com. Accessing my-service works in the same way as other Services but with the crucial difference that redirection happens at the DNS level rather than via proxying or forwarding.

    Please let me know if that helped.

    0 讨论(0)
提交回复
热议问题