开发者
资源
文档评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

机密容器与OpenClaw实例部署

  1. 部署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
  2. 部署CcRuntime。
    1. 获取virtCCA的CcRuntime部署yaml配置文件。
      wget https://raw.gitcode.com/openeuler/virtCCA_sdk/raw/master/kata-v3.15.0/conf/virtcca-kata-deploy.yaml
    2. 修改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。

    3. 镜像拉取方式修改为host pull。
      sed -i '/- name: kata-qemu-virtcca/{n;s/pulltype: .*/pulltype: ""/;n;s/snapshotter: .*/snapshotter: ""/}' virtcca-kata-deploy.yaml
    4. 启动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
  3. K8s集群中已注册virtCCA对应的RuntimeClass。
    kubectl get runtimeclass

  4. 修改“/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

  5. 重启containerd。
    systemctl restart containerd
  6. 目前支持容器模板构建OpenClaw应用,直接支持OpenClaw的机密容器镜像目前还在构建中。
    1. 创建openclaw.yaml。
      vi ./openclaw.yaml
    2. 按“i”进入编辑模式,参考OpenClaw配置文件,将内容输入至创建的yaml文件。
    3. 以同样的方式,参考openfuyao部署手册openclaw-configmap.yaml,将openclaw.json的模型配置相关内容输入至文件相关位置。
      vi ./openclaw.yaml
    4. 创建一键部署脚本quick-start-single.sh
      vi ./quick-start-single.sh
    5. 部署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=<任意非空值>
    6. 部署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修改。
  7. 访问http://<集群节点IP地址>:30000,即可访问OpenClaw Web UI进行验证。