Для внешних ресурсов вы должны создать Endpoints
объект.
Это объясняется с помощью Сервисы без селекторов
Сервисы, чаще всего абстрактный доступ к блокам Kubernetes , но они также могут абстрагировать другие виды бэкэндов. Например:
- Вы хотите иметь в работе кластер внешней базы данных, но в своей тестовой среде вы используете свои собственные базы данных.
- Вы хотите, чтобы ваша служба указывала на службу в другое пространство имен или другой кластер.
- Вы переносите рабочую нагрузку в Kubernetes. Оценивая подход, вы запускаете только часть своих бэкэндов в Kubernetes.
В любом из этих сценариев ios вы можете определить Сервис без селектора Pod. Например:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
Поскольку эта служба не имеет селектора, соответствующий объект конечной точки не создается автоматически. Вы можете вручную сопоставить Службу с сетевым адресом и портом, на котором она работает, добавив объект Endpoint вручную:
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- ip: 192.0.2.42
ports:
- port: 9376
Так что, как только вы добавите Endpoint
setup Service
для него , вы сможете использовать внутри Ingress
.