Кубернетес: у Ingress нет IP-адреса
Я устанавливаю кластер K8S с 3 узлами локально с virtualbox. Когда я пробую вход, он не устанавливает IP-адрес:
2017-11-11 17:00:49.015691 I | proto: duplicate proto type registered:
google.protobuf.Any
2017-11-11 17:00:49.016061 I | proto: duplicate proto type registered: google.protobuf.Duration
2017-11-11 17:00:49.016112 I | proto: duplicate proto type registered: google.protobuf.Timestamp
NAME HOSTS ADDRESS PORTS AGE
whale-ingress a.whale.hey,b.whale.hey 80 9m
Ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: whale-ingress
spec:
rules:
- host: a.whale.hey
http:
paths:
- path: /
backend:
serviceName: whale-svc-a
servicePort: 80
- host: b.whale.hey
http:
paths:
- path: /
backend:
serviceName: whale-svc-b
servicePort: 80
Я что-то не так установил?
3 ответа
Вы используете контроллер Ingress? Минимальный кластер Kubernetes не имеет контроллера Ingress по умолчанию. Если нет, попробуйте развернуть этот контроллер: https://github.com/kubernetes/ingress-nginx
У меня была такая же проблема, и я решил ее путем жесткого кодирования адреса в контроллере входа. Вы можете сделать это, добавив параметр «externalIPs» в спецификацию блока вида службы (во входном yaml), как показано ниже.
--snip--
externalIPs:
- 192.168.1.54
Ingress - это объект, который предоставляет только конфигурацию, а не активный компонент (такой как Pod или служба). Как сказал coreypobrien, вам нужно развернуть контроллер Ingress, который будет считывать входы, которые вы развернули в вашем кластере, и соответственно изменять его конфигурацию.
На этой странице вы можете найти документацию официального входного контроллера kubernetes, основанную на nginx https://github.com/kubernetes/ingress-nginx/blob/master/README.md
Другой вариант - входной контроллер traefik: https://docs.traefik.io/user-guide/kubernetes/