gpt4 book ai didi

redis - 在 Kubernetes 中公开 Redis 集群中的每个 pod

转载 作者:可可西里 更新时间:2023-11-01 11:15:12 24 4
gpt4 key购买 nike

我正在尝试在 Kubernetes 中设置 Redis 集群。主要要求是 Redis 集群中的所有节点都必须在 Kubernetes 外部可用。因此客户端可以直接连接每个节点。但我不知道如何以这种方式配置服务。

集群的基本配置。服务进入 k8s 没问题,但不能从外部完全访问。

    apiVersion: v1
kind: ConfigMap
metadata:
name: redis-cluster
labels:
app: redis-cluster
data:
redis.conf: |+
cluster-enabled yes
cluster-require-full-coverage no
cluster-node-timeout 15000
cluster-config-file /data/nodes.conf
cluster-migration-barrier 1
appendonly no
protected-mode no
---
apiVersion: v1
kind: Service
metadata:
annotations:
service.alpha.kubernetes.io/tolerate-unready-endpoints: "false"
name: redis-cluster
labels:
app: redis-cluster
spec:
type: NodePort
ports:
- port: 6379
targetPort: 6379
name: client
- port: 16379
targetPort: 16379
name: gossip
selector:
app: redis-cluster
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: redis-cluster
labels:
app: redis-cluster
spec:
serviceName: redis-cluster
replicas: 6
template:
metadata:
labels:
app: redis-cluster
spec:
hostNetwork: true
containers:
- name: redis-cluster
image: redis:4.0.10
ports:
- containerPort: 6379
name: client
- containerPort: 16379
name: gossip
command: ["redis-server"]
args: ["/conf/redis.conf"]
readinessProbe:
exec:
command:
- sh
- -c
- "redis-cli -h $(hostname) ping"
initialDelaySeconds: 15
timeoutSeconds: 5
livenessProbe:
exec:
command:
- sh
- -c
- "redis-cli -h $(hostname) ping"
initialDelaySeconds: 20
periodSeconds: 3
volumeMounts:
- name: conf
mountPath: /conf
readOnly: false
volumes:
- name: conf
configMap:
name: redis-cluster
items:
- key: redis.conf
path: redis.conf

最佳答案

给定:

    spec:
hostNetwork: true
containers:
- name: redis-cluster
ports:
- containerPort: 6379
name: client

您的 StatefulSet 似乎配置错​​误,因为如果 hostNetworktrue,您必须提供 hostPort ,根据 PodSpec 文档,该值应匹配 containerPort:

hostPort integer - Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort.

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#containerport-v1-core

关于redis - 在 Kubernetes 中公开 Redis 集群中的每个 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51212362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com