
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/travisghansen/kubernetes-pfsense-controller 致力于保持pfSense与Kubernetes的同步与协调。其核心目标是通过集成和实现裸金属Kubernetes集群通常不具备的功能,提供一流的集群体验。
实现方式主要基于标准Kubernetes API和pfSense的xmlrpc API:通过watch Kubernetes API监控集群状态变化,然后通过xmlrpc调用更新pfSense的config.xml,并执行相应的重载/重启/更新/同步操作以应用变更。
免责声明:这是新软件,可能存在bug。使用前请备份配置,以防配置丢失。尽管如此,所有已知代码路径均运行稳定,未发现问题。如遇bug,请报告!
kpc由多个插件组成,通过Kubernetes ConfigMap启用/禁用/配置。各插件功能如下:
MetalLB 在Kubernetes中实现LoadBalancer类型的Service,支持Layer2或BGP配置。Layer2无需与pfSense集成,但BGP实现需要BGP服务器及邻居配置。kpc通过持续监控集群Node,动态更新pfSense中的BGP邻居。
前提:需已在pfSense上安装并配置openbgp,且创建了供MetalLB使用的group。
yamlmetallb: enabled: true nodeLabelSelector: nodeFieldSelector: bgp-implementation: openbgp options: openbgp: template: md5sigkey: md5sigpass: groupname: metallb row: - parameters: announce all parmvalue:
haproxy-declarative插件允许通过集群中的ConfigMap资源基本静态创建HAProxy前端/后端定义。后端服务器池可基于集群节点动态创建/更新。示例参见declarative-example.yaml。
yamlhaproxy-declarative: enabled: true
haproxy-ingress-proxy插件将集群入口控制器处理的入口规则镜像到pfSense上运行的HAProxy。若pfSense部署在网络边缘且运行非集群服务,可通过该插件动态注入规则,将流量路由至集群,同时保留非集群服务运行。
结合haproxy-declarative可创建动态后端服务(如入口控制器),并基于集群入口生成动态前端服务。
yamlhaproxy-ingress-proxy: enabled: true ingressLabelSelector: ingressFieldSelector: defaultFrontend: http-80 defaultBackend: traefik #allowedHostRegex: "/.*/"
kpc提供多种基于集群状态管理pfSense中DNS条目的选项。可替代或结合https://github.com/kubernetes-incubator/external-dns%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%AE%9E%E7%8E%B0%E7%81%B5%E6%B4%BB%E9%85%8D%E7%BD%AE%E3%80%82
pfsense-dns-services
监控带有dns.pfsense.org/hostname注解(值为期望主机名)的LoadBalancer类型服务,在unbound/dnsmasq中创建DNS条目。此类服务需获取IP,通常需在集群中部署MetalLB(无论是否运行metallb插件)。
yamlpfsense-dns-services: enabled: true serviceLabelSelector: serviceFieldSelector: #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true
pfsense-dns-ingresses
监控入口资源,自动在unbound/dnsmasq中创建DNS条目。需入口控制器支持在入口资源上设置IP。
yamlpfsense-dns-ingresses: enabled: true ingressLabelSelector: ingressFieldSelector: #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true
pfsense-dns-haproxy-ingress-proxy
监控haproxy-ingress-proxy插件创建的HAProxy规则,为每个条目创建主机别名。需在unbound/dnsmasq中创建任意主机(如<frontend name>.k8s),并通过配置frontends.<frontend name>将其绑定到前端。该前端的所有代理规则将自动作为别名添加到配置的hostname。确保静态hostname指向前端绑定的IP。
yamlpfsense-dns-haproxy-ingress-proxy: enabled: true #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true frontends: http-80: hostname: http-80.k8s primary_frontend_name2: hostname: primary_frontend_name2.k8s
LoadBalancer服务(通过MetalLB BGP模式)。kpc通过Kubernetes ConfigMap配置插件,关键配置项为各插件的启用状态及参数。
regex参数通过php的preg_match()处理,可使用该方法测试语法。若需指定结尾符`# kubernetes-pfsense-controller (kpc) 镜像文档https://github.com/travisghansen/kubernetes-pfsense-controller 致力于保持pfSense与Kubernetes的同步与协调。其核心目标是通过集成和实现裸金属Kubernetes集群通常不具备的功能,提供一流的集群体验。
实现方式主要基于标准Kubernetes API和pfSense的xmlrpc API:通过watch Kubernetes API监控集群状态变化,然后通过xmlrpc调用更新pfSense的config.xml,并执行相应的重载/重启/更新/同步操作以应用变更。
免责声明:这是新软件,可能存在bug。使用前请备份配置,以防配置丢失。尽管如此,所有已知代码路径均运行稳定,未发现问题。如遇bug,请报告!
kpc由多个插件组成,通过Kubernetes ConfigMap启用/禁用/配置。各插件功能如下:
MetalLB 在Kubernetes中实现LoadBalancer类型的Service,支持Layer2或BGP配置。Layer2无需与pfSense集成,但BGP实现需要BGP服务器及邻居配置。kpc通过持续监控集群Node,动态更新pfSense中的BGP邻居。
前提:需已在pfSense上安装并配置openbgp,且创建了供MetalLB使用的group。
yamlmetallb: enabled: true nodeLabelSelector: nodeFieldSelector: bgp-implementation: openbgp options: openbgp: template: md5sigkey: md5sigpass: groupname: metallb row: - parameters: announce all parmvalue:
haproxy-declarative插件允许通过集群中的ConfigMap资源基本静态创建HAProxy前端/后端定义。后端服务器池可基于集群节点动态创建/更新。示例参见declarative-example.yaml。
yamlhaproxy-declarative: enabled: true
haproxy-ingress-proxy插件将集群入口控制器处理的入口规则镜像到pfSense上运行的HAProxy。若pfSense部署在网络边缘且运行非集群服务,可通过该插件动态注入规则,将流量路由至集群,同时保留非集群服务运行。
结合haproxy-declarative可创建动态后端服务(如入口控制器),并基于集群入口生成动态前端服务。
yamlhaproxy-ingress-proxy: enabled: true ingressLabelSelector: ingressFieldSelector: defaultFrontend: http-80 defaultBackend: traefik #allowedHostRegex: "/.*/"
kpc提供多种基于集群状态管理pfSense中DNS条目的选项。可替代或结合https://github.com/kubernetes-incubator/external-dns%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%AE%9E%E7%8E%B0%E7%81%B5%E6%B4%BB%E9%85%8D%E7%BD%AE%E3%80%82
pfsense-dns-services
监控带有dns.pfsense.org/hostname注解(值为期望主机名)的LoadBalancer类型服务,在unbound/dnsmasq中创建DNS条目。此类服务需获取IP,通常需在集群中部署MetalLB(无论是否运行metallb插件)。
yamlpfsense-dns-services: enabled: true serviceLabelSelector: serviceFieldSelector: #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true
pfsense-dns-ingresses
监控入口资源,自动在unbound/dnsmasq中创建DNS条目。需入口控制器支持在入口资源上设置IP。
yamlpfsense-dns-ingresses: enabled: true ingressLabelSelector: ingressFieldSelector: #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true
pfsense-dns-haproxy-ingress-proxy
监控haproxy-ingress-proxy插件创建的HAProxy规则,为每个条目创建主机别名。需在unbound/dnsmasq中创建任意主机(如<frontend name>.k8s),并通过配置frontends.<frontend name>将其绑定到前端。该前端的所有代理规则将自动作为别名添加到配置的hostname。确保静态hostname指向前端绑定的IP。
yamlpfsense-dns-haproxy-ingress-proxy: enabled: true #allowedHostRegex: "/.*/" dnsBackends: dnsmasq: enabled: true unbound: enabled: true frontends: http-80: hostname: http-80.k8s primary_frontend_name2: hostname: primary_frontend_name2.k8s
LoadBalancer服务(通过MetalLB BGP模式)。kpc通过Kubernetes ConfigMap配置插件,关键配置项为各插件的启用状态及参数。
regex参数通过php的preg_match()处理,可使用该方法测试语法。若需指定结尾符,需在yaml中转义为$(如#allowedHostRegex: "/.example.com$/")。kube-system.pfsense-controller-store),可通过查看该ConfigMap了解控制器管理内容。webConfigurator的Max Processes设置,以确保足够的并发连接。每个kpc实例仅需1个进程(API访问由kpc序列化)。(注意:ha_backends实际为前端配置,命名可能引起混淆)
yamlhaproxy ha_backends item item ... ha_pools item ha_servers item item ... item ...
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务