Автор оригинала: Muthulingam Jayakanthan.
Позволяет использовать некоторые из инструментов Linux и Kubectl, чтобы нарисовать базовый поток связи GKE PODS.
Прежде чем создать кластер GKE, вам нужно создать подсеть под заданной VPC в облачной консоли Google
Я дал диапазон подсети как 10.120.20.0/24 (основной диапазон), и этот основной диапазон будет назначен любым рабочим узлам, которые мы добавляем к кластеру.
После создания кластера вы можете заметить, что в подсети будет два вторичных диапазона IP.
Обычно эти дополнительные диапазоны, используемые для стручек и услуг
В нашем кластере 10.12.0.0/14 Вторичный диапазон будет использоваться для PODS и 10.204.0.0/20 Вторичный диапазон будет использоваться для конечных точек
Предполагая, что есть кластер GKE с вышеупомянутыми деталями, и давайте понять POD Communication.
Я также имеющую Cluster-admin Привилегированный экземпляр, в котором я установил Kubectl и давайте собираем некоторые детали, используя экземпляр
- Найти узлы
Kubectl Получите узлы-как широкий | awk ‘{Печать $ 1 «\ t» $ 2 «\ T» $ 6}’
Поэтому у нас есть три узла
Node3-Cluster-Standard-Clus-Clus-Clus-Pool-Pool-0E999EBF-RS5W -Cluster-Standard-Clus-Clus-Pool-Pool-17B978BB-WPM6 -Cluster-Standard-Clus-Pool-Pool-7CF8A05E-KSB0
Давайте создадим развертывание с репликацией 6. Создайте следующий файл Развертывание.yaml
Kubectl Получите Po -o широко | Greep Nginx-развертывание | awk ‘{Печать $ 1 «\ t» $ 2 «\ T» $ 3 «$ 3» $ 6 «\ T» $ 7}’
Так что каждый работник узел работает два стручка в нем
Node1 = NGINX-развертывание-76BF4969DF-VL6JK ( POD1 ), Nginx-развертывание-76BF4969DF-VZS4R ( POD2 ) Node2 = NGINX-развертывание-76BF4969DF-89QKH ( POD3 ), Nginx-развертывание-76BF4969DF-FK2M6 ( POD4 ) Node3 = NGINX-развертывание-76BF4969DF-2KPXZ ( POD5 ), nginx-развертывание-76BF4969DF-95BXN ( POD6 )
Давайте рассмотрим стручки под Node1. . Итак, теперь мы знаем оба POD1 и POD2 имеют IP-адреса 10.12.2.57 и 10.12.2.56 в порядке.
Давайте проверим эти сетевые интерфейсы Pods в деталях следующими командами
kubectl exec -it nginx-развертывание-76BF4969DF-VL6JK IP A
kubectl exec -it nginx-развертывание-76BF4969DF-VZS4R IP A
eth0 @ if60 указывает на то что POD1 Интерфейс Ethernet сочетается с виртуальным сетевым интерфейсом со строкой № 60 хоста Node1 Отказ Точно так же eth0 @ if59 указывает на то что POD2 Интерфейс Ethernet соединен с виртуальным сетевым интерфейсом со строкой № 59 хоста Node1 Отказ
Отлично! Теперь отпустите к терминалу Node1 и выполнить следующую команду, чтобы найти, какие эти строки номера 59 и 60 ссылаются на
IP A.
Теперь очень ясно, что POD1 и POD2 Интерфейсы Ethernet соединены с интерфейсом Ethernet ( Node1 ) (Veth).
Также подведенная ниже командование покажет вам эти Veth Interfaces veth6758a8b4 и veth3d227386 связаны с мостом CBR0 имея IP-адрес 10.12.2.1/24.
Brttl Show Примечание: вы можете установить Мост-Utils При необходимости проверять
На основании вышеуказанных идентификаций диаграмма связи POD работника будет ниже
Аналогичным образом я могу нарисовать диаграмму для Node2 как ниже
Вы знаете, что узелки GKE Cluster Cluster являются вычисляющими экземплярами VPC двигателя, чтобы эти экземпляры автоматически передавали друг друга с помощью первичной подсети VPC.
Но если POD1 Node1 нужно общаться с POD3 Node2. Затем в кластере должен быть маршрутизация.
Но при создании кластера GKE есть рекомендуемый вариант для создания кластера с ** Нативным VPC — IP-алиасом ** Опция
Google говорит, что польза от псевдонима IPS на родном VPC
» IP-адреса POD изначально портируют в сети GCP (в том числе через VPC Network Polying) и больше не используйте маршрутную квоту.
Пожалуйста, обратитесь к эта ссылка
Стручие диапазоны используют что-то называемое Алиас IP-адреса которые являются исходными ростами. Это означает, что логика для маршрута их встроена в сетевой слой. И нет необходимости настроить любые дополнительные маршруты. В режиме можно масштабировать до 1000 узлов с родным VPC.
IP-адреса псевдоним являются VPC, а маршрутизация позаботится о VPC Отказ С IP-алиасом, маршрутизация POD постарается по самому VPC, и нет необходимости добавлять ручные маршруты для достижения POD IP. (см. Эта ссылка )
Давайте попробуем пинг из POD1 к Pod3.
kubectl exec -it nginx-развертывание-76bf4969df-vl6jk ping 10.12.0.32
Следующая диаграмма иллюстрирует наш кластер
Поэтому в моем следующем посте я объясню полную наложение кластеров Kubernetes, созданную с нуля.
Оригинал: «https://www.codementor.io/@muthulingamjayakanthan/understanding-gke-vpc-native-cluster-pod-networking-zb6j0l2w8»