我有一个托管在 k8s 上的 spring boot 应用程序,并在应用程序本身上强制执行 mTLS。我可以通过在 Ingress 级别执行 SSL 终止然后再次将证书转发到 springboot pod 来对连接执行 mTLS。
问题是,Liveness 和 Readiness 探针目前不确定如何在就绪/活跃度探针中发送证书?
任何帮助,将不胜感激。
我有一个托管在 k8s 上的 spring boot 应用程序,并在应用程序本身上强制执行 mTLS。我可以通过在 Ingress 级别执行 SSL 终止然后再次将证书转发到 springboot pod 来对连接执行 mTLS。
问题是,Liveness 和 Readiness 探针目前不确定如何在就绪/活跃度探针中发送证书?
任何帮助,将不胜感激。
从官方文档 配置探针:
如果 scheme 字段设置为 HTTPS,kubelet 发送 HTTPS 请求跳过证书验证。
这是清单的样子:
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: alive-n-ready-https
spec:
containers:
- name: nginx
image: viejo/nginx-mockit
livenessProbe:
httpGet:
path: /
port: 443
scheme: HTTPS
readinessProbe:
httpGet:
path: /
port: 443
scheme: HTTPS
在没有方案的情况下,探针会因400
(错误请求)而失败,因为您正在将 http 数据包发送到需要 https 的端点:
10.132.15.199 - - [27/May/2020:18:10:36 +0000] "GET / HTTP/1.1" 400 271 "-" "kube-probe/1.17"
,scheme: HTTPS
它会成功:
10.132.15.199 - - [27/May/2020:18:26:28 +0000] "GET / HTTP/2.0" 200 370 "-" "kube-probe/1.17"