Я попытался создать внутренний балансировщик нагрузки со следующей аннотацией, как указано в этой документации :
networking.gke.io/internal-load-balancer-allow-global-access: "true"
Вот полный манифест:
apiVersion: v1
kind: Service
metadata:
name: ilb-global
annotations:
cloud.google.com/load-balancer-type: "Internal"
networking.gke.io/internal-load-balancer-allow-global-access: "true"
labels:
app: hello
spec:
type: LoadBalancer
selector:
app: hello
ports:
- port: 80
targetPort: 8080
protocol: TCP
Я попытался получить доступ к балансировщику нагрузки из виртуальной машины в другом регионе, но виртуальная машина не может достичь конечной точки.
Однако в соответствии с этой документацией я выполнил следующую команду в созданной пересылке -rule (GCP создает правило пересылки со случайным именем для всех балансировщиков нагрузки, которые можно получить с помощью команды gcloud compute forwarding-rules list
) для обновления глобального доступа:
gcloud beta compute forwarding-rules update abcrandomnamehehe --region [REGION-NAME] --allow-global-access
После выполнения вышеуказанной команды и обновления Балансировщик нагрузки вручную, конечная точка доступна из всех регионов. Требуется ли этот шаг команды gcloud
вручную?
Если да, то в чем тогда польза от аннотации? Я также аннотации с последней доступной версией GKE ( 1.15.4-gke.22 ), но не работает без обновления с помощью команды gcloud
. Что-то мне не хватает или это ошибка в GCP?
EDIT : я также открыл эту проблему с GCP, которая была довольно быстро, и они обновили опубликованную документацию c (15 января 2020 г.), чтобы особо упомянуть требование GKE 1.16 для работы функции глобального доступа.