Automated management of large-scale applications on Kubernetes (incubating project under CNCF)
To install or upgrade to the old version, see installation doc.
Kubernetes provides three Pod lifecycle management:
So the Probe capabilities provided in Kubernetes have defined specific semantics and related behaviors. In addition, there is actually a need to customize Probe semantics and related behaviors, such as:
So we provides the ability to customize the Probe and return the result to the Pod yaml.
For more detail, please refer to its documentation and proposal.
With the development of cloud native, more and more companies start to deploy stateful services (e.g., Etcd, MQ) using Kubernetes. K8S StatefulSet is a workload for managing stateful services, and it considers the deployment characteristics of stateful services in many aspects. However, StatefulSet persistent only limited pod state, such as Pod Name is ordered and unchanging, PVC persistence, and can not cover other states, e.g. Pod IP retention, priority scheduling to previously deployed Nodes.
So we provide PersistentPodState
CRD to persistent other states of the Pod, such as "IP Retention".
For more detail, please refer to its documentation and proposal.
partition < 100%
(Behavior Change). (#954, @veophi)expectedUpdatedReplicas
field into CloneSet status. (#954 & #963, @veophi)markPodNotReady
field into lifecycle hook to support marking Pod as NotReady during preparingDelete or preparingUpdate. (#979, @veophi)markPodNotReady
field into lifecycle hook to support marking Pod as NotReady during preparingDelete or preparingUpdate. (#979, @veophi)Thanks to all our contributors! 😊
pod-template-hash
label into Pods, which will always be the short hash. (#931, @FillZpp)dedupCurHistories
func in ReconcileDaemonSet. (#912, @LastNight1997)Thanks to all our contributors! 😊
Thanks to all our contributors! 😊
Thanks to all our contributors! 😊
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.
For the scenario, where the namespace-scoped resources such as Secret and ConfigMap need to be distributed or synchronized to different namespaces, the native k8s currently only supports manual distribution and synchronization by users one-by-one, which is very inconvenient.
Therefore, in the face of these scenarios that require the resource distribution and continuously synchronization across namespaces, we provide a tool, namely ResourceDistribution, to do this automatically.
Currently, ResourceDistribution supports the two kind resources --- Secret & ConfigMap.
maxUnavailable
field in scaleStrategy
to support rate limiting of scaling up.currentRevision
when all pods updated to it, won't wait all pods to be ready (Behavior Change).--nodeimage-creation-delay
flag to delay NodeImage creation after Node ready.Thanks to all our contributors! 😊
For the scenario, where the namespace-scoped resources such as Secret and ConfigMap need to be distributed or synchronized to different namespaces, the native k8s currently only supports manual distribution and synchronization by users one-by-one, which is very inconvenient.
Therefore, in the face of these scenarios that require the resource distribution and continuously synchronization across namespaces, we provide a tool, namely ResourceDistribution, to do this automatically.
Currently, ResourceDistribution supports the two kind resources --- Secret & ConfigMap.
maxUnavailable
field in scaleStrategy
to support rate limiting of scaling up.Thanks to all our contributors! 😊
--nodeimage-creation-delay
flag to delay NodeImage creation after Node readyThanks to all our contributors! 😊
Thanks to all our contributors! 😊
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! 😊