云原生必备知识: 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接收并发客户端请求时,通常平均延迟随着总体吞吐量增加而增加。
1548 0
云原生必备知识: etcd性能
|
设计模式 Cloud Native 关系型数据库
云原生必备知识: Sidecar
sidecar是一种将应用功能从应用本身剥离出来作为单独进程的设计模式,可以允许向应用中无侵入的添加功能,避免为了满足第三方需求而添加额外的代码。 在软件架构中,sidecar附加到主应用,或者叫父应用上,以扩展/增强功能特性,同时sidecar与主应用是松耦合的。
5039 1
|
Kubernetes Cloud Native Java
云原生必备知识: 云原生
Pivotal是云原生应用的提出者,并推出了 Pivotal Cloud Foundry 云原生应用平台和 Spring 开源 Java 开发框架,成为云原生应用架构中先驱者和探路者。 云原生的概念历经了许多个版本的迭代,到了2015年Google主导成立了云原生计算基金会(CNCF),对云原生的定义为: 云原生(Cloud Native)技技术帮助企业和机构在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、 服务网格、微服务、不可变基础设施和声明式 API。
1569 0
云原生必备知识: 云原生
|
存储 Kubernetes 算法
云原生必备知识:调度算法(Scheduler)
调度器Scheduler是Kubernetes的重要组件之一。其作用是要将待调度的Pod依据某调度策略调度到最适合它运行的节点上运行。这里就涉及到三个对象:待调度的Pod、调度策略、待部署的节点队列。
1938 0
云原生必备知识:调度算法(Scheduler)
|
安全 Cloud Native Ubuntu
云原生必备知识: 容器镜像
容器运行时所需要的所有的文件集合称之为容器镜像。
707 0
云原生必备知识: 容器镜像
|
Kubernetes Cloud Native Unix
云原生必备知识:容器
容器,是一个视图隔离、资源可限制、独立文件系统的进程集合,它将系统的其他资源隔离开来,具有自己独立的资源视图。“视图隔离”,指的是能够看到部分进程、有独立的主机名,“资源可限制”,指的是可以限制内存大小、CPU 使用个数等。
964 0
云原生必备知识:容器
|
存储 负载均衡 监控
云原生必备知识: etcd
etcd is a distributed, consistent key-value store for shared configuration and service discovery, with a focus on being: Secure: automatic TLS with optional client cert authentication[可选的SSL客户端证书认证:支持https访问 ] Fast: benchmarked 10,000 writes/sec[单实例每秒 1000 次写操作] Reliable: properly distributed usi
1181 0
云原生必备知识: etcd
|
存储 Kubernetes 监控
云原生必备知识: 应用储存
由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题。首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始;第二,在通过一个Pod中一起运行的容器,通常需要共享容器之间一些文件。Kubernetes通过存储卷解决上述的两个问题。 在Docker有存储卷的概念卷,但Docker中存储卷只是磁盘的或另一个容器中的目录,并没有对其生命周期进行管理。Kubernetes的存储卷有自己的生命周期,它的生命周期与使用的它Pod生命周期一致。因此,相比于在Pod中运行的容器来说,存储卷的存在时间会比的其中的任何容器都长,并且在容器
502 0
|
存储 Cloud Native Docker
云原生必备知识: 容器数据卷
是一个可供一个或多个容器使用的特殊目录。 可以达到以下目的: 1.绕过“拷贝写”系统,以达到本地磁盘 IO 的性能,(比如运行一个容器,在容器中对数据卷修改内容,会直接改变宿主机上的数据卷中的内容,所以是本地磁盘IO的性能,而不是先在容器中写一份,最后还要将容器中的修改的内容拷贝出来进行同步。) 2.绕过“拷贝写”系统,有些文件不需要在 docker commit 打包进镜像文件。 3.在多个容器间共享目录。 4.在宿主和容器间共享目录。 5.在宿主和容器间共享一个文件。
370 0
|
设计模式 Cloud Native Java
云原生必备知识: 容器设计模式
即容器中的设计模式,包含迭代器模式和适配器模式。迭代器模式即提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。适配器模式及即适配器模式是23种中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器,我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是德国标准,是两项圆头的插头。如果去德国旅游,那么我们使用的手机充电器插头无法插到德国的插排中去,那就意味着我们无法给手机充电。怎样解决这个问题呢?只要使用一个电源转化器就行了。
508 0