правила брандмауэра по умолчанию для частного кластера. в GKE разрешить трафик только через порты 443
и 10250
. Это позволяет установить связь с kube-apiserver
и kubelet
соответственно.
Linkerd
использует порты 8443
и 8089
для связи между элементом управления и прокси-серверами, развернутыми в плоскость данных. .
Компонент tap использует порт 8089
для обработки запросов к своему apiserver
.
прокси-инжектор и валидатор профиля службы, оба из которых являются типами контроллеры доступа, используйте порт 8443
для обработки запросов.
документы Linkerd 2 содержат инструкции по настройке брандмауэра в частном кластере GKE: https://linkerd.io/2/reference/cluster-configuration/
Они включены ниже:
Получите имя кластера:
CLUSTER_NAME=your-cluster-name
gcloud config set compute/zone your-zone-or-region
Получите кластер MASTER_IPV4_CIDR:
MASTER_IPV4_CIDR=$(gcloud container clusters describe $CLUSTER_NAME \
| grep "masterIpv4CidrBlock: " \
| awk '{print $2}')
Получите СЕТЬ кластера:
NETWORK=$(gcloud container clusters describe $CLUSTER_NAME \
| grep "^network: " \
| awk '{print $2}')
Получите автоматически сгенерированный кластер NETWORK_TARGET_TAG:
NETWORK_TARGET_TAG=$(gcloud compute firewall-rules list \
--filter network=$NETWORK --format json \
| jq ".[] | select(.name | contains(\"$CLUSTER_NAME\"))" \
| jq -r '.targetTags[0]' | head -1)
Проверьте значения:
echo $MASTER_IPV4_CIDR $NETWORK $NETWORK_TARGET_TAG
# example output
10.0.0.0/28 foo-network gke-foo-cluster-c1ecba83-node
Создайте правила брандмауэра для прокси-инжектора и нажмите:
gcloud compute firewall-rules create gke-to-linkerd-control-plane \
--network "$NETWORK" \
--allow "tcp:8443,tcp:8089" \
--source-ranges "$MASTER_IPV4_CIDR" \
--target-tags "$NETWORK_TARGET_TAG" \
--priority 1000 \
--description "Allow traffic on ports 8843, 8089 for linkerd control-plane components"
Наконец, убедитесь, что брандмауэр создан:
gcloud compute firewall-rules describe gke-to-linkerd-control-plane
person
cpretzer
schedule
27.10.2019