公开Redis为Openshift路径

q3aa0525  于 2022-12-17  发布在  Redis
关注(0)|答案(1)|浏览(164)

我使用bitnami helm chart(https://github.com/bitnami/charts/tree/main/bitnami/redis)在Openshift(CRC)中部署了一个Redis单机版
我使用了以下参数:

helm repo add my-repo https://charts.bitnami.com/bitnami

helm upgrade --install redis-ms my-repo/redis \
--set master.podSecurityContext.enabled=false \
--set master.containerSecurityContext.enabled=false \
--set auth.enabled=false \
--set image.debug=true \
--set architecture=standalone

我可以看到一个Redis主节点pod“Ready to accept connections”(准备接受连接)然后我创建一个Route(路由)来将Redis暴露在集群之外:

kind: Route
apiVersion: route.openshift.io/v1
metadata:
  name: redis  
spec:
  host: redis-ms.apps-crc.testing
  to:
    kind: Service
    name: redis-ms-master
  port:
    targetPort: tcp-redis
  wildcardPolicy: None

但是当我尝试连接到“redis-ms.apps-crc.testing:80”时,我得到了:

"Unknown reply: H"

而如果我使用oc port-forward --namespace redis-ms svc/redis-ms-master 6379:6379,然后连接到“localhost:6379”,则可以正常工作

6pp0gazn

6pp0gazn1#

OpenShift Route仅限于HTTP(S)流量,这是由于router sends traffic with SNI .
入口控制器配置为接受外部请求并根据配置的路由代理这些请求。这仅限于HTTP、使用SNI的HTTPS和使用SNI的TLS,这对于通过使用SNI的TLS工作的Web应用程序和服务来说已经足够。
如果您需要公开非HTTP流量,比如数据库或Redis示例,您可以直接将Service公开为LoadBalancer类型Service

apiVersion: v1
kind: Service
metadata:
  name: redis-ms-master
spec:
  ports:
  - name: tcp-redis
    port: 6379 
    targetPort: redis
  type: LoadBalancer 
  selector:
    name: app.kubernetes.io/component: master

此外,它实际上看起来像是特定的helm图表支持将其设置为配置选项master.service.type

相关问题