Почему IP-адреса в GKE для fluentd / kube-proxy / prometheus равны адресам узлов - PullRequest
0 голосов
/ 28 апреля 2020

Я запускаю кластер Kubernetes на GKE, и я заметил, что в kube-системе IP-адреса модулей с

fluentd-gcp-...
kube-proxy-gke-gke-dev-cluster-default-pool-...
prometheus-to-...

такие же, как у узлов, в то время как другие модули, такие как

event-exporter-v0.3.0-...
stackdriver-metadata-agent-cluster-level-...
fluentd-gcp-scaler-...
heapster-gke-...
kube-dns-...
l7-default-backend-...
metrics-server-v0.3.3-...

например,

kube-system   fluentd-gcp-scaler-bfd6cf8dd-58m8j                          1/1     Running   0          23h   10.36.1.6   dev-cluster-default-pool-c8a74531-96j4   <none>           <none>
kube-system   fluentd-gcp-v3.1.1-24n5s                                    2/2     Running   0          24h   10.10.1.5   dev-cluster-default-pool-c8a74531-96j4   <none>           <none>

, где диапазон IP-адреса модуля: 10.36.0.0/14

, а узлы 10.10.1.0/24

есть IP-адреса в диапазоне адресов. Что конкретно c о первых трех?

1 Ответ

2 голосов
/ 28 апреля 2020

Это связано с тем, что такие модули, как Kube Proxy, Fluentd, Prometheus, работают в сети хоста напрямую через hostNetwork: true. Вы можете описать эти модули и убедиться, что hostNetwork: true присутствует.

Теперь доходит до того, что эти модули должны в первую очередь запускаться в сети хоста, прокси-серверу kube требуется доступ к IP-таблицам хоста, prometheus собирает метрики, а Fluentd собирает журналы из системы хоста.

Вы можете просто развернуть образец модуля, например nginx, с помощью hostNetwork: true, и он получит IP-адрес узла. Если вы удалите hostNetwork: true, он получит IP из диапазона CIDR модуля.

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: nginx
spec:
  containers:
  - image: nginx
    name: nginx
  restartPolicy: Always
  hostNetwork: true
...