kubernetes 上的 Spire 部署和证书检索

kubernetes 上的 Spire 部署和证书检索

我目前正在尝试在我的 k8s 集群(3 个工作节点)上部署 spire。我的目标是成功部署 spire 并使用 spire-server 生成的证书加密 2 个 pod 之间的交换:一个 webclient 和一个 webserver。

我按照官方教程进行操作https://spiffe.io/docs/latest/try/getting-started-k8s/ 但遇到了一些问题,无法在文档中找到答案:

  1. 尽管 spire-server 运行良好,但我还是很难理解部署在每个 k8s 节点上的 spire-agents 是否正常工作。pod 是Running 1/1,但我不知道如何获取 SVID,因此无法验证一切是否正常(例如,spire-agents 是否由服务器注册)

  2. 我部署了 2 个测试 pod(webclient 和 webserver),并在 spire-server 上添加了注册条目,以选择 2 个 pod 的标签clientwebserver在 spire 上注册它们。从教程中,我知道以下内容应该可以帮助我验证这些 pod 是否已颁发 SVID 和证书:

/spire-1.8.7/bin/spire-agent api fetch -socketPath /run/spire/sockets/agent.sock

然而,我设法执行此命令的唯一方法是直接在客户端和 Web 服务器上安装 spire 二进制文件这看起来很奇怪因为我已经有代理在运行。事实上,我无法在 spire-agents 中打开 shell,因为 spire 将其图像更改为最小,并且不包含 /bin/sh 或任何东西(从我所见)。

您是否知道无需在工作负载上安装 spire 即可检查 SVID 发行的方法,或者这是正确的方法?

按照这个想法,我尝试通过在 yml 中添加以下命令来构建自己的 spire-agent pod,以便在 alpine pod 上安装 spire,从而能够连接到 spire-agent pod 并从那里进行调试:

kubectl -n spire exec -it spire-agent pod -- /bin/sh
wget https://github.com/spiffe/spire/releases/download/v1.8.7/spire-1.8.7-linux-amd64-musl.tar.gz
tar zvxf spire-1.8.7-linux-amd64-musl.tar.gz
cp -r spire-1.8.7/. /opt/spire/
ln -s /opt/spire/bin/spire-server /usr/bin/spire-server
ln -s /opt/spire/bin/spire-agent /usr/bin/spire-agent
  1. 尽管我为套接字设置了相同的路径agent.sock 并将其安装到 Pod 上,但有时 Pod 找不到它,我应该如何使用这个插座?

  2. 一旦一切都按预期进行(至少我希望如此 ;)),我应该如何检索我的工作负载颁发的证书?这些 Pod 中是否有可用的证书,以便我能够创建 https 会话?

感谢您对我所做的事情做出的任何补充或纠正,任何帮助我都非常感谢!

相关内容