Ale*_*don 1 redis kubernetes google-kubernetes-engine
我正在尝试部署一个redis pod,以允许我的暂存应用程序连接到它(以避免在暂存 ENV 中使用 Redis 托管服务)。
我正在使用Google Cloud Platform和GKE,因此托管 k8s 集群...
但是,当我尝试建立连接(仅从另一个 redis pod 进行测试)时,我收到此消息:
Could not connect to Redis at redis-cip.redis.svc.cluster.local:6379: Connection refused
Run Code Online (Sandbox Code Playgroud)
我用来进行测试的命令是这样的:
redis-cli -h redis-cip.redis.svc.cluster.local -p 6379
Run Code Online (Sandbox Code Playgroud)
URL 由以下部分组成:
此外,正如 StackOverflow 上的一些问题中已经写的那样,我使用此 redis 配置:
protected-mode no
maxmemory 32mb
maxmemory-policy allkeys-lru
Run Code Online (Sandbox Code Playgroud)
附上完整的 k8s 映射:
配置映射:
apiVersion: v1
kind: ConfigMap
metadata:
name: redis-configmap
namespace: redis
data:
redis.conf: |
protected-mode no
maxmemory 32mb
maxmemory-policy allkeys-lru
Run Code Online (Sandbox Code Playgroud)
Redis部署:
apiVersion: v1
kind: Pod
metadata:
name: redis
namespace: redis
spec:
containers:
- name: redis
image: redis
command:
- redis-server
- /usr/local/etc/redis/redis.conf
env:
- name: MASTER
value: "true"
ports:
- containerPort: 6379
volumeMounts:
- mountPath: /redis-master-data
name: data
- mountPath: /usr/local/etc/redis/
name: redis-configmap
resources:
requests:
memory: {{ .Values.resources.requests.memory }}
cpu: {{ .Values.resources.requests.cpu }}
limits:
memory: {{ .Values.resources.limits.memory }}
cpu: {{ .Values.resources.limits.cpu }}
volumes:
- name: data
emptyDir: {}
- name: redis-configmap
configMap:
name: redis-configmap
Run Code Online (Sandbox Code Playgroud)
集群IP服务:
apiVersion: v1
kind: Service
metadata:
name: redis-cip
namespace: redis
labels:
app: redis
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
type: ClusterIP
Run Code Online (Sandbox Code Playgroud)
连接被拒绝,因为没有带有 label 的 pod app:redis。向您的 pod 添加与服务相同的标签spec.selector
apiVersion: v1
kind: Pod
metadata:
name: redis
namespace: redis
labels:
app:redis
spec:
containers:
- name: redis
image: redis
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6463 次 |
| 最近记录: |