Я создал частный кластер GKE ( версия: 1.13.6-gke.13 ), используя следующую команду:
gcloud container clusters create a-cluster-with-user-pass \
--network vpc-name \
--subnetwork subnet-name \
--enable-master-authorized-networks \
--username random \
--password averylongpassword \
--enable-ip-alias \
--enable-private-nodes \
--enable-private-endpoint \
--master-ipv4-cidr xxx.xx.xx.xx/28 \
--cluster-version 1.13.6-gke.13 \
--num-nodes 2 \
--zone asia-south1-a
Я вижу, что порт (10255) открыт в обоих узлах (или мы можем сказать, GCP-вычисления), созданных в вышеуказанном кластере.
Если я создаю простые экземпляры вычислений GCP (всего у меня есть 3 экземпляра виртуальных машин) и пытаюсь получить доступ к внутреннему IP-адресу узла GKE через порт 10255 с этой виртуальной машины, я могу получить к нему доступ без какой-либо аутентификации или авторизации.
Ниже приведена команда, используемая для создания экземпляра вычислений GCP:
gcloud compute instances create vm-name \
--network vpc-name \
--subnetwork subnet-name \
--zone asia-south1-a
Если я отправлю простой запрос CURL GET по адресу ( xxx.xx.xx.xx: 10255 / pods ), я получу тонны информации о модулях и приложениях.
Как я вижу в документации Kubernetes здесь , упоминается, что:
--read-only-port int32
The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable) (default 10255)
Я попытался отключить порт, отредактировав файл kube-config.yaml
в узле, выполнив ssh
и перезапустив kubelet, и я добился успеха. Но хороший ли это подход? Я считаю, что может быть несколько проблем, когда xxx.xx.xx.xx: 10255 / metrics отключено. Есть ли способ обезопасить порт? Вместо того, чтобы отключить его?
Я вижу эту проблему github , и я уверен, что есть способ защитить этот порт. Я не уверен, как это сделать.
Я вижу, что документация Kubernetes в целом предоставляет нам несколько способов защиты порта. Как это сделать в Google Kubernetes Engine?