首页 > 其他分享 >multus实现自定义网卡名字

multus实现自定义网卡名字

时间:2024-09-03 09:14:05浏览次数:13  
标签:multus 自定义 网卡 k8sclient pkg cni

安装环境

cat <<EOF | kind create cluster --name test --config -
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
  kubeProxyMode: iptables
  disableDefaultCNI: false
  ipFamily: ipv4
  apiServerAddress: 127.0.0.1
  apiServerPort: 0
  podSubnet: "10.16.0.0/16"
  serviceSubnet: "10.96.0.0/12"
kubeadmConfigPatches:
  - |
    kind: ClusterConfiguration
    metadata:
    name: config
    etcd:
      local:
        dataDir: "/root/etcd"
nodes:
  - role: control-plane
    image: kindest/node:v1.26.0
EOF

git clone https://github.com/intel/multus-cni.git && cd multus-cni
git checkout v4.0.0
kubectl create -f ./deployments/multus-daemonset.yml

cat <<EOF | kubectl create -f -
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: kindnet
spec: 
  config: '{"cniVersion":"0.3.1","name":"kindnet","type":"ptp","ipMasq":false,"ipam":{"type":"host-local","dataDir":"/run/cni-ipam-state","routes":[{"dst":"0.0.0.0/0"}],"ranges":[[{"subnet":"10.16.1.0/24"}]]}}'
EOF

cat <<EOF | kubectl create -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deploy
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx-deploy
  template:
    metadata:
      annotations:
        k8s.v1.cni.cncf.io/networks: '[{"name":"kindnet","interface":"eth100"}]'
      labels:
        app: nginx-deploy
    spec:
      containers:
        - name: nginx-deploy
          image: nginx:1.27.0
EOF

确认容器内存在eth100网卡。

源码分析

multus
pkg/multus/multus.go
CmdAdd函数
处理cni add请求

pkg/multus/multus.go
getIfname函数
获取cni网卡名称

pkg/k8sclient/k8sclient.go
parsePodNetworkAnnotation函数
delegate.IfnameRequest来自pod注解解析json。

pkg/types/types.go
结构体NetworkSelectionElement

标签:multus,自定义,网卡,k8sclient,pkg,cni
From: https://www.cnblogs.com/WJQ2017/p/18393906

相关文章

  • C#自定义控件—流动管道
    C#用户控件之流动管道如何绘制一个动态的流动管道(FlowPipe)?分两步绘制定义属性;画布重绘;主要技能:管道的绘制(渐变色矩形)///<summary>///画渐变色矩形的方法///</summary>///<paramname="g">画布</param>///<paramname="brush">画刷</param>......
  • PyTorch自定义模型类
    使用Pytorch自己建立一个模型类:继承初始  建立一个模型的类,一定要继承nn,Module父类,初始化:def__init__(self):super(self).__init__():如果不这样操作就使用不了继承中初始化,也使用不了继承的一些函数。 建立自己的网络层图中初始化后的self.conv都是使......
  • DWS(PG)自定义函数查询表注释 ,表结构
    createorreplacefunctionshow_table(tableNamevarchar2)returnstable(table_namevarchar2,column_namevarchar2,column_typevarchar2,attnotnullvarchar2,column_commentvarchar2)as$$begin returnquerySELECTc.relname::varchar2astable_name,......
  • 《第三十一章 高级主题 - 自定义控件》
    一、引言在Android开发中,为了满足特定的界面需求和交互效果,自定义控件是一项非常重要的技能。它能够让开发者根据具体的业务场景创建出独特且功能强大的用户界面元素。在本章中,我们将深入探讨自定义控件的两种主要方式:继承现有控件和完全自定义控件。二、继承现有控件(......
  • 自定义TOOLs(完全体Agent)
    1.Agents包括几个关键组件:-*Agent*:用于生成指令和执行动作的代理。-*Tool*:用于执行动作的函数。-*Memory*:用于存储历史对话和生成的指令。-*LLM*:用于生成指令和执行动作的LLM。2.例如:计算\搜索\知识库检索(多轮对话)fromlangchain.agentsimportload_to......
  • 收银系统源码-收银台ui自定义
    收银系统在很多门店日常经营中,使用率是非常高的。商品采购、出入库、商品销售、会员管理、线上商城订单核销等都离不开收银系统,很多门店的收银员是使用线下收银台时,想根据的操作习惯以及个人喜好调整收银台。1.调整收银台的整体ui收银台ui风格,收银员可以根据自己的个人喜好去自定......
  • Sitecore 通过 processor 来自定义类似 github 的 not found 页面
    有一个需求是类似github的404页面,当访问不存在的页面时,需要满足以下几点:不是通过redirect或其他状态码让浏览器来跳转到到404页面;链接还是原来链接,但是页面内容是404;由于是MVC模式,功能由back-end来实现;状态码得是404。在基于sitecore的框架上,使用sitecore的p......
  • metershpere中如何调用自定义jar包中的方法
    背景:    在编写一些稍微复杂一点的逻辑的接口测试用例时,大家可以感觉到metershpere用起来并不方便,即使用已有的控件写出来了看起来也异常混乱,比如有多层循环逻辑再加上一些逻辑判断,场景变量,全局变量来回变更时,保证metershpere的界面会让你看的头晕。这时多数同学一定会......
  • 20240905_000339 mysql 存储过程 用户自定义变量
    自定义变量的特点一个@符号定义自定变量打印自定变量另一种定义方式查询赋值......
  • Prestashop安装问题:无法安装自定义模块
    Prestashop是一款免费开源的电子商务软件,它具有易于使用、功能丰富和高度可定制化等特点。如果在安装自定义模块时遇到问题,可能是由于以下原因:权限问题:确保你具有足够的权限来安装模块。你可以尝试以管理员身份运行安装程序。文件权限问题:确保自定义模块所在的文件夹及其子文件夹......