我在k8s上托管了一个Spring Boot应用程序,并在该应用程序本身上实施了mTLS。通过在Ingress级别执行SSL终止,然后再次将证书转发到springboot pod,我能够在连接性上执行mTLS。
问题是,“活动性”和“就绪性”探针当前不确定如何在“就绪性/活动性”探针中发送证书?
任何帮助将不胜感激。
答案 0 :(得分:1)
摘自官方文档configuring probes:
如果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"