首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换docker-compose redis文件以在kubernetes上工作

转换docker-compose redis文件以在kubernetes上工作
EN

Stack Overflow用户
提问于 2021-06-09 05:04:29
回答 1查看 279关注 0票数 0

我正在将我们的swarm集群迁移到k8s集群,这意味着我需要将所有的组合文件重写为k8s文件。一切都变得很顺利,直到我到达瑞迪斯乐章...

来自redis的组成文件:是的,它很简单,因为它只是在开发期间测试缓存的东西……

代码语言:javascript
复制
version: "3"
services:
  db:
    image: redis:alpine
    ports:
      - "6380:6379"
    deploy:
      labels:
      - traefik.frontend.rule=Host:our-redis-url.com
      placement:
        constraints:
          - node.labels.so==linux
    networks:
      - traefik
networks:
  traefik:
    external: true

所以,我们在那个群里有4个节点...我的DNS (our-redis-url.com)指向其中的一个,它就像一个护身符。我使用url +端口6380简单地连接到redis。

现在……我已经为k8s创建了相同的东西,如下所示:

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-ms
  namespace: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      app: redis-ms
  template:
    metadata:
      labels:
        app: redis-ms
    spec:
      containers:
      - name: redis-ms
        image: redis:alpine
        ports:
          - containerPort: 6379
        resources:
          requests:
            cpu: 250m
            memory: 256Mi
          limits:
            cpu: 500m
            memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
  name: redis-ms
  namespace: prod
spec:
  selector:
    app: redis-ms
  ports:
  - protocol: TCP
    port: 6380
    targetPort: 6379
  type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: redis-ms
  namespace: prod
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: our-redis-url.com
    http:
      paths:
      - backend:
          service:
            name: redis-ms
            port:
              number: 6380
        path: /
        pathType: Prefix

但这并不管用。pod运行,从日志中我可以看到它正在等待连接,但我不知道如何像docker-compose (traefik.frontend.rule=Host:redis-ms.mstech.com.br来绑定url和端口部分)。

我已经尝试使用工具kompose来转换这个合成文件...哈哈,这不管用

如果有人能给我一些建议,或者帮我解决这个问题,我将不胜感激。

我使用带有traefik的k8s作为入口控制器。

EN

回答 1

Stack Overflow用户

发布于 2021-06-09 06:55:14

正如评论中提到的,Ingress系统仅用于HTTP流量。Traefik也支持TCP和UDP流量,但这与Ingress的内容是分开的,必须通过Traefik的更具体的工具(他们的自定义资源或配置文件)进行配置。更常见的情况是,您将使用LoadBalancer类型的服务,它会在您的云提供商中创建一个TCP LB。

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

https://stackoverflow.com/questions/67894565

复制
相关文章

相似问题

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