我已经在AKS中使用Flux 2几个月了,现在正在慢慢地开发一些更有趣的功能。这周我试图设置一个ImageRepository,它可以看到我的最新图像何时更新,并将最新的图像拉到我的Dev Cluster中。我的flux系统已经使用Bicep脚本设置,我已经启用了ImageRepository和Image扫描的两个额外控制器。
在文档方面,建议kubelet服务主体是唯一需要具有AcrPull角色的东西(注意,AKS可以很高兴地拉取图像),但我在查看日志时发现情况并非如此。因此,我已经开始了一段旅程,以了解需要做什么才能启用这个有趣的功能。
最近,我还在AKS中启用了工作负载身份,我还添加了一个用户管理的身份,并尝试了建议的补丁kustomization,建议用于授予服务帐户必要的工作负载身份,如下所示:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- gotk-components.yaml
- gotk-sync.yaml
patches:
- patch: |-
apiVersion: v1
kind: ServiceAccount
metadata:
name: image-reflector-controller
namespace: flux-system
annotations:
azure.workload.identity/client-id: <AZURE_CLIENT_ID>
labels:
azure.workload.identity/use: "true"
- patch: |-
apiVersion: apps/v1
kind: Deployment
metadata:
name: image-reflector-controller
namespace: flux-system
labels:
azure.workload.identity/use: "true"
spec:
template:
metadata:
labels:
azure.workload.identity/use: "true"
字符串
我试着将其作为一个kustomization应用,但当我这样做时,我不知道这些神奇的'gotk-components.yaml'和'gotk-sync.yaml'文件是从哪里来的,因为这是一个补丁。我试图删除这些文件,然后被告知没有匹配的服务要打补丁(图像反射器控制器)找不到匹配的服务帐户
no matches for Id ServiceAccount.v1.[noGrp]/image-reflector-controller.flux-system; failed to find unique target for patch ServiceAccount.v1.[noGrp]/image-reflector-controller.flux-system
型
基本上,我对这个补丁系统是如何工作的有点困惑(我在现有的kustomization中作为嵌套的kustomization来做),如果需要的话,这些gotk前缀的组件来自哪里。参考说明在这里https://fluxcd.io/flux/components/image/imagerepositories/#authentication,我正在通过Azure身份补丁部分工作。
必要的底层控制器似乎已启用,但我发现ImageRepository yaml存在身份验证问题。这是正确的方法吗?或者我可以直接在ImageRepository上设置ServiceAccount吗?(我也尝试过这种方法,但也无法正常工作)。
1条答案
按热度按时间wko9yo5t1#
我有这个错误时,我没有添加选项:
flux bootstrap git [.] --components-extra=image-reflector-controller,image-automation-controller
为了确认,您应该在gotk-components.yaml中找到类似于以下内容的内容:
字符串