[英]Why are IP adresses in GKE for fluentd / kube-proxy/prometheus equal to node addresses
我在 GKE 上运行 Kubernetes 集群,我注意到在 kube-system 中,Pod 的 IP 地址与
fluentd-gcp-...
kube-proxy-gke-gke-dev-cluster-default-pool-...
prometheus-to-...
与节点的相同,而其他 pod 如
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>
其中 pod IP 范围为:10.36.0.0/14
和节点在 10.10.1.0/24
pod 地址范围内有 IP 地址。 前三个具体是什么?
这是因为 kube proxy、Fluentd、Prometheus 等 pod 直接通过hostNetwork: true
在主机网络中运行。 您可以描述这些 pod 并验证hostNetwork: true
是否存在。
现在说到为什么这些 Pod 首先需要在主机网络中运行,kube 代理需要访问主机的 IP 表,prometheus 收集指标,Fluentd 从主机系统收集日志。
您可以使用hostNetwork: true
部署一个示例 pod,例如 nginx,它将获得节点 IP。如果删除hostNetwork: true
,它将从 pod 范围中获得 IP。
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
containers:
- image: nginx
name: nginx
restartPolicy: Always
hostNetwork: true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.