Я определил фиктивную службу как средство регистрации своих модулей в 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 в этих условиях:
Так должен работать Kubernetes? Есть ли способ, кроме удаления проверки готовности, убедиться, что DNS продолжает разрешаться?
Я отредактировал вопрос, чтобы сделать его более понятным, master.company.default.svc.cluster.local
Да, поды не добавляются к конечным точкам службы, пока они не пройдут проверку готовности. Вы можете подтвердить это, выполнив следующую команду:
kubectl get endpoints company -n <your_namespace>
Вы не увидите никаких конечных точек, пока
readinessProbe
терпит неудачу.
Очень хороший, простой ответ!
Какую запись DNS вы используете для подключения к своим модулям?