Automated management of large-scale applications on Kubernetes (incubating project under CNCF)
So that Kruise can install into Kubernetes 1.22 and no longer support Kubernetes < 1.16.
When update spec.template.metadata.labels/annotations
in CloneSet or Advanced StatefulSet and there exists container env from the changed labels/annotations,
Kruise will in-place update them to renew the env value in containers.
Container Launch Priority provides a way to help users control the sequence of containers start in a Pod.
It works for Pod, no matter what kind of owner it belongs to, which means Deployment, CloneSet or any other Workloads are all supported.
Thanks to all our contributors! 😊
WorkloadSpread supports to constrain the spread of stateless workload, which empowers single workload the abilities for multi-domain and elastic deployment.
It can be used with those stateless workloads, such as CloneSet, Deployment, ReplicaSet and even Job.
Kubernetes offers Pod Disruption Budget (PDB) to help you run highly available applications even when you introduce frequent voluntary disruptions. PDB limits the number of Pods of a replicated application that are down simultaneously from voluntary disruptions. However, it can only constrain the voluntary disruption triggered by the Eviction API. For example, when you run kubectl drain, the tool tries to evict all of the Pods on the Node you're taking out of service.
PodUnavailableBudget can achieve the effect of preventing ALL application disruption or SLA degradation, including pod eviction, deletion, inplace-update, ...
kubectl ... -o wide
fields for kruise resourcesThanks to all our contributors! 😊
[doc]
ContainerRecreateRequest provides a way to let users restart/recreate one or more containers in an existing Pod.
[doc]
This feature provides a safety policy which could help users protect Kubernetes resources and applications' availability from the cascading deletion mechanism.
pod-deletion-cost
to let users set the priority of pods deletion. [doc]CloneSetShortHash
feature-gate, which solves the length limit of CloneSet name. [doc]maxUnavailable
and maxSurge
effective for specified deletion. [doc]partition
. [doc]podSelector
to pull image on nodes of the specific pods.Thanks to all our contributors! 😊
Thanks to all our contributors! 😊
--
instead of -
. If you install Kruise with helm chart, ignore this.kruise-daemon
comes in. It is deployed in kruise-system using DaemonSet, defaults on every Node.Now Kruise includes two components:
Kruise will create a NodeImage for each Node, and its spec
contains the images that should be downloaded on this Node.
Also, users can create an ImagePullJob CR to declare an image should be downloaded on which nodes.
apiVersion: apps.kruise.io/v1alpha1
kind: ImagePullJob
metadata:
name: test-imagepulljob
spec:
image: nginx:latest
completionPolicy:
type: Always
parallelism: 10
pullPolicy:
backoffLimit: 3
timeoutSeconds: 300
selector:
matchLabels:
node-label: xxx
spec
:
namespace
: indicates this SidecarSet will only inject for Pods in this namespace.spec.containers
:
podInjectPolicy
: indicates this sidecar container should be injected in the front or end of containers
list.upgradeStrategy
: indicates the upgrade strategy of this sidecar container (currently it only supports ColdUpgrade
)shareVolumePolicy
: indicates whether to share other containers' VolumeMounts in the Pod.transferEnv
: can transfer the names of env shared from other containers.spec.updateStrategy
:
type
: contains NotUpdate
or RollingUpdate
.selector
: indicates only update Pods that matched this selector.partition
: indicates the desired number of Pods in old revisions.scatterStrategy
: defines the scatter rules to make pods been scattered during updating.currentRevision
field in status.inplace-update-state
=> apps.kruise.io/inplace-update-state
, inplace-update-grace
=> apps.kruise.io/inplace-update-grace
.maxSurge
calculation when partition > replicas.--assign-bcj-pods-by-scheduler
flag to control whether to use scheduler to assign BroadcastJob's Pods.Thanks to all our contributors! 😊
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
Thanks for @rishi-anand contributing!
An enhanced version of CronJob, it supports multiple kind in a template:
apiVersion: apps.kruise.io/v1alpha1
kind: AdvancedCronJob
spec:
template:
# Option 1: use jobTemplate, which is equivalent to original CronJob
jobTemplate:
# ...
# Option 2: use broadcastJobTemplate, which will create a BroadcastJob object when cron schedule triggers
broadcastJobTemplate:
# ...
# Options 3(future): ...
v1alpha1
advanced statefulsets to v1beta1
automaticallyv1beta1
, users can still get them through v1alpha1
client and apiThanks to all our contributors! 😊
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.1/kruise-chart.tgz
Thanks to all our contributors! 😊
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.6.0/kruise-chart.tgz
An enhanced version of default DaemonSet with extra functionalities such as:
Thanks to all our contributors! 😊
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.5.0
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.5.0/kruise-chart.tgz
Please check the CHANGELOG for a list of changes.
The official docker.io/openkruise/kruise-manager:v0.4.1
is hosted under dockerhub
To install the Kruise controller manager, use helm install
the chart package:
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.4.1/kruise-chart.tgz