KasmCloud
在 Kubernetes 中管理和运行 Actors、Providers 和 Links
## :warning:警告
**这是一个由贡献者领导的实验性项目,目前不建议在生产环境中运行。**
每个标签都可以正常工作,但在标签之间可能存在不兼容的更改。
## 设计
[将 WasmCloud 与 Kubernetes 结合](https://docs.google.com/document/d/16p-9czZ6GT_layiabGE6HTyVpbYSALjoyxXhgIfYW0s/edit#heading=h.ymjg4q1g3smk)
## 快速开始
1. 部署 Nats
```bash
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 服务器
```bash
kubectl apply -f ./deploy/crds
kubectl apply -f ./deploy/webhook
```
3. 部署 KasmCloud Host
```bash
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 示例
```bash
kubectl apply -f ./sample.yaml
kubectl get kasmcloud
```
输出为:
```console
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 服务器
```bash
# 在另一个终端中
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 的蓝/绿部署
## 参考链接
- [kasmcloud 仓库](https://github.com/wasmCloud/kasmcloud)