云原生必备知识: Netns

简介: netns是在linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境,目前netns在lxc容器中被用来为容器提供网络。使用netns创建的网络空间独立于当前系统的网络空间,其中的网络设备以及iptables规则等都是独立的,就好像进入了另外一个网络一样。

所属技术领域:

云原生

| 名词定义 |

netns是在linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境,目前netns在lxc容器中被用来为容器提供网络。

使用netns创建的网络空间独立于当前系统的网络空间,其中的网络设备以及iptables规则等都是独立的,就好像进入了另外一个网络一样。

|相关名词|

Ip netns相关命令
1.增加虚拟网络命名空间
ipnetns add net0

2.显示所有的虚拟网络命名空间
EULER:~ # ipnetns list
net0
也可通过查看/var/run/netns目录下的文件来list
EULER:~ # ls /var/run/netns/
net0

3.进入虚拟机网络环境
ipnetns exec net0 command


EULER:~ # ipnetns exec net0 bash #打开虚拟网络环境net0的bash窗口
EULER:~ # ipaddr #显示所有虚拟网络环境的设备
EULER:~ # exit #退出该网络虚拟环境
exit

4.增加一对veth虚拟网卡
EULER:~ # ip link add type veth

5.将veth0添加到net0虚拟网络环境
ip link set veth0 netns net0

6.将虚拟网卡veth1改名并添加到net1虚拟网络环境中
ip link set dev veth1 name net1-bridge netns net1

7.设置虚拟网络环境net0的veth0设备处于激活状态
ipnetns exec net0 ip link set veth0 up

8.为虚拟网络环境net0的veth0设备增加IP地址
ipnetns exec net0 ip address add 10.0.1.1/24 dev veth0

用法

ip [ OPTIONS ]netns { COMMAND | help }

ipnetns list - show all of the named network namespaces 列出所有名称空间
ipnetns add NETNSNAME - create a new named network namespace 创建一个新的名称空间
ipnetns delete NETNSNAME - delete the name of a network namespace 删除一个名称空间
ipnetns exec NETNSNAME cmd ... - Run cmd in the named network namespace 在网络名称空间中执行系统命令

ip [-all] netns exec [ NAME ]cmd ... - Run cmd in the named network namespace.
If -all option was specified then cmd will be executed synchronously on the each named network namespace.

资料来源:

1、 阿里云大学
2、 百度百科
3、 CSDN

相关文章
|
存储 Kubernetes 监控
云原生必备知识: etcd性能
决定etcd性能的关键因素,包括:  延迟( agency):延迟是完成操作的时间。  吞吐量 (throughput):吞吐量是在某个时间期间之内完成操作的总数量。当etcd接收并发客户端请求时,通常平均延迟随着总体吞吐量增加而增加。
1437 0
云原生必备知识: etcd性能
|
Kubernetes Cloud Native Java
云原生必备知识: 云原生
Pivotal是云原生应用的提出者,并推出了 Pivotal Cloud Foundry 云原生应用平台和 Spring 开源 Java 开发框架,成为云原生应用架构中先驱者和探路者。 云原生的概念历经了许多个版本的迭代,到了2015年Google主导成立了云原生计算基金会(CNCF),对云原生的定义为: 云原生(Cloud Native)技技术帮助企业和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、 服务网格、微服务、不可变基础设施和声明式 API。
1509 0
云原生必备知识: 云原生
|
存储 Kubernetes 监控
云原生必备知识: 应用储存
由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题。首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始;第二,在通过一个Pod中一起运行的容器,通常需要共享容器之间一些文件。Kubernetes通过存储卷解决上述的两个问题。 在Docker有存储卷的概念卷,但Docker中存储卷只是磁盘的或另一个容器中的目录,并没有对其生命周期进行管理。Kubernetes的存储卷有自己的生命周期,它的生命周期与使用的它Pod生命周期一致。因此,相比于在Pod中运行的容器来说,存储卷的存在时间会比的其中的任何容器都长,并且在容器
435 0
|
存储 Kubernetes 算法
云原生必备知识:调度算法(Scheduler)
调度器Scheduler是Kubernetes的重要组件之一。其作用是要将待调度的Pod依据某调度策略调度到最适合它运行的节点上运行。这里就涉及到三个对象:待调度的Pod、调度策略、待部署的节点队列。
1619 0
云原生必备知识:调度算法(Scheduler)
|
存储 Cloud Native Docker
云原生必备知识: 容器数据卷
是一个可供一个或多个容器使用的特殊目录。 可以达到以下目的: 1.绕过“拷贝写”系统,以达到本地磁盘 IO 的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修改的内容拷贝出来进行同步。) 2.绕过“拷贝写”系统,有些文件不需要在 docker commit 打包进镜像文件。 3.在多个容器间共享目录。 4.在宿主和容器间共享目录。 5.在宿主和容器间共享一个文件。
326 0
|
设计模式 Cloud Native Java
云原生必备知识: 容器设计模式
即容器中的设计模式,包含迭代器模式和适配器模式。迭代器模式即提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。适配器模式及即适配器模式是23种中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器,我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是德国标准,是两项圆头的插头。如果去德国旅游,那么我们使用的手机充电器插头无法插到德国的插排中去,那就意味着我们无法给手机充电。怎样解决这个问题呢?只要使用一个电源转化器就行了。
473 0
|
安全 Cloud Native Ubuntu
云原生必备知识: 容器镜像
容器运行时所需要的所有的文件集合称之为容器镜像。
627 0
云原生必备知识: 容器镜像
|
Kubernetes Cloud Native Unix
云原生必备知识:容器
容器,是一个视图隔离、资源可限制、独立文件系统的进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。“视图隔离”,指的是能够看到部分进程、有独立的主机名,“资源可限制”,指的是可以限制内存大小、CPU 使用个数等。
883 0
云原生必备知识:容器
|
负载均衡 网络协议 Cloud Native
云原生必备知识: 负载均衡
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。 负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
871 0
|
存储 Kubernetes Cloud Native
云原生必备知识: 持久化数据卷
PersistentVolume(PV)是已经由管理员提供或者动态使用供应的集群中的一块存储的存储类。它是集群中的资源,就像节点是集群资源一样。PV是类似于Volumes的卷插件,但是其生命周期独立于使用PV的任何单个Pod。此API对象捕获NFS,iSCSI或特定于云提供商的存储系统的存储实现的详细信息。 PersistentVolume 持久卷,简称PV,对存储的具体实现,供集群使用。
631 0

热门文章

最新文章