
rkojedzinszky/kube-routerKube-router 多架构镜像是基于 Kube-router 项目构建的跨平台容器镜像,旨在为 Kubernetes 集群提供统一的网络解决方案。Kube-router 是一款轻量级网络插件,集成了服务代理(Service Proxy)、网络策略(Network Policy)和覆盖网络(Overlay Network)功能。该多架构镜像通过一次构建支持多种 CPU 架构,可无缝部署于不同硬件平台的 Kubernetes 节点,简化多架构集群的网络配置与管理。
amd64(x86_64)、arm64(AArch64)、arm/v7(32位 ARM)、ppc64le(PowerPC)、s390x(IBM Z)。kube-router/kube-router:latest-multiarch)。amd64、arm64、arm/v7、ppc64le、s390x 的 Linux 节点。通过 Docker 或容器运行时拉取多架构镜像:
bashdocker pull kube-router/kube-router:latest-multiarch # 最新稳定版 # 或指定版本(如 v1.8.0) docker pull kube-router/kube-router:v1.8.0-multiarch
在非 Kubernetes 环境中通过 Docker 直接运行(仅用于功能验证,生产环境建议通过 Kubernetes DaemonSet 部署):
bashdocker run -d \ --name kube-router \ --privileged \ --net=host \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /lib/modules:/lib/modules \ -v /etc/cni/net.d:/etc/cni/net.d \ -e KUBECONFIG=/etc/kubernetes/kubeconfig \ -e NODE_IP=192.168.1.100 \ # 节点 IP -e CLUSTER_CIDR=10.244.0.0/16 \ # Pod CIDR kube-router/kube-router:latest-multiarch \ --run-service-proxy \ --run-network-policy \ --run-router
参数说明:
--privileged:需特权模式以操作网络设备和 iptables/IPVS 规则。--net=host:使用主机网络命名空间,直接管理节点网络。/lib/modules 提供内核模块访问,/etc/cni/net.d 配置 CNI 插件。生产环境中,Kube-router 需以 DaemonSet 形式部署,确保每个节点运行一个实例。以下为多架构集群部署 YAML 示例:
yamlapiVersion: apps/v1 kind: DaemonSet metadata: name: kube-router namespace: kube-system spec: selector: matchLabels: k8s-app: kube-router template: metadata: labels: k8s-app: kube-router spec: hostNetwork: true tolerations: - effect: NoSchedule operator: Exists - effect: NoExecute operator: Exists containers: - name: kube-router image: kube-router/kube-router:latest-multiarch imagePullPolicy: Always args: - --run-service-proxy - --run-network-policy - --run-router - --cluster-cidr=10.244.0.0/16 # 替换为集群 Pod CIDR env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: KUBE_ROUTER_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace securityContext: privileged: true volumeMounts: - name: lib-modules mountPath: /lib/modules readOnly: true - name: cni-conf mountPath: /etc/cni/net.d volumes: - name: lib-modules hostPath: path: /lib/modules - name: cni-conf hostPath: path: /etc/cni/net.d
部署命令:
bashkubectl apply -f kube-router-daemonset.yaml
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
NODE_IP | 节点主 IP 地址(用于网络绑定) | 自动检测节点主 IP |
NODE_NAME | 节点名称(需与 Kubernetes Node 名称一致) | 从 spec.nodeName 获取 |
KUBECONFIG | kubeconfig 文件路径(用于集群访问) | /var/lib/kube-router/kubeconfig |
CLUSTER_CIDR | 集群 Pod CIDR 范围(如 10.244.0.0/16) | 从 API Server 获取 |
KUBE_ROUTER_NAMESPACE | Kube-router 部署命名空间 | kube-system |
| 参数 | 描述 | 可选值 |
|---|---|---|
--run-service-proxy | 启用 IPVS 服务代理功能 | 无(默认禁用,需显式启用) |
--run-network-policy | 启用 iptables 网络策略功能 | 无(默认禁用,需显式启用) |
--run-router | 启用覆盖网络路由功能 | 无(默认禁用,需显式启用) |
--cluster-cidr | 手动指定 Pod CIDR 范围 | 如 10.244.0.0/16 |
--overlay-type | 覆盖网络类型 | vxlan(默认)、host-gw |
--service-cluster-ip-range | Service ClusterIP CIDR 范围 | 从 API Server 获取 |
arm/v7 需 32 位内核)。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务