k8s calico vxlan式详解

本文详细描述了如何在Kubernetes环境中将calico的模式从IPIP切换到VXLAN,包括修改配置、禁用探针、设置ippool和理解vxlan模式的工作原理。同时介绍了数据包在不同节点之间的转发路径,涉及三层路由转发和proxyARP技术的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前的文章讲了k8s ipip模式的使用以及流量路径,本篇文章主要是来讲解一下vxlan 模式下pod 流量是如何通信的。

一、ipip模式转vxlan

  • 修改calico backend参数

将calico_backend参数由bird设置为vxlan,因为vxlan部署不使用bgp

修改calico controllers的configmap配置
[root@node1 ~]# kubectl edit  cm/calico-config -n kube-system

                calico_backend: vxlan    ###修改为vxlan
                
 重启calico controllers  
[root@node1 ~]# kubectl rollout restart  deploy/calico-kube-controllers  -n kube-system 
  • 修改calico daemonset
编辑calico daemonset 
[root@node1 ~]# kubectl edit ds/calico-node  -n kube-system

                - name: CALICO_IPV4POOL_IPIP
                  value: Never      ####修改为Never,禁用ipip
                - name: CALICO_IPV4POOL_VXLAN
                  value: Always     ####修改为vxlan


2:禁用bird探针检测,因为vxlan不需要bgp,所以需要禁用
      livenessProbe:
            exec:
              command:
              - /bin/calico-node
              - -felix-live
              #- -bird-live      ###禁用此处探针检查
            periodSeconds: 10
            initialDelaySeconds: 10
            failureThreshold: 6
            timeoutSeconds: 10
          readinessProbe:
            exec:
              command:
              - /bin/calico-node
              - -felix-ready
              #- -bird-live     ######禁用此处探针检查
            periodSeconds: 10
            timeoutSeconds: 10

3:重启ds
[root@node1 ~]# kubectl rollout restart  ds/calico-node -n kube-system
  • 修改ippool
1:查看当前使用的ippool
[root@node1 ~]# kubectl get ippool
NAME                  AGE
default-ipv4-ippool   374d
new-ipv4-ippool       168d

2:修改ippool的模式
[root@node1 ~]# kubectl edit ippool/new-ipv4-ippool

apiVersion: crd.projectcalico.org/v1
kind: IPPool
metadata:
  annotations:
    projectcalico.org/metadata: '{"uid":"f8ba255e-198a-4d7b-86b7-d47dc7066960","creationTimestamp":"2023-11-01T06:45:12Z"}'
  creationTimestamp: "2023-11-01T06:45:12Z"
  generation: 5
  name: new-ipv4-ippool
  resourceVersion: "62183182"
  uid: f8ba255e-198a-4d7b-86b7-d47dc7066960
spec:
  allowedUses:
  - Workload
  - Tunnel
  blockSize: 24
  cidr: 172.16.0.0/16
  ipipMode: Never    ####禁用ipip
  natOutgoing: true
  nodeSelector: all()
  vxlanMode: Always  ###修改为vxlan
当vxlanMode参数设置为 Always 的时候,三层和二层的通信都通过vxlan的方式进行通信,当值为CrossSubnet的时候只有三层才进行vxlan的方式进行通信。
  • 确认没有bgp运行
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值