我目前正在一个K8S集群中工作,并公开了以下端点。
http://172.16.46.16:8080/websocket/metrics现在我拥有的应用程序是与Sprint相关的。为了访问这个URL,它当前是敏感的,这意味着它需要一个用户/名称密码。
根据文档,我可以关闭度量上的敏感特性,这样我就不需要用户名/pass来授权自己了。因为我不想在我的配置中硬编码,所以我在运行时传递所需的参数。
我的K8S控制器文件是:
# cat websocket-replication-controller.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: websocket-backend-controller
spec:
replicas: 2
selector:
name: websocket-backend
template:
metadata:
labels:
name: websocket-backend
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: /websocket/metrics
prometheus.io/port: '8080'
spec:
containers:
- name: websocket-backend
image: armdocker.rnd.ericsson.se/proj_csdp/websocket_backend:3.0.6
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
livenessProbe:
httpGet:
port: 8080
path: /websocket/health
initialDelaySeconds: 300
timeoutSeconds: 30
volumeMounts:
- name: nfs
mountPath: "/vault"
command:
- java
- -Duser.timezone=UTC
- -jar
- -Dspring.profiles.active=clustered
- websocket.jar
- --endpoints.metrics.sensitive=false
volumes:
- name: nfs
nfs:
server: kube-nfs
path: "/kubenfs/vault"
readOnly: true最后的命令如下所示:
java -Duser.timezone=UTC -jar -Dspring.profiles.active=clustered websocket.jar --endpoints.metrics.sensitive=false以这种方式启动应用程序似乎并没有凌驾于度量敏感行为之上。我还是得到了server returned HTTP status 401 Unauthorized

我能够访问我的吊舱和寻找任何错误,但我没有看到任何。
这里有什么东西我遗漏了吗?
发布于 2018-01-16 15:17:01
尝试禁用Security以进行管理,--management.security.enabled=false命令:
java -Duser.timezone=UTC -jar -Dspring.profiles.active=clustered websocket.jar
--endpoints.metrics.sensitive=false
--management.security.enabled=false在这种情况下,最好在自定义端口上公开管理端点,例如:management.port=9081
还可以启用安全性并提供默认用户和密码:
management.security.enabled=true
security.user.name=user
security.user.password=pa55word请阅读Spring文档:HTTP上的监控和管理
https://stackoverflow.com/questions/44167952
复制相似问题