v0.1.0
版本发布时间: 2020-04-07 03:47:30
krustlet/krustlet最新发布版本:v1.0.0-alpha.1(2021-07-28 01:06:02)
Krustlet 0.1.0 is the first release of Krustlet. For more details on the project and why it exists, see the blog post. This release contains a minimally functional Kubelet implementation for using WASI ("wasmtime") or wasCC as a backend provider. You can create a pod, have it run (with status updates), and be able to fetch the logs. For more details on what isn't implemented yet, see the Known Issues section.
Because this is pre-release software, there are no backwards compatibility guarantees for the Rust API or functionality. However, we will do our best to document any breaking changes in future releases
Caveats
Please note that this is not fully production ready software, but it is definitely in a usable state. The WASI standard and wasmtime are still under heavy development. There are some key features (like networking) that are currently missing, but will be made available in future updates. However, there is networking support available in wasCC.
Right now, workloads for the WASI provider should be short lived. There is no current way to safely interrupt a long-running WASM module in wasmtime, though there will be in the future.
Using Krustlet as a library
All of the functionality of Krustlet is also available as a Rust crate, but since this is still experimental we have not published the crates to https://crates.io. If you are interested in using these as published crates, please let us know so we can prioritize it!
To use any of the crates as a dependency, you'll need to add it to your dependencies like so (replacing kubelet
with the name of the crate you want):
kubelet = { git = "https://github.com/deislabs/krustlet", tag = "v0.1.0" }
The kubelet
crate is a generic Kubelet implementation that can be used to create your own Kubelet or Provider. The oci-distribution
crate is a partial implementation of the OCI spec that we hope to fully flesh out in the future (as of right now, it is just an implementation of what is needed to pull images for Krustlet)
Known Issues/Missing Features
- Volume mounting support
- Init containers
- Stopping long running instances
- Only linux and Darwin 64 bit architectures are supported. We hope to be adding ARM and other targets in the future
- Support for all pod phases/conditions (
ContainerCreating
,CrashLoopBackoff
, etc.). However, please note that running and error conditions are supported, so you'll know if your pod is erroring - Unsupported workloads (such as those dropped automatically onto a node like kube-proxy) can get into an error loop. This is more of a nuisance that will cause some logging noise, but not impact the running of Krustlet
- Status updating: Krustlet does not currently have all of the bootstrapping for TLS and users that allows it to update the status of nodes. Because of this, it does not update the ready heartbeat of the node (though it does update its lease) and it has to delete and recreate the node on restart. This will be improved in version 0.2
- "Modify" events for pods are not currently supported. However, this shouldn't impact most workloads if you are using things from the
apps/v1
API (e.g. Deployments) - If you are using the wasCC provider, you'll need the object files for the logging and http "capabilities." This is only temporary and these capabilities will be compiled in to the wasCC provider in 0.2.
What's next?
Our next anticipated version is 0.2.0 (although we will cut a 0.1.1 if necessary). You can see a full list of issues planned for 0.2 in the milestone
Thanks
We also want to express a huge thanks to all of those in the community who contributed to this release. We appreciate your efforts in making this project a success
Installation
Download Krustlet 0.1.0:
Check out our installation docs for information on how to install Krustlet