You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群使用Flux时如何创建并指定context?

报错原因

flux bootstrap命令里的--context参数引用的不是Flux自身维护的配置,而是本地kubeconfig(默认存储路径为~/.kube/config)里的Kubernetes集群访问上下文,作用是指定Flux组件要部署到的目标集群。本地没有存staging环境对应的集群访问上下文,就会抛出context "staging" does not exist的错误。

解决步骤
  • 先查看本地已配置的所有K8s上下文,执行命令:
    kubectl config get-contexts
    输出结果中CURRENT列带*标记的,是你当前默认使用的上下文。
  • 根据staging集群的类型,将集群访问凭证写入本地kubeconfig,生成可用的访问上下文:
    • 本地测试集群(kind/minikube等):如果用kind创建staging测试环境,直接执行kind create cluster --name staging,集群创建完成后会自动在kubeconfig中写入名为kind-staging的上下文,后续把bootstrap命令里的--context参数值改成这个实际名称即可;如果用minikube创建staging环境,执行minikube start -p staging会自动生成名为minikube-staging的上下文。
    • 云厂商托管K8s集群:通过对应云平台的官方CLI拉取staging集群的访问配置,合并到本地kubeconfig中,拉取完成后重新执行上文的get-contexts命令,确认对应的上下文名称。
    • 自建K8s集群:向集群管理员索要staging环境的kubeconfig文件,要么把文件内容合并到本地~/.kube/config,要么执行export KUBECONFIG=<staging集群kubeconfig的本地存储路径>临时指定配置文件路径。
  • 验证上下文连通性,执行命令测试:
    kubectl --context=<你查到的staging集群实际上下文名> get ns
    如果能正常返回命名空间列表,说明集群连通正常,把bootstrap命令里的--context参数替换成实际的上下文名,重新执行即可。
补充说明

从你贴的flux get sources all输出来看,两个GitRepository源都已经处于Ready状态,说明你之前已经在某个集群上完成过Flux引导。如果你当前默认连接的集群就是要部署staging环境的目标集群,直接删掉bootstrap命令里的--context=staging参数就行,Flux会默认使用当前激活的上下文执行部署。
你查询到的helmrelease状态异常,本质是当前运行Flux的集群没有匹配到staging路径下的同步配置,等Flux正确引导到目标staging集群后,会自动完成资源同步。

内容的提问来源于stack exchange,提问作者Richard Rublev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:12:10