Я развернул несколько микросервисов в кластере Kubernetes.Теперь проблема в том, что эти микросервисы не обмениваются данными с сервером Redis, независимо от того, развернуты ли они в том же кластере Kubernetes или размещены снаружи.но в то же время, если я запускаю микросервис вне кластера, он может получить доступ к обоим типам Redis, размещенным удаленно или развернутым в кластере k8s.Я не понимаю, что я делаю неправильно, вот мои файлы развертывания и службы yaml.
развертывание yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis-master
spec:
selector:
matchLabels:
app: redis
role: master
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
Служба yaml:
apiVersion: v1
kind: Service
metadata:
name: redis-service
spec:
ports:
-
nodePort: 30011
port: 80
targetPort: 6379
selector:
app: redis
role: master
tier: backend
type: NodePort
IСледил за несколькими блогами, также пытался получить помощь из других источников, но не работал.а также забыл упомянуть, что я могу получить доступ к Redis, развернутому в кластере k8s, с удаленных компьютеров с помощью диспетчера рабочего стола Redis.
# k8s кластер работает в Ubuntu 16.04
# Microservicesпри попытке извне k8s, работающие на компьютере Windows, могут получить доступ к redis в кластере k8s и за его пределами k8s с одним и тем же кодом.
Когда микросервисы пытаются установить связь с Redis изнутри кластера, получают следующий журнал
2019-03-11 10:28:50,650 [main] INFO org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer - Tomcat started on port(s): 8082 (http)
2019-03-11 10:29:02,382 [http-nio-8082-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization started
2019-03-11 10:29:02,396 [http-nio-8082-exec-1] INFO org.springframework.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms
Print : JedisConnectionException - redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
Print : JedisConnectionException - redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
Print : JedisConnectionException - redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool