我希望在Traefik之后运行ArgoCD,以便既可以访问ArgoCD web,又可以使用argocd
命令行工具与D0
交互。
argocd-certificate
存在,并且在tls.crt
和tls.key
中有一个有效的证书和密钥。在这样的情况下,我可以访问ArgoCD at http://argocd.internal
,但是在https://argocd.internal
上访问它的尝试失败了:
$ curl https://argocd.internal
404 page not found
(请注意,没有证书错误;端点正在服务器上服务器上配置的证书。)
我不知道这里发生了什么:我还没有将它绑定到任何特定的Traefik端点,所以当我们查询Traefik时,我希望它在所有endpoints...and上都是可用的,我们看到:
$ curl -sf 'http://localhost:9000/api/http/routers?search=&status=&per_page=6&page=1' |
jq '.[]|select(.service == "argocd-argocd-server-80")'
{
"entryPoints": [
"metrics",
"web",
"websecure"
],
"service": "argocd-argocd-server-80",
"rule": "Host(`argocd.internal`) && PathPrefix(`/`)",
"status": "enabled",
"using": [
"metrics",
"web",
"websecure"
],
"name": "argocd-argocd-argocd-internal@kubernetes",
"provider": "kubernetes"
}
它确认路由器在所有端点上都是可用的。
这里发生了什么--为什么这只在通过http://
而不是通过https://
访问时才会做正确的事情?
如果有帮助,argocd-server
服务如下所示:
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: server
app.kubernetes.io/name: argocd-server
app.kubernetes.io/part-of: argocd
name: argocd-server
namespace: argocd
spec:
clusterIP: 10.96.117.77
clusterIPs:
- 10.96.117.77
internalTrafficPolicy: Cluster
ipFamilies:
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
port: 80
targetPort: 8080
- name: https
port: 443
targetPort: 8080
selector:
app.kubernetes.io/name: argocd-server
发布于 2022-09-26 02:51:45
我能够使用一对IngressRoute资源来完成工作:
http://
端点: apiVersion: traefik.conto.us/v1alpha 1种类: IngressRoute元数据:名称: argocd-http spec: entryPoints:- web路由:-类别:规则匹配:主机(argocd.internal
)优先级:10个中间件:- name: redirecting服务:-类别:服务名称:argocd-服务器端口: http -这使用重定向中间件将所有请求重定向到https://
端点:apiVersion: traefik.conto.us/v1alpha 1类:中间件元数据:名称:重定向-http- https规范: redirectScheme: That :https永久: true,这意味着IngressRoute
的services:
部分实际上是不操作的,但它是模式所要求的。https://
端点: apiVersion: traefik.conto.us/v1alpha 1种类: IngressRoute元数据:名称: argocd-https规范: entryPoints:- websecure路由:-IngressRoute:规则匹配:主机(argocd.internal
)优先级:10个服务:-类别:服务名称:argocd服务器端口: http -种类:规则匹配: Host(argocd.internal
) && Header(Content-Type
,application/grpc
)优先级: 11种服务:-种类:服务名称:argocd-服务器端口: http方案: h2c tls: secretName: argocd证书我们使用Content-Type
来区分gRPC请求和gRPC请求,并使用适当的协议方案连接到后端服务器。发布于 2022-09-25 15:55:18
验证您的服务本身是否有效。Traefik可能正常工作,但由于健康检查失败、标签不匹配或安全策略,服务可能不可用。
尝试从Kubernetes内部使用dig
、ping
和telnet
访问它,例如使用netshoot
容器映像。
使用内部服务名称作为主机名:
..svc.cluster.local
https://serverfault.com/questions/1111526
复制相似问题