为什么 ArgoCD 将 GitHub.com 与我自己的 public IP 混淆?
Why is ArgoCD confusing GitHub.com with my own public IP?
我刚刚使用 kubeadm、Flannel 和 MetalLB 在裸机上设置了一个 kubernetes 集群。我的下一步是安装 ArgoCD。
我从“入门”页面安装了 ArgoCD yaml 并登录了。
添加我的 Git 存储库时,ArgoCD 给出了非常奇怪的错误消息:
错误消息似乎表明 ArgoCD 出于某种原因正在将 github.com 解析为我的 public IP 地址(我没有公开 SSH,因此连接被拒绝)。
我找不到它这样做的任何理由。当使用 https:// 而不是 SSH 时,我得到相同的结果,但在端口 443 上。
我将一个虚拟 pod 放在与 ArgoCD 相同的命名空间中,并进行了一些 DNS 查询。这些查询已正确解决。
是什么让 ArgoCD 认为 github.com 解析到我的 public IP 地址?
编辑:
我还检查了 argocd 命名空间中的网络策略,没有发现限制出口的策略。
我以前在同一网络中的集群上使用过这个,从那以后就没有更改过我的路由器防火墙。
看起来像 argoproj/argo-cd issue 1510,其中初始诊断是集群正在阻止到 GitHub 的出站连接。并建议检查出口配置。
然而,问题已通过入口规则配置解决:
need to define in values.yaml
.
argo-cd
default provide subdomain but in our case it was /argocd
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
path: /argocd
hosts:
- www.example.com
and this I have defined under templates >> argocd-server-deployment.yaml
containers:
- name: argocd-server
image: {{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}
imagePullPolicy: {{ .Values.server.image.pullPolicy }}
command:
- argocd-server
- --staticassets - /shared/app - --repo-server - argocd-repo-server:8081 - --insecure - --basehref - /argocd
同一个案例包含一个instance very similar to yours:
无论如何,请检查您在 ArgoCD 集群中看到的 git 配置 (git config -l
),以查找任何 insteadOf
会自动更改 github.com
进入本地 URL (as seen here)
我的问题解决了!
我的 /etc/resolv.conf 有两行引起了麻烦:
domain <my domain>
search <my domain>
这些行是作为安装我的主机 OS 的一个步骤放在那里的,我没有意识到会以这种方式影响我。删除这些行后,现在一切正常。
很多人告诉我检查resolv.conf,但直到现在我才意识到这两行是做什么的。
我刚刚使用 kubeadm、Flannel 和 MetalLB 在裸机上设置了一个 kubernetes 集群。我的下一步是安装 ArgoCD。
我从“入门”页面安装了 ArgoCD yaml 并登录了。
添加我的 Git 存储库时,ArgoCD 给出了非常奇怪的错误消息:
我找不到它这样做的任何理由。当使用 https:// 而不是 SSH 时,我得到相同的结果,但在端口 443 上。
我将一个虚拟 pod 放在与 ArgoCD 相同的命名空间中,并进行了一些 DNS 查询。这些查询已正确解决。
是什么让 ArgoCD 认为 github.com 解析到我的 public IP 地址?
编辑:
我还检查了 argocd 命名空间中的网络策略,没有发现限制出口的策略。
我以前在同一网络中的集群上使用过这个,从那以后就没有更改过我的路由器防火墙。
看起来像 argoproj/argo-cd issue 1510,其中初始诊断是集群正在阻止到 GitHub 的出站连接。并建议检查出口配置。
然而,问题已通过入口规则配置解决:
need to define in
values.yaml
.
argo-cd
default provide subdomain but in our case it was/argocd
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/backend-protocol: HTTP
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
path: /argocd
hosts:
- www.example.com
and this I have defined under
templates >> argocd-server-deployment.yaml
containers:
- name: argocd-server
image: {{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}
imagePullPolicy: {{ .Values.server.image.pullPolicy }}
command:
- argocd-server
- --staticassets - /shared/app - --repo-server - argocd-repo-server:8081 - --insecure - --basehref - /argocd
同一个案例包含一个instance very similar to yours:
无论如何,请检查您在 ArgoCD 集群中看到的 git 配置 (git config -l
),以查找任何 insteadOf
会自动更改 github.com
进入本地 URL (as seen here)
我的问题解决了!
我的 /etc/resolv.conf 有两行引起了麻烦:
domain <my domain>
search <my domain>
这些行是作为安装我的主机 OS 的一个步骤放在那里的,我没有意识到会以这种方式影响我。删除这些行后,现在一切正常。
很多人告诉我检查resolv.conf,但直到现在我才意识到这两行是做什么的。