-
Notifications
You must be signed in to change notification settings - Fork 201
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d24e950
commit 8bd7b59
Showing
8 changed files
with
429 additions
and
59 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
<div align="center"> | ||
<h1><code>KasmCloud</code></h1> | ||
|
||
<strong>Managing and Running Actors, Providers, and Links in Kubernetes</strong> | ||
</div> | ||
|
||
## :warning:Warning | ||
|
||
**This is a contributor-led experimental project and is not recommended to run in production at this time.** | ||
|
||
With each tag, it works fine, but there may be incompatible changes between tags. | ||
|
||
## Design | ||
|
||
[Combining WasmCloud with Kubernetes](https://docs.google.com/document/d/16p-9czZ6GT_layiabGE6HTyVpbYSALjoyxXhgIfYW0s/edit#heading=h.ymjg4q1g3smk) | ||
|
||
<div align="center"><img src="./arch.png" style="width:500px;" /></div> | ||
|
||
## Quick Start | ||
|
||
1. Deploy 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. Deploy KasmCloud CRDs and Webhook Server | ||
|
||
```bash | ||
kubectl apply -f ./deploy/crds | ||
kubectl apply -f ./deploy/webhook | ||
``` | ||
|
||
3. Deploy KasmCloud Host | ||
|
||
```bash | ||
kubectl apply -f ./deploy/kasmcloud_host_rbac.yaml | ||
# Deploy Default KasmCloud Host | ||
kubectl apply -f ./deploy/kasmcloud_host_default.yaml | ||
# [Optional] You can also deploy KasmCloud Host in each Kubernetes node. | ||
kubectl apply -f ./deploy/kasmcloud_host_daemonset.yaml | ||
# [Optional] You can also deploy as many temporary hosts as you want | ||
# and change the number of temporary hosts by scaling the Deployment | ||
kubectl apply -f ./deploy/kasmcloud_host_deployment.yaml | ||
``` | ||
|
||
4. Deploy Actor, Link and Provider Sample | ||
|
||
```bash | ||
kubectl apply -f ./sample.yaml | ||
kubectl get kasmcloud | ||
``` | ||
|
||
Output is similar to: | ||
|
||
```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 server | ||
|
||
```bash | ||
# other terminal | ||
kubectl port-forward pod/kasmcloud-host-default 8080:8080 | ||
curl 127.0.0.1:8080 | ||
{"body":[],"method":"GET","path":"/","query_string":""} | ||
``` | ||
|
||
## RoadMap | ||
|
||
* Add KasmCloudHost resource | ||
* Add status information for the resource | ||
* Add Kasmcloud Repeater module | ||
* Add rolling updates for Actor | ||
* Add DaemonSet deployment for Actor | ||
* Blue/Green Deployment for Actors and Providers | ||
|
||
## Reference | ||
|
||
- [kasmcloud repo](https://github.com/wasmCloud/kasmcloud) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# kube-node-tuning | ||
|
||
kube-node-tuning is aimed at kernel tuning by kubernetes. It's useful to: | ||
|
||
* High performance application | ||
* Large Scale Cluster | ||
* Network Tuning | ||
|
||
## Quick Start | ||
|
||
```bash | ||
export VERSION=v0.3.1 | ||
helm repo add kube-node-tuning https://kubean-io.github.io/kube-node-tuning/ | ||
helm install -n kube-node-tuning kube-node-tuning kube-node-tuning/kube-node-tuning --version $VERSION --create-namespace | ||
``` | ||
|
||
!!! tip | ||
|
||
If the machine is in China, you should following by: [quick-start-in-china](docs/quick-start-in-china.md) | ||
|
||
The kernel's sysctl settings are applied to the node at /etc/99-kube-node-tuning.conf. | ||
|
||
Check if the settings are applied by the following command. | ||
SSH to the node of cluster | ||
|
||
```bash | ||
cat /etc/sysctl.d/99-kube-node-tuning.conf | ||
sysctl -a # view the sysctl setting | ||
``` | ||
|
||
## Configuration | ||
|
||
```bash | ||
# Change the config | ||
kubectl -n kube-node-tuning edit cm/kube-node-tuning-config -o yaml | ||
|
||
# Restart the DaemonSet | ||
kubectl -n kube-node-tuning rollout restart ds kube-node-tuning | ||
``` | ||
|
||
## Roadmap | ||
|
||
* Different OS Support. (Ubuntu, CentOS, RHEL, etc.) | ||
* Multi profile | ||
* Operator instead of Daemonset | ||
|
||
## Reference | ||
|
||
- [kube-node-tunning repo](https://github.com/kubean-io/kube-node-tuning) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Piraeus Datastore - High-Availability Datastore for Kubernetes | ||
|
||
Piraeus is a high performance, highly-available, simple, secure, and cloud agnostic storage solution for Kubernetes. | ||
|
||
The Piraeus Project consists of: | ||
|
||
* A [Kubernetes Operator](https://github.com/piraeusdatastore/piraeus-operator) to create, configure and maintain all components of Piraeus. | ||
* A [CSI Driver](https://github.com/piraeusdatastore/linstor-csi) to provision persistent volumes and snapshots on the storage cluster maintained by Piraeus. | ||
* A [High Availability Controller](https://github.com/piraeusdatastore/piraeus-ha-controller) to speed up the failover process of stateful workloads | ||
* A [Volume Affinity Controller](https://github.com/piraeusdatastore/linstor-affinity-controller), keeping Kubernetes Persistent Volumes reported affinity in sync with the cluster. | ||
* Container images for the open source components Piraeus is built on: | ||
* [DRBD](https://github.com/LINBIT/drbd) is used as the underlying storage replication mechanism between cluster nodes. | ||
[Documentation](https://docs.linbit.com/docs/users-guide-9.0/) is provided by [LINBIT](https://www.linbit.com/). | ||
* [LINSTOR](https://github.com/LINBIT/linstor-server) creates and manages volumes on request of the CSI Driver, sets up replication using DRBD and prepares | ||
the backing storage devices. | ||
[Documentation](https://docs.linbit.com/docs/linstor-guide/) is provided by [LINBIT](https://www.linbit.com/). | ||
|
||
Piraeus is a [CNCF Sandbox Project](https://www.cncf.io/sandbox-projects/). | ||
|
||
## Getting started | ||
|
||
Installing Piraeus can be as easy as: | ||
|
||
```bash | ||
$ kubectl apply --server-side -k "https://github.com/piraeusdatastore/piraeus-operator//config/default?ref=v2" | ||
namespace/piraeus-datastore configured | ||
... | ||
$ kubectl wait pod --for=condition=Ready -n piraeus-datastore -l app.kubernetes.io/component=piraeus-operator | ||
pod/piraeus-operator-controller-manager-dd898f48c-bhbtv condition met | ||
$ kubectl apply -f - <<EOF | ||
apiVersion: piraeus.io/v1 | ||
kind: LinstorCluster | ||
metadata: | ||
name: linstorcluster | ||
spec: {} | ||
EOF | ||
``` | ||
|
||
Head on over to the [Piraeus Operator docs](https://github.com/piraeusdatastore/piraeus-operator/tree/v2/docs) to learn more. It contains detailed instructions on how to get started | ||
using Piraeus. | ||
|
||
It also contains a [basic Helm chart](https://github.com/piraeusdatastore/piraeus-operator/tree/v2/charts/piraeus). | ||
|
||
## Community | ||
|
||
Active communication channels: | ||
|
||
* [Slack](https://piraeus-datastore.slack.com/join/shared_invite/enQtOTM4OTk3MDcxMTIzLTM4YTdiMWI2YWZmMTYzYTg4YjQ0MjMxM2MxZDliZmEwNDA0MjBhMjIxY2UwYmY5YWU0NDBhNzFiNDFiN2JkM2Q) | ||
|
||
Piraeus Datastore is mainly a glue project that connects LINSTOR and DRBD to Kubernetes. Therefore, | ||
communication channels for [LINSTOR] and [DRBD] are also relevant for people interested in Piraeus | ||
Datastore. This is ... | ||
|
||
* [LINBIT community slack](https://linbit-community.slack.com/join/shared_invite/enQtOTg0MTEzOTA4ODY0LTFkZGY3ZjgzYjEzZmM2OGVmODJlMWI2MjlhMTg3M2UyOGFiOWMxMmI1MWM4Yjc0YzQzYWU0MjAzNGRmM2M5Y2Q#/shared-invite/email) | ||
* [DRBD related mailing lists](https://lists.linbit.com/) | ||
* [LINBIT community meetings](https://linbit.com/community-meeting/) | ||
|
||
## Reference | ||
|
||
- [Piraeus Repo](https://github.com/piraeusdatastore/piraeus) | ||
- [Piraeus Website](https://piraeus.io/) |
Oops, something went wrong.