问题标签 [fluxcd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1656 浏览

kubernetes - 掌舵错误:发布需要回滚才能升级

在我的集群中,我使用weave Flux和他们的 Flux-helm-operator 以 gitops 方式管理我的集群。

但是,当我在 Flux git 存储库中更改图表时,我经常遇到以下错误消息:

我不确定它在 helm 中是什么意思,但无论如何,我不应该运行任何 helm 命令,因为版本是由 Flux 管理的,所以我想知道在生产中处理这个错误的正确方法是什么

(除了删除版本并等待通量重新创建它)

一个解释清楚的答案将被非常接受,谢谢。

0 投票
0 回答
1413 浏览

gitops - GitOps 和数据库迁移

我正在尝试在我们公司引入 GitOps。大多数情况下,我们有用 Django 编写的微服务(但是,它可以是任何其他 Web 框架)。我对数据库迁移有概念上的问题。前向迁移很容易:您可以将它们作为作业或 init 容器或 helm 中的钩子运行。但是,向后迁移呢?假设我想从 v1.1 回滚到 v1.0,并且我有一些迁移要取消。现在呢?我想使用 argo cd 或flux。

有一篇非常好的文章:https ://www.weave.works/blog/how-to-correctly-handle-db-schemas-during-kubernetes-rollouts 。但是,它需要一些你在 Django 中没有的纪律

0 投票
1 回答
1955 浏览

kubernetes-helm - 在 azure AKS 上忽略 nginx-ingress Fluxcd HelmRelease 中的 loadBalancerIP 和注释

我正在运行正常的 Azure AKS 群集fluxcd。我正在尝试nginx-ingress通过fluxcd CDR HelmRelease 配置图表。特别是告诉 nginx-ingress 使用位于另一个资源组中的已创建静态公共 IP 作为 AKS 节点资源组。

基础 AKS 服务主体对 ip 所在的资源组具有网络参与者角色。

使用以下 HelmRelease 配置文件时,将忽略 loadBalancerIP 属性(以及任何注释),并在 azure 中创建一个新的公共 IP,并将其分配给 azure 负载均衡器。

在此处输入图像描述

为了让事情变得更容易,我还尝试使用与 AKS 节点直接存在于同一资源组中的 ip(无济于事)。顺便说一句:从来没有错误。它只是忽略该属性并创建一个新的 ip。

有趣的是,直接使用 helm 3 发布相同的图表(因此没有fluxcd)完美地工作,即使 ip 不在同一个资源组中的特殊情况:

所以我的猜测是问题出在 CDR HelmRelease 和值规范的翻译上。是否有人遇到过类似的问题?

AKS Kubernetes 版本:v1.14.8
Fluxcd/flux 映像标签:1.17.0
本地 Helm 版本:v3.0.3

0 投票
1 回答
321 浏览

kubernetes - Fluxcd 没有应用任何带有 err="running kubectl: 错误: 无法识别 \"STDIN\": ..."

我最近使用fluxctl installAzure AKS k8s 集群上安装了FluxCD 1.19.0。我们使用Flux 能够访问和签出的私有 git(自托管 bitbucket )。

现在 Flux 没有应用任何错误消息:

据我了解,Flux 将资源定义传递给 kubectl,然后再应用它们?

我解释错误的方式意味着 kubectl 没有传递任何东西。然而,我在容器中打开了一个外壳,并确保 Flux 实际上正在检查一些东西——它确实做到了。

我尝试将详细程度提高到 9,但它没有返回任何我认为相关的内容(http 请求的详细输出和针对 Kubernetes API 的响应)。

那么这里发生了什么?

0 投票
1 回答
410 浏览

flux - Fluxctl:找不到命令

我尝试为我的 Kubernetes 集群安装fluxctl,但我总是收到以下错误:

图片

我的超级用户帐户(sudo)得到了相同的结果。

我完全迷失了

有人可以帮我弄这个吗?我在互联网(谷歌)上没有找到任何答案。

0 投票
2 回答
377 浏览

kubernetes - 将独立补丁定义为 YAML

我需要将独立补丁定义为 YAML。

更具体地说,我想做以下事情:

问题是我不能使用kubectl patch。我正在使用带有 Flux 的 GitOps 工作流程,而我要修补的资源是在 Flux 之外创建的默认资源。

换句话说,我需要做与上面的命令相同的事情,但kubectl apply只需要:

我无法弄清楚您是否可以定义这样的补丁。

关键是我无法预测新集群上默认秘密令牌的名称(因为名称是随机的,即default-token-uudge

0 投票
0 回答
199 浏览

fluxcd - 如何在 Fluxcd helm 中使用自定义 values.yaml?

我使用 Helm 在 Kubernetes 中安装了 Fluxcd。一切正常,因为当我向 gitlab 提交更改时,它会自动将更改部署到 helm 版本。

我用于 kibana 的 helm 图表来自官方图表,但我对默认 values.yaml 文件进行了一些更改以适应我的项目。我将编辑后的 ​​values.yaml 文件部署到我的 gitlab 并指定 HelmRelease 以使用自定义的 values.yaml 文件externalSourceRef

我尝试在 gitlab 中编辑值并提交。它确实升级了 helm 修订版,但值没有改变。这是使用官方图表安装服务但使用我们自己定制的 values.yaml 文件的正确方法吗?或者有没有更好的方法?

0 投票
0 回答
213 浏览

amazon-web-services - 使用 ssh 克隆 Git

我在 AWS 上的 kubernetes 集群中运行了通量、nginx、gitlab pod。Nginx 作为负载均衡器/反向代理运行,而 gitlab 运行节点端口(只有 gitlab 运行 nginx)。Gitlab 和 Flux 位于不同的命名空间中。现在我想从通量 pod SSH 到 gitlab。Flux 通过 helm 图表安装。在安装助焊剂之前,我会运行 -ssh-keyscan {{ git_host }} > flux_known_hosts并在安装程序命令中参考此内容。因为我的 git_host 是一个负载均衡器 url,所以 ssh-keyscan 不起作用,因为它无法解析 ELB url。

但是另一方面 -git clone ssh://git@gitlab.ethan.svc.cluster.local:222/root/automation.git当我从通量 pod 运行此命令时有效。有没有办法让以下命令从通量 pod 工作(使用 elb url 而不是 gitlab 服务名称) -

我曾尝试在 Elb 上打开端口,但这似乎不起作用。

0 投票
1 回答
362 浏览

kubernetes-helm - 调用第三方chart时如何新建和使用新的ConfigMap?

我们有一个 Concourse 实例,它通过HelmRelease文件使用 Flux 部署到 Kubernetes,该文件保存我们的自定义值并引用Concourse Helm Chart。注意:我们使用的是 Helm v3。

该图表允许您指定addionalVolumesadditionalVolumneMounts;我希望用来映射/etc/Docker/Daemon.json到我们的工作 pod 以使它们使用我们的 pull-through 镜像代理的功能(即避免 Docker 速率限制问题)。

但是,我需要使用以下内容创建此 configMap 资源:

如果我正在开发图表本身,我已经看到了如何定义这样的资源,但是由于我们使用第三方图表并且只是为发布提供值,我不确定应该如何实现这一点(例如一种在 HelmRelease 的值中内联提供 configMap 定义的方法,以便在部署图表时创建它,我是否需要创建一个自定义图表来包装第三方图表并添加此资源,或者我是否需要在外部创建 configMap任何图表,然后通过 HelmRelease 文件引用预先存在的资源)。

我想以这样一种方式定义资源,使它们在我的通量回购中得到完全管理;即,而不是通过运行手动创建配置映射kubectl apply ...;这样任何推送到主分支的资源更改都会自动同步到我们的 kubernetes 实例。

我的背景是 Windows 全栈,所以我对所有涉及 Linux、Kubernetes、Flux 和 Helm 的概念都很陌生,所以如果我忽略了一些明显的事情,请提前道歉。

0 投票
1 回答
194 浏览

fluxcd - 有没有办法手动重试 FluxCD HelmOperator 的 HelmRelease?

我只是在阅读https://docs.fluxcd.io/projects/helm-operator/en/stable/helmrelease-guide/debugging/#manually-performing-a-release-to-debug以及常见问题解答,但不能不知道如何触发 HelmRelease 的重试。

我的解决方法是向监视的发布存储库提交一个微不足道的更改,只是为了让 helmoperator 获得一个差异。有没有更好的办法?