Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kubernetes中使用Redis部署Spring引导应用程序——Jedis连接被拒绝错误_Spring_Spring Boot_Kubernetes_Jedis_Spring Data Redis - Fatal编程技术网

在Kubernetes中使用Redis部署Spring引导应用程序——Jedis连接被拒绝错误

在Kubernetes中使用Redis部署Spring引导应用程序——Jedis连接被拒绝错误,spring,spring-boot,kubernetes,jedis,spring-data-redis,Spring,Spring Boot,Kubernetes,Jedis,Spring Data Redis,在部署到库伯内特斯时,由于绝地连接拒绝错误,redis connection无法建立连接 "message": "Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)", 部署yaml文件: apiVe

在部署到库伯内特斯时,由于绝地连接拒绝错误,redis connection无法建立连接

"message": "Cannot get Jedis connection; nested exception is 
redis.clients.jedis.exceptions.JedisConnectionException: 
java.net.ConnectException: Connection refused (Connection refused)",
部署yaml文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: redis-master
spec:
  selector:
    matchLabels:
      app: redis
  replicas: 1
  template:
    metadata:
      labels:
        app: redis
    spec:
      containers:
      - name: redis-master
        image: gcr.io/google_containers/redis:e2e

        ports:
        - containerPort: 6379

        volumeMounts:
        - name: redis-storage
          mountPath: /data/redis

      volumes:
      - name: redis-storage
---
apiVersion: v1
kind: Service
metadata:
  name: redis-master
  labels:
    app: redis
spec:
  ports:
    - port: 6379
  selector:
    app: redis
---项目中使用的Jedis代码示例:

JedisConnectionFactory jedisConnectionFactoryUpdated() {

        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("redis-master");
        redisStandaloneConfiguration.setPort(6379);

        JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofSeconds(60));// 60s connection timeout

        JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(redisStandaloneConfiguration,
                jedisClientConfiguration.build());

        return jedisConFactory;
    }

有人克服了这个问题吗?TIA。

您需要首先更新您的服务,以反映:

apiVersion: v1
kind: Service
metadata:
  name: redis-master
  labels:
    app: redis
spec:
  ports:
    - port: 6379
      targetPort: 6379
  selector:
    app: redis
完成后,您可以使用nmap检查redis服务是否启动并响应。以下是使用我的nmap图像的示例:

kubectl run --image=appsoa/docker-alpine-nmap --rm -i -t nm -- -Pn 6379 redis-master

另外,确保redis和spring boot应用程序部署到同一名称空间。如果没有,则需要使用来明确定义主机名。(即:“redis master.mynamespace”)。

您尝试过使用“redis master..svc.cluster.local”作为主机名吗?@AlexanderPankin我没有尝试过。蒂亚,我来查一下。谢谢你,尤马特奥!。这就是答案。我犯了这个错误:)