У меня есть простой попаданию для виртуального хостинга:GCE Ingress ресурсов и услуг ClusterIP
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-access
spec:
rules:
- host: service1.domain.com
http:
paths:
- backend:
serviceName: service1
servicePort: 80
- host: service2.domain.com
http:
paths:
- backend:
serviceName: service2
servicePort: 80
Услуги service1 и servcie2 имеют определения, как:
apiVersion: v1
kind: Service
metadata:
name: service1
labels:
chart: "chart"
spec:
type: ClusterIP # LoadBalancer
ports:
- port: 80
targetPort: 80
protocol: TCP
name: web
selector:
app: service1
Если развернуть службы с типом ClusterIP
они не работа, вход отвечает:
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
Тогда я ча Нге тип одной из услуг LoadBalancer
, он получает внешний IP-адрес, и я могу получить к нему доступ с помощью этого внешнего IP, а также я могу получить доступ к нему, хотя входной (используя имя хоста service1.domain.com
)
Если я пытаюсь получить доступ к Service2 (service2 .domain.com - который до сих пор имеет тип ClusterIP
) попаданию отвечает:
default backend - 404
Если изменить тип servcice2 к LoadBalancer
он начинает работать через попаданию.
Я думаю, что вход должен работать с услугами ClusterIP
, потому что тип службы LoadBalancer присваивает внешний IP-адрес, который не нужен вообще, и если я правильно его использую, gcloud ingress resource по умолчанию должен использовать свой собственный load loadbalancer.
Так что же случилось с установкой?