我有一个3节点的K3s集群,其中有Linkerd和NGINX入侵控制器。我使用默认配置安装了Linkerd:
linkerd install | kubectl apply -f -然后,为了安装NGINX install控制器,我还使用helm进行默认配置:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx我可以通过调用linkerd viz dashboard来访问Linkerd仪表板,但是我想公开带有Ingress定义的仪表板。我从位于这里的Linkerd网站修改了yaml文件示例,以便使用前缀路径。最后,我的yaml文件如下:
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: web-ingress-auth
namespace: linkerd-viz
data:
auth: YWRtaW46JGFwcjEkbjdDdTZnSGwkRTQ3b2dmN0NPOE5SWWpFakJPa1dNLgoK
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: web-ingress
namespace: linkerd-viz
annotations:
kubernetes.io/ingress.class: 'nginx'
nginx.ingress.kubernetes.io/upstream-vhost: $service_name.$namespace.svc.cluster.local:8084
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Origin "";
proxy_hide_header l5d-remote-ip;
proxy_hide_header l5d-server-id;
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/auth-secret: web-ingress-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required'
spec:
rules:
- http:
paths:
- path: /linkerd
pathType: Prefix
backend:
serviceName: web
servicePort: 8084对于我的任何其他自定义微服务,我可以通过我的nginx入口服务的公共IP地址来访问它们。我可以得到这样的IP:
kubectl describe svc ingress-nginx-controller | grep "LoadBalancer Ingress" | awk '{ print $3 }'当我尝试访问IP/linkerd的仪表板时,系统会提示我输入用户名和密码(默认情况下都是管理),但随后我得到一个404 not错误。
有谁知道会有什么问题吗?非常感谢!
发布于 2021-05-21 22:10:05
它永远不会喜欢这条路。它需要在url的根上服务。因此,将路径更改为“/”,它应该工作得很好。如果不起作用,我很乐意在当地试一试。
https://stackoverflow.com/questions/67644209
复制相似问题