当前位置: 首页 > news >正文

眉山招聘网站建设网站建设方案优化

眉山招聘网站建设,网站建设方案优化,下载天马行市民云app,网站建设要素文章目录CNI 网络流量分析(七)Calico 介绍与原理(二)CNIIPAM指定 IP指定非 IPAM IPCNI 网络流量分析(七)Calico 介绍与原理(二) CNI 支持多种 datapath,默认是 linuxDa…

文章目录

  • CNI 网络流量分析(七)Calico 介绍与原理(二)
    • CNI
    • IPAM
      • 指定 IP
      • 指定非 IPAM IP

CNI 网络流量分析(七)Calico 介绍与原理(二)

CNI

  • 支持多种 datapath,默认是 linuxDataplane,支持 CRI 调用时 选择 grpc 实现的 dataplane,还支持 ebpf,vpp
  • 通过 ipam 获取到 ip 后,DoNetworking
func (d *linuxDataplane) DoNetworking(ctx context.Context,calicoClient calicoclient.Interface,args *skel.CmdArgs,result *cniv1.Result,desiredVethName string,routes []*net.IPNet,endpoint *api.WorkloadEndpoint,annotations map[string]string,
) 
  • Ns 里创建 veth 设备
  • Host 端网卡 calixxx 配置 mac ee:ee:ee:ee:ee:ee
  • 如果有 ipv6 地址,关闭 DAD
  • Linkup 网卡
  • 通过 annotation 查 是否指定 mac,指定则配置指定的 mac
  • 配置 ns 里路由 default via 169.254.1.1 dev eth0,169.254.1.1 dev eth0 scope link
  • 如果有 ipv6,设置 /proc/sys/net/ipv6/conf/all/disable_ipv6 = 0, /proc/sys/net/ipv6/conf/default/disable_ipv6 = 0,/proc/sys/net/ipv6/conf/lo/disable_ipv6 = 0,创建 ip route6
  • 为 ns 里网卡配置 ip
  • 开启 ipforwarding
  • 开启 /proc/sys/net/ipv4/conf/calixxx/route_localnet = 1,Enable routing to localhost
  • /proc/sys/net/ipv4/neigh/calixxx/proxy_delay = 0,arp 延迟,calico 不需要
  • /proc/sys/net/ipv4/conf/calixxx/proxy_arp = 1,开启 arp 代理
  • /proc/sys/net/ipv4/conf/calixxx/forwarding。
  • 在 host 配置到该 ip 的路由指向 calixxx。
  • 通过 annotation 检查是否有浮动 ip 配置,创建 ipnat
  • 创建 WorkloadEndpoints
  • done

Pod 创建完后,pod 内部默认路由指向 169.254.1.1,且 veth host 端配置了 arp_proxy,配置的 mac 是 ee:ee:ee:ee:ee:ee,所以 pod 内部下一跳都是 169.254.1.1

# ip netns exec cni-138c93d8-c975-8b38-3154-1dccf5ed9d83 ip r
default via 169.254.1.1 dev eth0 
169.254.1.1 dev eth0 scope link # ip netns exec cni-138c93d8-c975-8b38-3154-1dccf5ed9d83 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1480 qdisc noqueue state UP group default link/ether 32:21:45:c4:c5:d5 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet 10.244.153.204/32 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::3021:45ff:fec4:c5d5/64 scope link valid_lft forever preferred_lft forever# ip netns exec cni-138c93d8-c975-8b38-3154-1dccf5ed9d83 ip neighbor
169.254.1.1 dev eth0 lladdr ee:ee:ee:ee:ee:ee REACHABLE 
172.18.22.111 dev eth0 lladdr ee:ee:ee:ee:ee:ee STALE

IPAM

  • 默认使用 “calico-ipam” IPAM
  • 先获取 namespace 是否通过 annotation 配置 ippool,pod 是否配置 ippool
  • 获取 pod annotation 是否有 cni.projectcalico.org/ipAddrsNoIpam,cni.projectcalico.org/ipAddrs
    ipAddrsNoIpam := annot["cni.projectcalico.org/ipAddrsNoIpam"]ipAddrs := annot["cni.projectcalico.org/ipAddrs"]// Switch based on which annotations are passed or not passed.switch {case ipAddrs == "" && ipAddrsNoIpam == "":case ipAddrs != "" && ipAddrsNoIpam != "":case ipAddrsNoIpam != "":case ipAddrs != "":
  1. 全不配置时,直接代理调取 calico-ipam 二进制
  2. 全配置时,失败
  3. 只配置 ipAddrsNoIpam 时,必须是 calico-ipam 类型,会配置成所指定的 IP
  4. 只配置 ipAddrs 时,必须是 calico-ipam 类型,先 calico.IPAM().ReleaseIPs ip,再使用指定的 IP 去代理调用 calico-ipam
  • 通过调用 calicoClient.IPAM().AutoAssign(ctx, assignArgs) 获取 ip
  • 获取 预留 IP 和 cidr,预留 IP 和 cidr 可以通过 资源 IPReservation 进行配置
  • 通过 node 相关的 cidr 去获取一个 ip。

指定 IP

apiVersion: v1
kind: Pod
metadata:name: pod5namespace: defaultannotations:cni.projectcalico.org/ipAddrs: "[\"10.244.153.250\"]"
spec:containers:- name: pod5image: nginxports:- name: nginx-portcontainerPort: 80protocol: TCP
default       pod5    1/1     Running   0              115s    10.244.153.250

指定非 IPAM IP

需要先开启 feature

# kubectl edit configmap calico-config -n kube-system
// 添加"feature_control": {"ip_addrs_no_ipam": true,"floating_ips": true}
apiVersion: v1
kind: Pod
metadata:name: pod5namespace: defaultannotations:cni.projectcalico.org/ipAddrsNoIpam: "[\"80.90.100.200\"]"
spec:containers:- name: pod5image: nginxports:- name: nginx-portcontainerPort: 80protocol: TCP
pod5   1/1     Running   0             54s     80.90.100.200    node112

当然只有本节点能通,其他节点需要自己解决路由问题

Floating_ips
apiVersion: v1
kind: Pod
metadata:name: pod5namespace: defaultannotations:cni.projectcalico.org/floatingIPs: "[\"172.18.22.113\"]"
spec:containers:- name: pod5image: nginxports:- name: nginx-portcontainerPort: 80protocol: TCP
- apiVersion: projectcalico.org/v3kind: WorkloadEndpointmetadata:creationTimestamp: "2023-02-14T02:03:01Z"labels:projectcalico.org/namespace: defaultprojectcalico.org/orchestrator: k8sprojectcalico.org/serviceaccount: defaultname: node112-k8s-pod5-eth0namespace: defaultresourceVersion: "4509106"uid: beb345d3-6e9f-4144-918d-4f96fa8aada5spec:containerID: dc36d90f05c1890f78b8bb8ddc72426c2730ce60b58bf926b946d0131f620c78endpoint: eth0interfaceName: cali8e9fad9b07cipNATs:- externalIP: 172.18.22.113internalIP: 10.244.146.203ipNetworks:- 10.244.146.203/32node: node112orchestrator: k8spod: pod5ports:- hostIP: ""hostPort: 0name: nginx-portport: 80protocol: TCPprofiles:- kns.default- ksa.default.defaultserviceAccountName: default
kind: WorkloadEndpointList
metadata:resourceVersion: "4509937"
http://www.dt0577.cn/news/41954.html

相关文章:

  • dw超链接自己做的网站网站推广软件下载安装免费
  • 线上推广图片太原seo排名优化公司
  • 邯郸做网站哪里好百度seo公司一路火
  • 漳州做网站配博大钱少a互联网营销师证书是国家认可的吗
  • 帝国网站模版seo网站关键词优化怎么做
  • 有什么可以做翻译的网站吗福州百度推广排名优化
  • 网站制作一般要几天怎么制作网站详细流程
  • 跨境独立站收款方式站长工具是做什么的
  • seo自带 网站建设超八成搜索网站存在信息泄露问题
  • 115做网站seo的最终是为了达到
  • 百度网站备案怎么做百度推广运营
  • 有代码怎么做网站如何建立自己的网站?
  • wordpress带商城主题seo搜索引擎优化方案
  • 做网站中的镜像是什么百度公司官网招聘
  • 云计算培训机构简述seo和sem的区别与联系
  • 上海专业网站建设咨询bt樱桃 磁力岛
  • 网站搭建 商城 seo百度云搜索入口
  • 做网站广州电商平台引流推广
  • 政府网站模板免费下载网络推广 网站制作
  • 网站鼠标的各种效果怎么做的seo公司是什么
  • 做国外网站建设广州seo公司排名
  • 个人如何建设网站百度打广告收费表
  • wordpress 多语言切换佛山企业用seo策略
  • 做企业网站的意义今日要闻 最新热点
  • 策划推广是做什么的互联网seo是什么
  • 电子手表网站百度网址大全网址导航
  • 怎么做网站步骤seo权重优化软件
  • 福建省建设局网站seo研究学院
  • 棕色网站太原推广团队
  • 东莞手机微信网站目录搜索引擎有哪些