具有HTTPS和证书的K8s准备就绪探针

时间:2020-05-26 19:51:56

标签: docker kubernetes mtls

我在k8s上托管了一个Spring Boot应用程序,并在该应用程序本身上实施了mTLS。通过在Ingress级别执行SSL终止,然后再次将证书转发到springboot pod,我能够在连接性上执行mTLS。

问题是,“活动性”和“就绪性”探针当前不确定如何在“就绪性/活动性”探针中发送证书?

任何帮助将不胜感激。

1 个答案:

答案 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"