【二进制部署k8s-1.29.4】九、cilium1.15.4安装

文章目录

简介

本章节主要讲解k8s集群网络插件cni的安装,安装的版本是cilium-1.15.4,本文主要讲解对ciium的安装方式,以及cilium各个安装参数的解释。
第一章.安装前软件准备及系统初始化阶段
第二章.证书及配置文件的准备
第三章.etcd集群的安装配置

一.安装helm和cilium 客户端命令

cilium的cni通过helm来进行安装,所以首先安装helm,helm的安装在第二章中"安装客户端软件及命令"中有提到,如果没有安装可以在https://github.com/helm/helm/releases/latest 下载二进制文件放到/usr/bin目录下即可。
cilium的客户端命令安装:cilium的客户端命令在第二章中有讲解,也是通过https://github.com/cilium/cilium 下载可执行文件放到/usr/bin下,这是指cilium客户端命令的安装。

二.安装cilium

此处的安装是指安装网络插件cni,

2.1.安装cilium对于系统内核的版本的要求

参考如下图:

2.2.安装的命令及参数如下:

添加helm 安装的 chart地址

复制代码
helm repo add ali-incubator     https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ 
helm repo add ali-stable    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add cilium https://helm.cilium.io/

执行安装命令:

bash 复制代码
helm install cilium cilium/cilium --version 1.15.4 \
  --namespace kube-system \
  --set routingMode=native \
  --set autoDirectNodeRoutes=true \
  --set loadBalancer.mode=hybrid \
  --set loadBalancer.acceleration=native \
  --set bpf.masquerade=true \
  --set kubeProxyReplacement="true" \
  --set ipv4NativeRoutingCIDR=10.2.0.0/16 \
  --set k8sServiceHost=yt-pcauto-k8s.pc.com.cn \
  --set k8sServicePort=6443 \
  --set bandwidthManager.enabled=true \
  --set bandwidthManager.bbr=true \
  --set prometheus.enabled=true \
  --set operator.prometheus.enabled=true \
  --set hubble.relay.enabled=true \
  --set hubble.ui.enabled=true \
  --set ipam.operator.clusterPoolIPv4PodCIDRList=10.2.0.0/16 \
  --set ipam.operator.clusterPoolIPv4MaskSize=24 \
  --set hubble.metrics.enabled="{dns,drop,tcp,flow,icmp,port-distribution,http}"
参数注释:

routingMode=native #启用本地路由(Native Routing),native routing和vxlan模式的区别主要是跨节点通信时,vxlan模式需要封装,native routing模式需要根据目的ip查找路由表转发到其他节点。

autoDirectNodeRoutes=true #表示由cilium在主机上生成Pod的路由规则

loadBalancer.mode=hybrid #hybrid模式时:DSR用于TCP,SNAT用于UDP以避免另外需要的MTU减少。dsr在公有云可能不起作用

loadBalancer.acceleration=native #启用XDP 加速南北向 nodePort 访问

bpf.masquerade=true #IP 地址伪装(Masquerading)切换为基于 eBPF 的模式

kubeProxyReplacement="true" #替换kube-proxy

bandwidthManager.enabled=true #启用带宽管理功能,用于进行带宽限速

bandwidthManager.bbr=true #启用 Pod 的 BBR 网络阻塞控制

prometheus.enabled=true #启用promes监控

hubble.relay.enabled=true #启用hubble.relay来观测流量

hubble.ui.enabled=true #观测流量的ui
helm安装cilium时可以通过此命令查看安装帮助:helm show values cilium/cilium

三.确认cilium的安装状态

1.cilium status

2.kubectl exec -it -n kube-system ds/cilium -- cilium status --verbose



查看cilium配置:kubectl get cm cilium-config -n kube-system -o yaml

重启cilium进程命令:kubectl -n kube-system rollout restart ds/cilium
注意事项

此时的coredns还没安装,会报错:time="2024-05-11T12:45:31Z" level=warning msg="Failed to create peer client for peers synchronization; will try again after the timeout has expired" error="context deadline exceeded" subsys=hubble-relay target="hubble-peer.kube-system.svc.cluster.local:443"

这是解析错误导致,安装完coredns,然后杀掉hubble-relay 的pod后就正常了

四.访问cilium的监控页面hubble-ui

将 Hubble UI 改为 NodePort 访问即可
kubectl -n kube-system patch svc hubble-ui -p '{"spec": {"type": "NodePort"}}'

相关推荐
梦梦代码精17 小时前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
鹤落晴春20 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
张忠琳20 小时前
【runc 1.4.2】(Part 2)runc 1.4.2 超深度分析 — CLI层:main.go、命令文件、runner、信号处理、TTY
云原生·kubernetes·runc
极客先躯21 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
My is 李豆1 天前
CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
docker·eureka·centos
阿里云云原生1 天前
AI 提效是“假象”还是“红利”?用 LoongSuite + SLS 构建组织级 AI 编码度量看板
云原生
极客先躯1 天前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java识堂1 天前
如何对微服务进行拆分?
微服务·云原生·架构
kong@react1 天前
Rocky Linux 10.2 全面解析:企业级 CentOS 替代方案及保姆级docker安装
java·linux·运维·docker
某林2121 天前
Isaac Sim 5.1.0 无头服务器部署与 RTX 显存段错误排障全记录
运维·服务器·docker·容器·isaac