机密容器与OpenClaw实例部署
- 部署cc-operator-controller-manager。
wget https://raw.gitcode.com/openeuler/virtCCA_sdk/raw/master/kata-v3.15.0/conf/cc-operator.yaml kubectl apply -f cc-operator.yaml
- 部署CcRuntime。
- 获取virtCCA的CcRuntime部署yaml配置文件。
wget https://raw.gitcode.com/openeuler/virtCCA_sdk/raw/master/kata-v3.15.0/conf/virtcca-kata-deploy.yaml
- 修改yaml配置文件中的label。
matchLabels字段可通过kubectl get nodes --show-labels查看,修改为对应label,具体以下图为例,node-role.kubernetes.io/worker表示键,worker为值,和matchLabels字段下键值对保持一致。

payloadImage字段指定了kata-deploy镜像路径,可直接使用默认镜像:swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/virtcca-kata-deploy:latest。

- 镜像拉取方式修改为host pull。
sed -i '/- name: kata-qemu-virtcca/{n;s/pulltype: .*/pulltype: ""/;n;s/snapshotter: .*/snapshotter: ""/}' virtcca-kata-deploy.yaml - 启动deploy部署。
kubectl apply -f virtcca-kata-deploy.yaml
创建成功后confidential-containers-system命名空间下有一个cc-operator-controller和两个DaemonSet管理的Pod。
kubectl get pod -n confidential-containers-system -owide

如果部署confidential-container-operator失败,且operator Pod日志中的关键错误为“Get "https://x.x.x.x:443/api/v1": dial tcp x.x.x.x:443: i/o timeout”时,可按照以下思路进行排查。
- 确认组件和iptables状态,网络组件是DaemonSet,确认当前系统默认iptables后端。
kubectl -n kube-system get ds -o wide
- 显式设置Calico使用nft后端。
kubectl -n kube-system set env daemonset/calico-node FELIX_IPTABLESBACKEND=NFT kubectl -n kube-system rollout status daemonset/calico-node --timeout=180s
- 清理legacy表残留规则,legacy filter默认策略设为ACCEPT,并验证legacy清理状态。
- 重建cc-operator Pod并验证恢复。
kubectl delete pod -n confidential-containers-system -l control-plane=controller-manager kubectl -n confidential-containers-system wait --for=condition=Ready pod -l control-plane=controller-manager --timeout=180s kubectl -n confidential-containers-system get pod -o wide
- 确认组件和iptables状态,网络组件是DaemonSet,确认当前系统默认iptables后端。
- 获取virtCCA的CcRuntime部署yaml配置文件。
- K8s集群中已注册virtCCA对应的RuntimeClass。
kubectl get runtimeclass

- 修改“/opt/kata/share/defaults/kata-containers/configuration-qemu-virtcca.toml”配置文件,将共享文件系统协议修改为virtio-fs,默认vcpu数量修改为2,默认内存大小修改为3072M,可根据实际需求针对性调整。建议内存改成4096M以上。
sed -i 's/shared_fs = "none"/shared_fs = "virtio-fs"/; s/default_vcpus = 1/default_vcpus = 2/; s/default_memory = 2048/default_memory = 4096/' /opt/kata/share/defaults/kata-containers/configuration-qemu-virtcca.toml

- 重启containerd。
systemctl restart containerd
- 目前支持容器模板构建OpenClaw应用,直接支持OpenClaw的机密容器镜像目前还在构建中。
- 创建openclaw.yaml。
vi ./openclaw.yaml
- 按“i”进入编辑模式,参考OpenClaw配置文件,将内容输入至创建的yaml文件。
- 以同样的方式,参考openfuyao部署手册和openclaw-configmap.yaml,将openclaw.json的模型配置相关内容输入至文件相关位置。
vi ./openclaw.yaml
- 创建一键部署脚本quick-start-single.sh。
vi ./quick-start-single.sh
- 部署configmap。
./quick-start-single.sh COMPONENT=openclaw-configmap \ OPENCLAW_LLM_BASE_URL=<LLM基础URL> \ OPENCLAW_LLM_API_KEY=<LLM对应的API Key> \ OPENCLAW_LLM_MODEL=<模型名称> \ OPENCLAW_GATEWAY_TOKEN=<任意非空值> \ OPENVIKING_ROOT_API_KEY=<任意非空值>
- 部署openclaw实例。
./quick-start-single.sh COMPONENT=openclaw \ OPENCLAW_LLM_BASE_URL=<LLM基础URL> \ OPENCLAW_LLM_API_KEY=<LLM对应的API Key> \ OPENCLAW_LLM_MODEL=<模型名称> \ OPENCLAW_GATEWAY_TOKEN=<任意非空值> \ OPENVIKING_ROOT_API_KEY=<任意非空值>
- OpenClaw网关当前按部署联调场景开启了以下配置。
"allowInsecureAuth": true, "dangerouslyDisableDeviceAuth": true
当前配置降低了网关认证保护强度,便于在容器平台中直接访问控制UI。生产环境如需更严格的设备认证,应在openclaw-configmap.yaml中关闭上述选项,并同步调整访问方式。
- 手动部署或者多实例部署可参考OpenClaw openFuyao对接操作文档与对应脚本代码。
- OpenClaw工作目录默认持久化映射至宿主机/home/openclaw-data目录,可通过部署脚本参数OPENCLAW_DATA_ROOT_DIR修改。
- 创建openclaw.yaml。
- 访问http://<集群节点IP地址>:30000,即可访问OpenClaw Web UI进行验证。

父主题: 方案三:机密容器部署OpenClaw