linux模拟pod并配置上外网

本文介绍了如何通过Docker模拟K8S中的POD,并实现POD与主机的连接以及允许POD访问外网。通过创建network=none的容器,再运行一个nginx容器并共享网络命名空间,模拟POD环境。接着,通过在主机上配置veth网卡对,设置IP地址和默认网关,实现了POD与主机的连接。最后,开启主机的IP转发,添加iptables规则,使POD能够通过SNAT规则访问外网。
摘要由CSDN通过智能技术生成

作者:刘海峰,IT行业资深码农,从事.net/java/go语言开发十余年,长期关注springcloud/k8s/linux网络相关的技术,现为滴普科技容器产品首席架构师。


前言

在这篇文章我们将完成以下几件事情:

  • 用docker模拟一个POD
  • 将这个POD和主机连接起来,在主机中能访问POD的网站
  • 让这个POD能上外网

模拟一个POD

POD是一个K8S的逻辑概念,POD里会有一个或多个容器,他们之间共享一个网络命名空间,可以用localhost相互访问,下面我们将脱离开K8S,直接用docker来模拟这种情况:
首先创建一个network=none的容器:

docker run -itd --name=pause --net=none busybox

这时候pause容器会新建一个网络命名空间,但不会加入docker0网桥中,我们用下面的命令来查看:

[root@worker3 ~]# docker inspect pause|grep SandboxKey
            "SandboxKey": "/var/run/docker/netns/326720316d64",

我们再运行一个nginx容器,加入上面的pause容器的网络命名空间,命令如下:

 docker run --name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值