《云原生机密计算最佳实践白皮书》——06运行时底座——AMD SEV机密容器(2) https://developer.aliyun.com/article/1231030?groupCode=aliyun_linux
步骤二:安装Confifidential computing Operator
Confifidential computing Operator 提供了一种在 Kubernetes 集群上部署和管理 Confifidential Containers
Runtime 的方法。具体信息请参考指南。
前提条件
1、确保 Kubernetes 集群节点至少有 8GB RAM 和 4 个 vCPU
2、当前 CoCo 版本仅支持基于 containerd 运行时的 Kubernetes 集群
3、确保 SELinux 被禁用或未强制执行 (confifidential-containers/operator#115)
部署Operator
Operator目前有3个版本,这里默认安装最新版v0.3.0版本。 通过运行以下命令部署Operator:
kubectl apply -k github.com/confifidential-containers/operator/confifig/release?ref=v0.3.0
cc-operator-controller-manager 资源依赖国外的镜像,可能拉不下来,请参考以下步骤对镜像进行修改:
kubectl edit deploy cc-operator-controller-manager -n confifidential-containers-system # 将gcr.io/kubebuilder/kube-rbac-proxy:v0.13.0替换成 image: quay.io/brancz/kube-rbac-proxy:v0.13.0
查看节点状态:
kubectl get pods -n confifidential-containers-system --watch
预期结果如下。注意这三个pod都要存在,且STATUS都要为Running。
NAME READY STATUS RESTARTS AGE cc-operator-controller-manager-56cb4d5ffff5-lqd9x 2/2 Running 0 167m cc-operator-daemon-install-rg8s9 1/1 Running 0 154m cc-operator-pre-install-daemon-7jhnw 1/1 Running 0 154m
创建custom resource
创建 custom resource 会将所需的 CC runtime安装到集群节点中并创建 RuntimeClasses。操作如下:
kubectl apply -k github.com/confifidential-containers/operator/confifig/samples/ccruntime/ default?ref=v0.3.0
检查创建的 RuntimeClasses。
kubectl get runtimeclass
预期结果如下:
NAME HANDLER AGE kata kata 154m kata-clh kata-clh 154m kata-clh-tdx kata-clh-tdx 154m kata-qemu kata-qemu 154m kata-qemu-sev kata-qemu-sev 154m kata-qemu-tdx kata-qemu-tdx 154m
卸载Operator(非必要步骤)
如果您想更新Operator的版本,或者您的安装出现问题,可以先卸载,再回到上面的步骤重新安装。具体
操作请参考链接。
kubectl delete -k github.com/confifidential-containers/operator/confifig/samples/ccruntime/ default?ref=<RELEASE_VERSION> kubectl delete -k github.com/confifidential-containers/operator/confifig/release?ref=$ {RELEASE_VERSION}
步骤三:启动Simple KBS
simple kbs是一个密钥代理服务,可以存储并向 workload 提供 secret 。对于 SEV 加密容器示例来说,需要从simple kbs 中获取 secret ,并用于解密已加密的容器。 在步骤四的示例二中,本文提供了一个简单的加密镜像( docker.io/haosanzi/busybox-v1:encrypted ),该镜像使用 simple kbs 已经存在的密钥来解密,同时对 policy 不进行校验。此加密镜像只作为测试使用,如您想用于自己的生产用例中,请参考指南制作一个新
的加密镜像并部署。
要了解有关创建 policy 的更多信息,请参考指南。
• 安装 docker-compose 后,才能在 docker 容器中运行 simple-kbs 及其数据库,数据库中存放了 secret 等信息:
dnf install docker-compose-plugin
• 下载 simple-kbs 的代码:
simple_kbs_tag="0.1.1" git clone https://github.com/confifidential-containers/simple-kbs.git cd simple-kbs && git checkout -b "branch_${simple_kbs_tag}" "${simple_kbs_tag}"
• 使用 docker-compose 运行 simple-kbs :
cd simple-kbs sudo docker compose up -d
《云原生机密计算最佳实践白皮书》——06运行时底座——AMD SEV机密容器(4) https://developer.aliyun.com/article/1231026?groupCode=aliyun_linux