Общие сведения о сети GKE VPC-Native Cluster Pod

Давайте воспользуемся некоторыми инструментами linux и kubectl, чтобы нарисовать базовый поток связи модулей GKE.

Прежде чем создавать кластер GKE, вам необходимо создать подсеть под данным VPC в облачной консоли Google.

кодментор1.png

Я дал диапазон подсети как 10.120.20.0/24 (основной диапазон), и этот основной диапазон будет назначен всем рабочим узлам, которые мы добавляем в кластер.

После создания кластера вы можете заметить, что в подсеть будут добавлены два вторичных диапазона IP-адресов.

кодементор2.png

Обычно эти вторичные диапазоны используются для модулей и сервисов.

В нашем кластере вторичный диапазон 10.12.0.0/14 будет использоваться для модулей и
Вторичный диапазон 10.204.0.0/20 будет использоваться для конечных точек служб.

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

у меня тоже есть администратор кластера привилегированный экземпляр, в котором я установил kubectl, и позволяет собрать некоторые детали, используя экземпляр

  1. Найдите узлы

kubectl получить узлы -o широкий | awk ‘{напечатать $1 «\t» $2 «\t» $6}’
Снимок экрана 30 сентября 2019 г., 14:42:27.png

Итак, у нас есть три узла

Node3 = gke-cluster-standard-clus-default-pool-0e999ebf-rs5w
Node2 = gke-cluster-standard-clus-default-pool-17b978bb-wpm6
Node1 = gke-cluster-standard-clus-default-pool-7cf8a05e-ksb0

  1. Давайте создадим развертывание с репликацией 6. создадим следующий файл
    развертывание.yaml
    Снимок экрана 30 сентября 2019 г., 15.01.45.png

  2. kubectl get po -o широкий | grep nginx-развертывание | awk ‘{print $1 «\t» $2 «\t» $3 «\t» $6 «\t» $7}’
    Скриншот 2019-09-30 в 15.24.03.png

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

Узел 1=nginx-развертывание-76bf4969df-vl6jk (Sub1), nginx-развертывание-76bf4969df-vzs4r (Под2)
Узел2=nginx-развертывание-76bf4969df-89qkh (Под3), nginx-развертывание-76bf4969df-fk2m6 (Sub4)
узел 3=nginx-развертывание-76bf4969df-2kpxz (Под5), nginx-развертывание-76bf4969df-95bxn (Под6)

Давайте рассмотрим модули, работающие под Узел 1. Итак, мы теперь знаем оба Sub1 а также Под2 имеют IP-адреса 10.12.2.57 и 10.12.2.56 по порядку.

Давайте подробно проверим сетевые интерфейсы этих модулей с помощью следующих команд.

kubectl exec -it nginx-deployment-76bf4969df-vl6jk IP
pod5.png

kubectl exec -it nginx-deployment-76bf4969df-vzs4r IP
pod6.png

eth0@if60 указывает на то, что Sub1 интерфейс Ethernet связан с виртуальным сетевым интерфейсом с номером строки 60 хоста Узел 1.
Сходным образом eth0@if59 указывает на то, что Под2 интерфейс Ethernet связан с виртуальным сетевым интерфейсом с номером строки 59 хоста Узел 1.

Отлично! Теперь отправляемся в терминал Узел 1 и выполните следующую команду, чтобы найти, к чему относятся эти номера строк 59 и 60.

IP а
Снимок экрана 30 сентября 2019 г., 22.02.11.pngСнимок экрана 30 сентября 2019 г., 22.02.40.png

Теперь очень ясно, что Sub1 а также Под2 интерфейсы Ethernet соединены с хост-узлом (Узел 1) виртуальный интерфейс Ethernet (Veth).

Также ниже команда покажет вам эти интерфейсы veth veth6758a8b4 а также veth3d227386 соединены с мостом cbr0 с IP-адресом 10.12.2.1/24.

brctl-шоу
Скриншот 2019-09-30 в 22.13.49.png
Примечание: вы можете установить бридж-утилиты при необходимости проверить

На основе приведенных выше идентификаций диаграмма связи модуля Worker будет выглядеть следующим образом.

Снимок экрана 02.10.2019, 6:42:38.png

Подобным образом я могу нарисовать диаграмму для Узел2 как показано ниже

Снимок экрана 01.10.2019, 6:48:54.png

Вы знаете, что рабочие узлы кластера GKE являются экземплярами Compute Engine VPC, поэтому эти экземпляры автоматически взаимодействуют друг с другом, используя основную подсеть VPC.

Но если Sub1 из Узел 1 нужно общаться с Под3 из Узел2то в кластере должна быть включена маршрутизация.

Но при создании кластера GKE рекомендуется создать кластер с опцией ** Native VPC — IP Aliasing**.

Снимок экрана 01.10.2019, 14:46:44.png

Google говорит, что преимущество IP-псевдонимов в Native VPC

«IP-адреса Pod изначально маршрутизируются в сети GCP (в том числе через сетевой пиринг VPC) и больше не используют квоту маршрутизации».

Пожалуйста, обратитесь к эта ссылка

Pod Ranges используют то, что называется Псевдонимы IP-адресов которые изначально маршрутизируются. Это означает, что логика их маршрутизации встроена в сетевой уровень. И нет необходимости настраивать какие-то дополнительные маршруты. В режиме возможно масштабирование до 1000 узлов с помощью VPC Native.

Псевдонимы IP-адресов поддерживают VPC, а маршрутизация обеспечивается VPC.. При использовании IP-псевдонимов маршрутизация модулей выполняется самим VPC, и нет необходимости добавлять ручные маршруты для доступа к IP-адресам модулей. (Ссылаться на эта ссылка )

Попробуем пропинговать с Sub1 к Под3

kubectl exec -it nginx-deployment-76bf4969df-vl6jk ping 10.12.0.32

Снимок экрана 01.10.2019, 15:58:18.png

Снимок экрана 01.10.2019, 16.18.28.png

Следующая диаграмма иллюстрирует наш кластер
Снимок экрана 02.10.2019, 8:58:52.png

Итак, в моем следующем посте я объясню всю оверлейную сеть кластера Kubernetes, созданного с нуля.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *