【发布时间】:2021-03-05 16:05:47
【问题描述】:
对于我目前研究中的分布式数据库项目,我应该在 Google Cloud Kubernetes Engine 上部署一个 CockrouchDB 集群并针对它运行 YCSB 负载测试。
YCSB 客户端将在另一个 VM 上运行,以便结果与其他组的结果具有可比性。
现在我需要在端口 8080 上公开数据库控制台以及在端口 26257 上公开数据库端点。
到目前为止,我开始将 cockraochdb-public 服务更改为 kind: NodePort 并使用 Ingress 公开其端口。我当前的问题是暴露两个端口(如果可能的话,在它们的默认端口 8080 和 26257 上)并让它们从 YCSB 访问。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cockroachdb-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: cockroachdb-global-ip
ingress.citrix.com/insecure-service-type: “tcp”
ingress.citrix.com/insecure-port: “6379”
labels:
app: cockroachdb
spec:
backend:
serviceName: cockroachdb-public
servicePort: 26257
rules:
- http:
paths:
- path: /labs/*
backend:
serviceName: cockroachdb-public
servicePort: 8080
- path: /*
backend:
serviceName: cockroachdb-public
servicePort: 26257
到目前为止,我只是设法将它路由到不同的路径。我不确定这是否可行,因为 YCSB 使用的 JDBC 驱动程序使用的是 TCP 而不是 http。
如何使用 Ingress for TCP 公开一项服务的两个端口?
【问题讨论】:
标签: jdbc google-cloud-platform kubernetes-ingress cockroachdb ycsb