ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Kubernetes 集群尝试基于 Calico 启用 eBPF

2022-05-14 08:32:59  阅读:268  来源: 互联网

标签:kubectl grep Kubernetes eBPF system Calico kube calico


之前基于 Kubernetes 1.23.5 + calico 3.22 尝试过,但没有成功,遇到的问题详见 K8s 网络切换到 Calico eBPF 后 service node port 与 ingress nginx 不能正常工作

现在基于 Kubernetes 1.24 + calico 3.23 再次尝试启用 eBPF,官方帮助文档 Enable the eBPF dataplane

前提条件:Ubuntu 版本至少 20.04,确认 BPF 文件系统是否已挂载

# mount | grep "/sys/fs/bpf"
none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)

创建 ConfigMap,配置 api-server 的主机名与端口号,calico 通过这个 ConfinMap 获取 api-server 的地址

kubectl create cm kubernetes-services-endpoint -n kube-system
kind: ConfigMap
apiVersion: v1
metadata:
  name: kubernetes-services-endpoint
  namespace: kube-system
data:
  KUBERNETES_SERVICE_HOST: "k8s-api"
  KUBERNETES_SERVICE_PORT: "6443"

如果不知道 api-server 的地址,可以通过下面的命令获取

kubectl get configmap -n kube-system kube-proxy -o yaml | grep server

重新部署 calico pod

kubectl delete pod -n kube-system -l k8s-app=calico-node
kubectl delete pod -n kube-system -l k8s-app=calico-kube-controllers

检查 calico pod 是否运行正常

kubectl get pods -n kube-system | grep calico 

禁用 kube-proxy

kubectl patch ds -n kube-system kube-proxy -p '{"spec":{"template":{"spec":{"nodeSelector":{"non-calico": "true"}}}}}'

启用 eBPF

calicoctl patch felixconfiguration default --patch='{"spec": {"bpfEnabled": true}}'

确认 eBPF 是否已启用

calicoctl get felixConfiguration -o yaml | grep bpfEnabled
    bpfEnabled: true

在 node 服务器上用 tc 命令检查 eBPF 是否正常启用

tc -s qdisc show dev eth0 | grep clsact 
qdisc `clsact` ffff: parent ffff:fff1 

出现 clsact 说明已经启用。

但问题依旧,NodePort 依然无法正常工作。

算了,不折腾了,改用 cilium

标签:kubectl,grep,Kubernetes,eBPF,system,Calico,kube,calico
来源: https://www.cnblogs.com/dudu/p/16266354.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有