Rust Kubernetes operator example
A Kubernetes operator built on top of kube-rs project. There is an explanatory article available.
Steps to run on Linux:
- Install Rust
- Install Kubernetes, K3S.io is an excellent choice, installed simply with
curl -sfL https://get.k3s.io | sh -
. Make sure tosudo chown $USER /etc/rancher/k3s/k3s.yaml
if you're accessing the Kubernetes cluster using the kubeconfig at/etc/rancher/k3s/k3s.yaml
as non-root user. Also,export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
, so the operator can find the kubeconfig. - Use
kubectl apply -f echoes.example.com.yaml
to create the CustomResourceDefinition inside Kubernetes. - Build the project with
cargo build
. If the build fails, make surelibssl-dev
is available. - Run the operator using
cargo run
. It will run outside of the Kubernetes cluster and connect to the Kubernetes REST API using the account inside theKUBECONFIG
automatically.
Finally, a custom Echo
resource can be created with kubectl apply -f echo-example.yaml
. A new deployment of two pods with Echo
REST API service will be created. This can be checked with the kubectl get pods
or kubectl get deployments
command.