我应该能够从我的 gke 节点看到网络命名空间吗?

我应该能够从我的 gke 节点看到网络命名空间吗?

我正在探索 gke。我通过 GCP GUI 创建了一个 gke 集群,当我跳转到一个节点并运行此命令时,我什么也看不到: ip netns list

我以为 K8s 使用网络命名空间进行网络连接?这些网络命名空间是如何显示的?

答案1

Kubernetes 网络建立在 Docker 和 Netfilter 之上,为 Pod 启用网络命名空间的东西称为 Pause 容器。

暂停容器运行一个非常简单的进程,它不执行任何功能但本质上永远处于休眠状态,并负责提供其他容器可以共享的网络命名空间。

请阅读这里Ian Lewis 撰写的文章解释了暂停容器的作用

答案2

这个问题有点老了,但是从那时起,已经创建了关于Network Fundamentals 通过实践练习学习 Google Kubernetes Engine 网络基础知识

主要有 4 个练习:

  • 练习 1:Introduction to network namespaces

介绍 Linux 虚拟网络设备。在本练习中,您将配置设备、连接设备并配置促进连接的 iptables 规则。本练习还介绍了查询连接状态的技术。

  • 练习2:Introduction to GKE networking

介绍了如何在 GKE 中创建一个简单的 HTTP 服务。使用您在上一个练习中学到的技术,您可以重新运行捕获。

  • 练习3:GCP load balancing and GKE

介绍由 GKE 实现的入口控制器,它基于上一个练习中的负载均衡器服务。

  • 练习4:Visiting namespaces in GKE

演示如何直接访问 pod 的命名空间。

在 中Exercise 1您有关于 的信息Network namespaces。如那里所述,默认情况下不存在任何信息。

现在,让我们看一下配置的网络命名空间。不应该有任何:

$ sudo ip netns list

现在,让我们添加一个名为 demo-ns 的命名空间,并检查它是否在可用命名空间列表中:

$ sudo ip netns add demo-ns
$ sudo ip netns list

网络命名空间是一个隔离的网络环境,具有自己的网络堆栈。

欲了解更多详情,请查看提到教程

相关内容