# #kubernetes #google-kubernetes-engine #kubernetes-ingress
Вопрос:
Создайте внешний вход для службы, подобной приведенной ниже.
Все создается, но без того поведения, которого я ожидаю.
- Глобальный IP-адрес не используется, вместо него используется другой
- HTTP все еще включен
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
annotations:
kubernetes.io/ingress.allow-http: false
kubernetes.io/ingress.global-static-ip-name: "my-ingress-ip"
labels:
app.kubernetes.io/instance: "my-service-api"
app.kubernetes.io/managed-by: "pulumi"
app.kubernetes.io/name: "my-service-api"
app.kubernetes.io/version: "1.0.0-service"
helm.sh/chart: "service-0.1.0"
name: "my-service-api-proxy"
namespace: "load-test"
spec:
backend:
serviceName: "my-service-api-proxy"
servicePort: 80
tls:
- secretName: "my-tls-secret-cert"
Как только я удалю kubernetes.io/ingress.allow-http аннотация, вход получает мой глобальный IP-адрес.
Кто-нибудь сталкивался с этой проблемой при создании входа с глобальным IP-адресом и доступом только по протоколу HTTPS?
Версия GKE: 1.18.16-gke.2100
Конфигурация Узла:
Версия ядра 5.4.89
Контейнер изображений ОС-Оптимизированная ОС от Google
Докер версии среды выполнения контейнера://19.3.14
версия kubelet v1.18.16-gke.2100
kube-прокси версия v1.18.16-gke.2100
Комментарии:
1. Обновил свой дескриптор, используя кавычки, и глобальный IP работает, но по какой-то причине он по-прежнему разрешает HTTP-трафик.
Ответ №1:
Это работает, не забудьте использовать кавычки для всех значений аннотаций, поскольку они являются строками.
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
annotations:
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: "my-ingress-ip"
labels:
app.kubernetes.io/instance: "my-service-api"
app.kubernetes.io/managed-by: "pulumi"
app.kubernetes.io/name: "my-service-api"
app.kubernetes.io/version: "1.0.0-service"
helm.sh/chart: "service-0.1.0"
name: "my-service-api-proxy"
namespace: "load-test"
spec:
backend:
serviceName: "my-service-api-proxy"
servicePort: 80
tls:
- secretName: "my-tls-secret-cert"
Кроме того, если вы обновляете существующий вход, дайте ему несколько минут (например, 10), чтобы он принял изменения