将docker compose redis文件转换为kubernetes文件
我正在将我们的swarm集群迁移到k8s集群,这意味着我需要将所有的组件文件重写为k8s文件。一切都变得乌烟瘴气,直到我到达redis compose 来自redis的撰写文件: 是的,这很简单,因为只是在开发过程中测试缓存的内容将docker compose redis文件转换为kubernetes文件,kubernetes,docker-compose,redis,kubernetes-ingress,traefik-ingress,Kubernetes,Docker Compose,Redis,Kubernetes Ingress,Traefik Ingress,我正在将我们的swarm集群迁移到k8s集群,这意味着我需要将所有的组件文件重写为k8s文件。一切都变得乌烟瘴气,直到我到达redis compose 来自redis的撰写文件: 是的,这很简单,因为只是在开发过程中测试缓存的内容 version: "3" services: db: image: redis:alpine ports: - "6380:6379" deploy: labels:
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(我们的RedisURL.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工具来转换此合成文件。。。笑起来没用
如果有人能给我一些建议,或者帮我解决这个问题,我会很感激的
我将k8s与traefik一起用作入口控制器。如评论中所述,入口系统仅用于HTTP流量。Traefik也支持TCP和UDP通信,但这与入口无关,必须通过Traefik更具体的工具(自定义资源或配置文件)进行配置。更常见的情况是,您会使用LoadBalancer类型的服务,在云提供商中创建TCP LB。Redis服务不是HTTP,因此默认情况下Kubernetes Ingress系统不知道如何处理它。有一个非常详细的演练,但是对于Nginx入口控制器,而不是Træfik。但是,您真的希望您的私有数据存储可以从集群外部访问吗?我将尝试David Maze的aproach,搜索像Nginx这样的Traefik内容。谢谢提示!