Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 是否可以用Istio代理替换云SQL代理?_Postgresql_Kubernetes_Google Cloud Sql_Istio_Cloud Sql Proxy - Fatal编程技术网

Postgresql 是否可以用Istio代理替换云SQL代理?

Postgresql 是否可以用Istio代理替换云SQL代理?,postgresql,kubernetes,google-cloud-sql,istio,cloud-sql-proxy,Postgresql,Kubernetes,Google Cloud Sql,Istio,Cloud Sql Proxy,目前,我正在使用云代理连接到Postgres Cloud SQL数据库作为一个侧车。然而,当使用Istio时,它引入了自己的侧车,这导致pod中有两个代理。所以我想,加密连接是否也可以使用Istio建立 基本上 编辑:可能是相同的问题: 所以我最终得到了这样的结果 apiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: external-db spec: hosts: - exter

目前,我正在使用云代理连接到Postgres Cloud SQL数据库作为一个侧车。然而,当使用Istio时,它引入了自己的侧车,这导致pod中有两个代理。所以我想,加密连接是否也可以使用Istio建立

基本上

编辑:可能是相同的问题:

所以我最终得到了这样的结果

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: external-db
spec:
  hosts:
    - external-db
  ports:
    - number: 5432
      name: postgres
      protocol: TLS
  location: MESH_EXTERNAL
  resolution: STATIC
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: external-db
spec:
  host: external-db
  trafficPolicy:
    tls:
      mode: MUTUAL
      clientCertificate: /etc/certs/client-cert.pem
      privateKey: /etc/certs/client-key.pem
      caCertificates: /etc/certs/server-ca.pem

---
apiVersion: v1
kind: Service
metadata:
  name: external-db
spec:
  clusterIP: None
  ports:
    - protocol: TCP
      port: 5432
---
apiVersion: v1
kind: Endpoints
metadata:
  name: external-db
subsets:
  - addresses:
      - ip: 10.171.48.3
    ports:
      - port: 5432
在吊舱里

sidecar.istio.io/userVolumeMount: '[{"name":"cert", "mountPath":"/etc/certs", "readonly":true}]'
sidecar.istio.io/userVolume: '[{"name":"cert", "secret":{"secretName":"cert"}}]'

但是,服务器拒绝连接。所以问题是,这种设置是否可行?这有什么意义吗?

看来Postgres使用的是应用程序级协议协商,因此在这种情况下不能使用Istio/ENVICENT:


Hi@user140547这似乎是一个非常具体的配置问题,因为理论上一切都应该有效。出于这个原因,我建议您联系,这样他们就可以更深入地调查什么可能会影响您的实例。@gso_gabriel与此同时,我发现了这篇文章:因此,如果不考虑应用程序级协议,可能就不可能简单地代理它,尽管这是关于复制的。您找到了解决方案吗?我真的更喜欢让nginx处理SSL业务。这样我就不必费心处理特定于服务器的SSL配置。此外,如果我必须轮换证书,则无需重新启动这些服务器。我不知道为什么Postgresql不允许这种使用模式。@Dojo很遗憾我不允许。实际上,对于GCP和云SQL,有一个云SQL代理,它处理密钥管理和轮换,所以对我来说,这个问题并不是那么紧迫。如果我不需要双面车代理就好了。