GKE Connect запускается успешно, но кластер не отображается на консолях GCP

Доброе утро!

В последнее время я экспериментировал с GKE Connect и пытался зарегистрировать кластеры, сгенерированные " удаленными "-kops, на виртуальных машинах GCP и AWS, чтобы я мог отслеживать их на консоли GCP.

Если вы не читали о GKE Connect, вы можете найти официальную документацию здесь.

Теперь проблема в том, что после выполнения нескольких руководств и проверки всего, агент GKE Connect работает правильно на моих кластерах k8s, но они никогда не отображаются в моей консоли GCP как удаленные кластеры - вы можете найти руководство по шагам, которые я Заработал на этом репозитории.

В основном я сделал следующие шаги:

  1. Включите необходимые API GCP
  2. Создайте учетную запись службы для целевого кластера
  3. Назначьте созданной SA роль gkehub.connect.
  4. Создайте закрытый ключ SA
  5. Запустите агент, используя следующую команду:
gcloud alpha container hub register-cluster ${CLUSTER_NAME} \
  --context=${CLUSTER_NAME} \
  --service-account-key-file=/var/lib/jenkins/gke-connect/${SERVICE_ACC}-gke-connect-creds.json \
  --project=${CLOUD_PROJECT}

Агент развернут в моем кластере, и журналы контейнера отображаются следующим образом:

2019/12/13 08:57:03.403373 dialer.go:261: dialer: dial: connecting to gkeconnect.googleapis.com:443...
2019/12/13 08:57:03.515452 dialer.go:272: dialer: dial: connected to gkeconnect.googleapis.com:443
2019/12/13 08:57:03.515483 tunnel.go:314: serve: opening egress stream...
2019/12/13 08:57:03.515545 tunnel.go:322: serve: registering project_number="681949624886", connection_id="db3fb4d9-1d7f-11ea-927b-0218619c9f84" connection_class="DEFAULT" agent_version="20191206-03-00" ...
2019/12/13 08:57:03.515592 dialer.go:222: Dial successful, current connections: 3
2019/12/13 08:57:08.515779 tunnel.go:374: serve: serving requests...

Кстати, запросы API, похоже, занимают очень много времени - консоль API GCP отображает в среднем 8 минут времени ответа. Вы, ребята, испытывали что-нибудь подобное?

Спасибо!

Редактировать 1 Добавление дополнительной информации

Не уверен, так ли это должно работать, поскольку это нигде не задокументировано, но агент GKE Connect, похоже, обрабатывает 3 соединителя, которые отключаются через 5-8 минут со следующим шаблоном трассировки:

2019/12/13 11:04:30.519779 dialer.go:277: dialer: dial: connection to gkeconnect.googleapis.com:443 closed after 8m1.174074486s
2019/12/13 11:04:30.519831 dialer.go:204: dialer: connection done: <nil>
2019/12/13 11:04:30.519839 dialer.go:305: dialer: backoff: reset
2019/12/13 11:04:30.519847 dialer.go:236: dialer: dial interval was 5m0.950672921s
2019/12/13 11:04:30.519859 dialer.go:180: dialer: waiting for next event, outstanding connections=2

Редактировать 2 Связь

Подключение к требуемым конечным точкам также кажется нормальным изнутри контейнера, развернутого в моем кластере:

/usr/src/app # ping oauth2.googleapis.com
PING oauth2.googleapis.com (172.217.21.234): 56 data bytes
64 bytes from 172.217.21.234: seq=0 ttl=48 time=1.169 ms
64 bytes from 172.217.21.234: seq=1 ttl=48 time=1.165 ms

--- oauth2.googleapis.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.165/1.167/1.169 ms

/usr/src/app # ping gkeconnect.googleapis.com
PING gkeconnect.googleapis.com (172.217.22.42): 56 data bytes
64 bytes from 172.217.22.42: seq=0 ttl=48 time=1.115 ms
64 bytes from 172.217.22.42: seq=1 ttl=48 time=1.201 ms

--- gkeconnect.googleapis.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.115/1.158/1.201 ms
/usr/src/app # ping gkehub.googleapis.com
PING gkehub.googleapis.com (216.58.206.10): 56 data bytes
64 bytes from 216.58.206.10: seq=0 ttl=48 time=1.374 ms
64 bytes from 216.58.206.10: seq=1 ttl=48 time=1.428 ms

--- gkehub.googleapis.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.374/1.401/1.428 ms

/usr/src/app # ping www.googleapis.com
PING www.googleapis.com (172.217.16.202): 56 data bytes
64 bytes from 172.217.16.202: seq=0 ttl=48 time=1.357 ms
64 bytes from 172.217.16.202: seq=1 ttl=48 time=1.382 ms

--- www.googleapis.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.357/1.369/1.382 ms

/usr/src/app # ping accounts.google.com
PING accounts.google.com (172.217.23.141): 56 data bytes
64 bytes from 172.217.23.141: seq=0 ttl=48 time=1.447 ms
64 bytes from 172.217.23.141: seq=1 ttl=48 time=1.400 ms

--- accounts.google.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 1.400/1.423/1.447 ms

/usr/src/app # ping gcr.io
PING gcr.io (173.194.76.82): 56 data bytes
64 bytes from 173.194.76.82: seq=0 ttl=32 time=10.311 ms
64 bytes from 173.194.76.82: seq=1 ttl=32 time=10.386 ms

--- gcr.io ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 10.311/10.348/10.386 ms

Изменить 3 Дальнейшее тестирование

Благодаря Армандо в комментариях я еще раз взглянул на официальный семинар Anthos. Также были обнаружены эти кодовые лаборатории, которые рассказывают одну и ту же историю.

Они, кажется, утверждают, что для регистрации кластера требуется учетная запись службы из белого списка, но они никогда не заявляют, на что похож процесс " белого списка ".

Проверяя сценарии GKE Connect, он делает почти то же самое, что и я: создает учетную запись службы, предоставляет необходимые разрешения, регистрирует мой кластер и генерирует KSA, ключ которого я могу использовать для доступа к кластеру в консоли GCP.

Теперь есть отрывочная линия о процессе внесения в белый список, которая может быть ключом к решению этой проблемы, но я удивлен, что не смог найти никакой ссылки на этот процесс.

1 ответ

Решение

Для использования Anthos от Google Cloud требуется платная подписка. Документы, которые вы просматриваете, работают с существующими подписками. Чтобы попробовать или купить Anthos, вам необходимо обратиться в отдел продаж. Ссылки находятся на главной странице Anthos здесь https://cloud.google.com/anthos/

Другие вопросы по тегам