v0.3.0
版本发布时间: 2020-06-18 06:58:25
krustlet/krustlet最新发布版本:v1.0.0-alpha.1(2021-07-28 01:06:02)
Krustlet v0.3.0 is the third release of Krustlet. This release was focused on refactoring, documentation, and TLS bootstrapping. 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 production-ready software, but it is in a usable state. The WASI standard and wasmtime are still under heavy development, and because of this there are key features (like networking) that are missing; these will appear in the future. However, there is networking support available in wasCC.
Notable Features/Changes
- TLS bootstrapping support has been added :tada: Krustlet will now automatically request the proper client certificate credentials and the serving certificates for its API. See the bootstrapping docs for more details.
- We now have support for using a config file and better documentation of our configuration options.
- Improved error handling for the Kubelet API
- The WASI provider now supports passing arguments in the pod spec
- Graceful shutdown support has been added. This will try to evict all pods before shutting down
Breaking changes
- We have moved away from using a
.pfx
certificate bundle for TLS in favor of a separate certificate and key. Because of this, the--pfx-password
flag has been removed and the new flags for TLS are--cert-file
and--private-key-file
- The environment variables for configuring the certificate and key file locations have been standardized and renamed with the
KRUSTLET_
prefix:-
TLS_PRIVATE_KEY_FILE
=>KRUSTLET_PRIVATE_KEY_FILE
-
TLS_CERT_FILE
=>KRUSTLET_CERT_FILE
-
- Many modules in the
kubelet
crate have shifted around. When upgrading your Providers tokubelet
0.3.0, note the following changes in your import paths:-
kubelet::Provider
->kubelet::provider::Provider
-
kubelet::NodeBuilder
->kubelet::node::Builder
-
kubelet::Pod
->kubelet::pod::Pod
-
kubelet::module_store::ModuleStore
->kubelet::store::Store
-
kubelet::module_store::FileModuleStore
->kubelet::store::oci::FileStore
-
kubelet::handle::key_from_pod
->kubelet::pod::key_from_pod
-
kubelet::handle::pod_key
->kubelet::pod::pod_key
-
kubelet::handle::PodHandle
->kubelet::pod::Handle
-
kubelet::handle::RuntimeHandle
->kubelet::container::Handle
-
kubelet::status::update_pod_status
->kubelet::pod::update_status
-
kubelet::status::Phase
->kubelet::pod::Phase
-
kubelet::status::Status
->kubelet::pod::Status
-
kubelet::status::ContainerStatus
->kubelet::container::Status
-
kubelet::handle::Stop
->kubelet::handle::StopHandler
-
kubelet::volumes::VolumeRef
->kubelet::volume::Ref
-
kubelet::logs::LogOptions
->kubelet::log::Options
-
kubelet::logs::LogSender
->kubelet::log::Sender
-
Known Issues/Missing Features
- Cloud volume mounting support
- Init containers
- Only linux and Darwin 64 bit architectures are supported. We hope to be adding ARM and other targets in the future. Right now, Windows is do-able, but we are trying to improve the developer process and testing before supporting it as a build target
- 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
- Modifying a bare pod's image is not implemented. Nothing will error, but Krustlet will not restart the "container"
- TLS bootstrapping does not auto-renew certificates when they are close to expiry
What's next?
Our next anticipated version is 0.4.0 (although we will cut a 0.3.1 if necessary). You can see a full list of issues planned for 0.4 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 had a whole slew of new contributors and their work has been invaluable in improving quality. We appreciate your efforts in making this project a success.
Contributors to 0.3
- @bketelsen
- @kflansburg
- @DerekStrickland
- @itowlson
- @bacongobbler
- @thomastaylor312
Installation
Download Krustlet 0.3.0:
Check out our installation docs for information on how to install Krustlet.