#kubernetes
#kubernetes
Вопрос:
Я определил фиктивную службу как средство регистрации моих модулей в DNS, поскольку IP-адрес кластера не будет работать для моего приложения прямо сейчас.
apiVersion: v1
kind: Service
metadata:
name: company
spec:
selector:
app: company_application
clusterIP: None
apiVersion: apps/v1
kind: Deployment
metadata:
name: company-master-deployment
labels:
app: company_application
role: master
spec:
selector:
matchLabels:
app: company_application
role: master
strategy:
type: Recreate
template:
metadata:
labels:
app: company_application
role: master
spec:
hostname: master
subdomain: company
Я использую запись DNS для master.company.default.svc.cluster.local
подключения к этому модулю из другого модуля.
Я заметил действительно раздражающее поведение в Kubernetes в этих условиях:
- У меня есть модуль, который находится в состоянии «нездоровый», как определено проверкой готовности
- У меня есть другой модуль, приложение которого хочет выполнить поиск DNS в этом модуле
- Поиск DNS завершается ошибкой до тех пор, пока «неработоспособный» модуль не станет работоспособным.
Так ли должен работать Kubernetes? Есть ли какой-либо способ, кроме удаления проверки готовности, убедиться, что DNS продолжает разрешаться?
Комментарии:
1. Какую запись DNS вы используете для подключения к своим модулям?
2. Я отредактировал вопрос, чтобы сделать его более понятным, master.company.default.svc.cluster.local
Ответ №1:
Да, модули не добавляются к конечным точкам обслуживания, пока они не пройдут проверки готовности. Вы можете подтвердить это, выполнив следующую команду:
kubectl get endpoints company -n <your_namespace>
Вы не увидите никаких конечных точек, пока
Проверка готовности
не завершатся сбоем.
Комментарии:
1. Очень хороший, простой ответ!