尝试将 nginx 入口控制器(除其他外)添加到我的 Azure AKS 集群,并在尝试通过 MS Flux v2 gitops 设置进行部署时遇到以下问题。认为这与 Flux/aks 方面有关,但不太确定从哪里开始启用跨命名空间设置。
大家有什么想法吗?
[
{
"lastTransitionTime": "2022-07-08T14:43:57+00:00",
"message": "can't access cross-namespace references have been blocked",
"reason": "AccessDenied",
"status": "False",
"type": "Ready"
}
]
尝试使用此 helm 清单设置进行部署:
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: ingress-nginx
namespace: flux-system
spec:
interval: 30m
url: https://kubernetes.github.io/ingress-nginx
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: ingress-nginx
namespace: ingress-system
spec:
interval: 5m
chart:
spec:
chart: ingress-nginx
version: '4.0.13'
sourceRef:
kind: HelmRepository
name: ingress-nginx
namespace: flux-system
interval: 1m
阅读我的集群上提到的网络策略,但没有看到任何看起来相关的内容。也许只有我!!
有人有什么建议吗?谢谢你
从错误消息来看,您似乎使用以下标志引导了 Flux 安装:
--no-cross-namespace-refs=true
。
请注意,在多租户集群上,平台管理员可以使用 --no-cross-namespace-refs=true 标志禁用跨命名空间引用。设置此标志后,helmrelease 只能引用与 helmrelease 对象位于同一命名空间中的源。
参考:https://fluxcd.io/docs/components/helm/helmreleases/#helm-chart-template
只需检查以下问题并禁用多租户即可解决此问题。 https://github.com/fluxcd/flux2/issues/3182
这是关闭它的命令:
az k8s-extension update --configuration-settings multiTenancy.enforce=false -c {clusterName} -g {resourceGroup} -n flux -t managedClusters