解析 | K8S之网络插件exec

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: K8S支持3种类型的网络插件。 今天继续介绍下另一种插件exec K8S网络插件支持exec、CNI、kubenet 3种类型。插件满足K8S网络插件接口即可。 type NetworkPlugin interface{         Init(host Host, hairpinModecomponentconfig.

K8S支持3种类型的网络插件。

今天继续介绍下另一种插件exec 

K8S网络插件支持exec、CNI、kubenet 3种类型。插件满足K8S网络插件接口即可。

type NetworkPlugin interface{

        Init(host Host, hairpinModecomponentconfig.HairpinMode) error

        Event(name string,details map[string]interface{})

        Name() string

        Capabilities() utilsets.Int

        SetUpPod(namespace string, name string,podInfraContainerID kubecontainer.ContainerID) error

        TearDownPod(namespace string, name string,podInfraContainerID kubecontainer.ContainerID) error

        GetPodNetworkStatus(namespace string, name string,podInfraContainerID kubecontainer.ContainerID) (*PodNetworkStatus,error)

        Status() error

}

exec 类型插件分别在初始化,pod创建,销毁,查询时调用可执行程序,由可执行程序完成pod的网络管理。

在初始化,pod创建,销毁,查询时,调用的subcommand分别为 “init”,”setup”,”teardown”,”status”,所以要求可执行程序能解析上述subcommand 。

这里以一个简单的K8S插件为例子,介绍如何实现exec 类型的网络插件。

需求场景如下:

要求k8s创建pod 时,在pod内还会创建一个网络接口,该接口IP固定,该接口的另一端veth在ovs 网桥上,且有vlan tag,改tag 号可从pod name 取出。

该插件代码见:

https://github.com/liuliuzi/k8s-netplugin/tree/master/exec

更改权限为可执行,同时下载:

https://github.com/jpetazzo/pipework

更改pipework 权限为可执行,并移动到系统PATH路径下。

在每台worknode修改kebelet 启动参数,添加网络插件参数。

 –-network-plugin=myplugin   \插件名

  –network-plugin-dir=/root/kubplugin  \插件位置

在每台worknode 下载安装OVS。

在K8S上创建pod:

kubectl run 22-my-nginx –image=busybox –replicas=2

77a11ec3-545a-42cc-bc7a-e3f54ff0c63b

    Bridge”k8s_br”

        Port”k8s_br”

            Interface”k8s_br”

                type:internal

        Port”veth1pl29198″

            tag: 22

            Interface”veth1pl29198″

    ovs_version:”2.5.0″

可见一个vlan tag22的IF已经创建,veth另一端在pod内。容器内有两张网络,一个是默认的K8S网络,另外一个通过OVS的vlan网络。这样就实现了一个容器多网络。对于这个插件实现原理,在init的时候,确保k8s_br 的ovs 网桥存在。在setup的时候,先通过pod获取vlan名字,然后通过pipework添加veth到容器内。

这里的场景非常简单,固定IP,而且vlan tag从pod name获取。在复杂的场景里,这里的IP和vlan tag可以从一个专门的服务获取,比如ETCD等。

在teardown的时候,删除veth,删除OVSport。

相对单独使用pipework,有一个缺点就是pipework创建的veth和port无法伴随容器的生命周期,比如容器销毁后veth仍旧存在。现在通过K8S的网络插件结构,插件通过pipework创建的veth 和port可以伴随POD的生命周期,包括POD的迁移。

本文转移K8S技术社区-解析 | K8S之网络插件exec

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
21天前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
122 30
|
5天前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
5天前
|
存储 监控 网络协议
一次读懂网络分层:应用层到物理层全解析
网络模型分为五层结构,从应用层到物理层逐层解析。应用层提供HTTP、SMTP、DNS等常见协议;传输层通过TCP和UDP确保数据可靠或高效传输;网络层利用IP和路由器实现跨网数据包路由;数据链路层通过MAC地址管理局域网设备;物理层负责比特流的物理传输。各层协同工作,使网络通信得以实现。
|
5天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
37 1
|
29天前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,涵盖技术架构、插件生态及应用价值。通过图形化界面和模块化设计,低代码平台降低开发门槛,提升效率,支持企业快速响应市场变化。重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,探讨其在数据处理、功能模块、插件生态等方面的技术特点,以及未来发展趋势。
|
26天前
|
SQL 安全 算法
网络安全之盾:漏洞防御与加密技术解析
在数字时代的浪潮中,网络安全和信息安全成为维护个人隐私和企业资产的重要防线。本文将深入探讨网络安全的薄弱环节—漏洞,并分析如何通过加密技术来加固这道防线。文章还将分享提升安全意识的重要性,以预防潜在的网络威胁,确保数据的安全与隐私。
52 2
|
28天前
|
安全 算法 网络安全
网络安全的盾牌与剑:漏洞防御与加密技术深度解析
在数字信息的海洋中,网络安全是航行者不可或缺的指南针。本文将深入探讨网络安全的两大支柱——漏洞防御和加密技术,揭示它们如何共同构筑起信息时代的安全屏障。从最新的网络攻击手段到防御策略,再到加密技术的奥秘,我们将一起揭开网络安全的神秘面纱,理解其背后的科学原理,并掌握保护个人和企业数据的关键技能。
36 3
|
28天前
|
SQL 数据可视化 数据库
多维度解析低代码:从技术架构到插件生态
本文深入解析低代码平台,从技术架构到插件生态,探讨其在企业数字化转型中的作用。低代码平台通过图形化界面和模块化设计降低开发门槛,加速应用开发与部署,提高市场响应速度。文章重点分析开源低代码平台的优势,如透明架构、兼容性与扩展性、可定制化开发等,并详细介绍了核心技术架构、数据处理与功能模块、插件生态及数据可视化等方面,展示了低代码平台如何支持企业在数字化转型中实现更高灵活性和创新。
51 1
|
11天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
51 17
|
22天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。

热门文章

最新文章