在GCE中添加NAT网关后,“ kubectl日志”不起作用

时间:2018-09-18 04:23:19

标签: kubernetes google-compute-engine nat google-kubernetes-engine

我所做的是按照https://cloud.google.com/vpc/docs/special-configurations中“构建高可用性和高带宽NAT网关”部分中的说明进行操作,在将所有实例标记为“ no-ip”之后,我不再能够使用“ kubectl日志”访问pod日志。

是因为kubectl logs是在使用ssh吗?有什么解决方法可以查看Pod日志?

2 个答案:

答案 0 :(得分:0)

它使用event.stopPropagation()连接到节点,然后从那里查看容器中的日志,例如kube-proxy会这样做。然后它将输出代理返回到您从docker logs <container-name>运行的任何位置。

Kubernetes在其所有节点中使用大量iptables和路由,因此您对运行它的实例进行的任何更改都会影响组件之间的通信方式。检查“ no-ip”标记是否使其在运行Kubernetes节点的地方更改/添加/删除了防火墙规则。

希望有帮助!

答案 1 :(得分:0)

如Patrick所说,您需要一个新的路由规则,该规则将帮助所有流量通过默认网关而不是NAT到达主节点。请遵循此NAT configuration specifically for GKE,其中提到了其他路线。

kubectl日志与主服务器上的k8s api-server交互,然后主服务器从容器中检索日志(在节点上有效运行docker日志),并将信息发送回给您。每当您运行kubectl命令时,它都会与主服务器上的API服务器进行交互。然后,主服务器使用SSH连接到该节点。您还可以通过运行kubectl get端点找到主服务器的IP。 “ kubernetes”端点是您的主端点的IP。