我正在将我们的swarm集群迁移到k8s集群,这意味着我需要将所有的组合文件重写为k8s文件。一切都变得很顺利,直到我到达瑞迪斯乐章...
来自redis的组成文件:是的,它很简单,因为它只是在开发期间测试缓存的东西……
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创建了相同的东西,如下所示:
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作为入口控制器。
发布于 2021-06-09 06:55:14
正如评论中提到的,Ingress系统仅用于HTTP流量。Traefik也支持TCP和UDP流量,但这与Ingress的内容是分开的,必须通过Traefik的更具体的工具(他们的自定义资源或配置文件)进行配置。更常见的情况是,您将使用LoadBalancer类型的服务,它会在您的云提供商中创建一个TCP LB。
https://stackoverflow.com/questions/67894565
复制相似问题