跳转至

KasmCloud

在 Kubernetes 中管理和运行 Actors、Providers 和 Links

⚠警告

这是一个由贡献者领导的实验性项目,目前不建议在生产环境中运行。

每个标签都可以正常工作,但在标签之间可能存在不兼容的更改。

设计

将 WasmCloud 与 Kubernetes 结合

快速开始

  1. 部署 Nats

    helm repo add nats https://nats-io.github.io/k8s/helm/charts/
    helm repo update
    helm upgrade --install kasmcloud-nats nats/nats
    
  2. 部署 KasmCloud CRDs 和 Webhook 服务器

    kubectl apply -f ./deploy/crds
    kubectl apply -f ./deploy/webhook
    
  3. 部署 KasmCloud Host

    kubectl apply -f ./deploy/kasmcloud_host_rbac.yaml
    
    # 部署默认的 KasmCloud Host
    kubectl apply -f ./deploy/kasmcloud_host_default.yaml
    
    # [可选] 您也可以在每个 Kubernetes 节点上部署 KasmCloud Host
    kubectl apply -f ./deploy/kasmcloud_host_daemonset.yaml
    
    # [可选] 您还可以部署任意数量的临时主机,并通过扩展 Deployment 来更改临时主机的数量
    kubectl apply -f ./deploy/kasmcloud_host_deployment.yaml
    
  4. 部署 Actor、Link 和 Provider 示例

    kubectl apply -f ./sample.yaml
    kubectl get kasmcloud
    

    输出为:

    NAME                              DESC   PUBLICKEY                                                  REPLICAS   AVAILABLEREPLICAS   CAPS                                                   IMAGE
    actor.kasmcloud.io/echo-default   Echo   MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5   10         10                  ["wasmcloud:httpserver","wasmcloud:builtin:logging"]   wasmcloud.azurecr.io/echo:0.3.8
    
    NAME                                CONTRACTID             LINK   ACTORYKEY                                                  PROVIDERKEY
    link.kasmcloud.io/httpserver-echo   wasmcloud:httpserver   test   MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5   VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M
    
    NAME                                       DESC          PUBLICKEY                                                  LINK   CONTRACTID             IMAGE
    provider.kasmcloud.io/httpserver-default   HTTP Server   VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M   test   wasmcloud:httpserver   ghcr.io/iceber/wasmcloud/httpserver:0.17.0-index
    
  5. 使用 curl 访问 echo 服务器

    # 在另一个终端中
    kubectl port-forward pod/kasmcloud-host-default 8080:8080
    
    curl 127.0.0.1:8080
    {"body":[],"method":"GET","path":"/","query_string":""}
    

路线图

  • 添加 KasmCloudHost 资源
  • 为资源添加状态信息
  • 添加 Kasmcloud Repeater 模块
  • 为 Actor 添加滚动更新
  • 为 Actor 添加 DaemonSet 部署
  • Actors 和 Providers 的蓝/绿部署

参考链接

评论