首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Istio无法访问MySQL的外部服务,该怎么办?

Istio无法访问MySQL的外部服务,该怎么办?
EN

Stack Overflow用户
提问于 2019-08-08 14:48:07
回答 1查看 621关注 0票数 0

我构建了一个spring boot项目,并使用Kubernetes Deployment部署它,它的配置文件如下所示:

代码语言:javascript
复制
server:
  port: 80
spring:
  application:
    name: demo-kube-svca
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://mysql.dev.svc.cluster.local/kube
    username: root
    password: 123456

我的mysql数据库使用docker部署起来很简单:

代码语言:javascript
复制
Docker run -d \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
--name=mysql \
--privileged=true \
Mysql: 8.0

最后,我想使用ServiceEntry将MySQL服务导入到服务网格中。

代码语言:javascript
复制
apiVersion: networking.istio.io/v1alpha3
Kind: ServiceEntry
Metadata:
   Name: mysql-external
Spec:
   Hosts:
     - mysql.dev.svc.cluster.local
   Addresses:
     - 192.168.0.123/32
   Ports:
     - number: 3306
       Name: mysql
       Protocol: tcp
   Location: MESH_EXTERNAL

但是,当我使用该程序访问数据库时,日志中报告了错误:

代码语言:javascript
复制
Caused by: java.net.UnknownHostException: mysql.dev.svc.cluster.local: Name does not resolve

我指的是官方文档:https://istio.io/blog/2018/egress-tcp/,我想可能是我的配置有问题,但我不知道该怎么办,你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-08 15:33:38

ServiceEntry仅在sidecar代理中为您打开防火墙-您仍然需要在Kubernetes上部署mysql才能使用mysql.dev.svc.cluster.local svc,或者如果您已在IP 192.168.0.123下部署mysql,请使用它而不是主机。

编辑:

如果你需要用Kubernetes内部的服务来覆盖192.168.0.123IP地址,你应该使用external service -正如我写的那样,Istio的ServiceEntry only configure firewall。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57406678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档