You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Karate Framework中使用Kubernetes kubeConfig执行API调用及配置SSL?

在Karate中使用Kube配置文件的证书进行API调用

一、直接使用解码后的PEM证书调用API

首先从kube配置文件中提取client-certificate-data和client-key-data的base64内容,解码为PEM格式文件:

  • 解码客户端证书:echo "<client-certificate-data内容>" | base64 -d > client.crt
  • 解码客户端密钥:echo "<client-key-data内容>" | base64 -d > client.key

将生成的client.crt和client.key放到Karate项目的资源目录下,然后在feature文件中配置SSL参数:

Feature: 调用Kubernetes API

  Background:
    # 配置SSL客户端证书和密钥
    * configure ssl = { clientCert: 'classpath:client.crt', clientKey: 'classpath:client.key' }
    # 如果密钥有密码,添加clientKeyPassword: '你的密钥密码'

  Scenario: 获取集群Pod列表
    Given url 'https://你的kube-api地址:6443/api/v1/pods'
    When method get
    Then status 200

二、将PEM证书转换为SSL密钥库并配置使用

Karate支持JKS或PKCS12格式的密钥库,你可以通过工具将PEM证书转换为密钥库文件:

1. 转换为PKCS12格式

使用OpenSSL将PEM证书和密钥合并为PKCS12文件:

openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name "kube-client"

执行时会提示设置PKCS12文件的密码,需记录该密码用于后续配置。

2. 转换为JKS格式(可选)

如果需要使用JKS格式,通过keytool工具转换:

keytool -importkeystore -srckeystore client.p12 -srcstoretype PKCS12 -destkeystore client.jks -deststoretype JKS

输入PKCS12文件的密码,再设置JKS文件的新密码即可。

3. 在Karate中配置密钥库

使用PKCS12密钥库:

Feature: 用PKCS12密钥库调用API

  Background:
    * configure ssl = { keyStore: 'classpath:client.p12', keyStorePassword: '你的PKCS12密码', keyStoreType: 'PKCS12' }

  Scenario: 获取集群节点信息
    Given url 'https://你的kube-api地址:6443/api/v1/nodes'
    When method get
    Then status 200

使用JKS密钥库:

Feature: 用JKS密钥库调用API

  Background:
    * configure ssl = { keyStore: 'classpath:client.jks', keyStorePassword: '你的JKS密码' }

  Scenario: 获取命名空间列表
    Given url 'https://你的kube-api地址:6443/api/v1/namespaces'
    When method get
    Then status 200

额外说明

  • 若需要信任Kube API的CA证书,可将kube配置中certificate-authority-data解码得到的CA证书添加到信任库,或测试环境下临时禁用证书验证:* configure ssl = { trustAll: true }

内容的提问来源于stack exchange,提问作者Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 21:11:01