#kubernetes #kubernetes-dns
#kubernetes #kubernetes-dns
Вопрос:
Я создаю пользовательский REDIS StatefulSet yaml. До сих пор я успешно развертывал приложение, но что-то не так с подчиненным устройством REDIS. Он не может найти мастер, и я не догадываюсь о причине неправильной конфигурации DNS.
Мой StatefulSet выглядит следующим образом:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis-server
namespace: scm
labels:
app.k8s/name: redis
app.k8s/instance: server
spec:
replicas: 3
serviceName: redis-server
selector:
matchLabels:
app.k8s/name: redis
app.k8s/instance: server
template:
metadata:
labels:
app.k8s/name: redis
app.k8s/instance: server
spec:
containers:
- name: redis-server
image: redis:6.0.9-alpine
imagePullPolicy: IfNotPresent
command: ["redis-server", "/data/conf/redis.conf"]
ports:
- name: redis
containerPort: 6379
и безголовый сервис, который выглядит как:
apiVersion: v1
kind: Service
metadata:
name: redis-server-headless
namespace: scm
labels:
app.k8s/name: redis
app.k8s/instance: server
app.k8s/part-of: gitlab
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: server
port: 6379
protocol: TCP
targetPort: redis
selector:
app.k8s/name: redis
app.k8s/instance: server
Когда я делаю nslookup redis-server-headless
, я могу найти IP-адреса, но когда я пытаюсь ping redis-server-0.redis-server-headless
или ping redis-server-0.redis-server
получаю сообщение об ошибке с неправильным адресом.
Чего мне не хватает?
Ответ №1:
Ваш serviceName
из redis statefuleset должен быть redis-server-headless
.