Skip to content

Commit be474ec

Browse files
author
Tim Bannister
authored
Make Markdown and editorial tweaks
1 parent 6a20e61 commit be474ec

File tree

1 file changed

+16
-14
lines changed
  • content/en/blog/_posts/2022-09-15-sig-apps-GA-1.25

1 file changed

+16
-14
lines changed
Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,43 @@
11
---
22
layout: blog
3-
title: "sig-apps features graduating to stable in 1.25"
3+
title: "SIG Apps Features Graduating to Stable in Kubernetes 1.25"
44
date: 2022-09-15
5-
slug: "sig-apps features graduating to stable in 1.25"
5+
slug: "sig-apps-features-stable-1-25"
66
---
77

88
**Authors:** Ravi Gudimetla (Apple), Filip Křepinský (Red Hat), Maciej Szulik (Red Hat)
99

10-
This blog describes the two features namely `minReadySeconds` for StatefulSets and `maxSurge` for DaemonSets that sig-apps is happy to graduate to stable in 1.25.
10+
This blog describes the two features namely `minReadySeconds` for StatefulSets and `maxSurge` for DaemonSets that SIG Apps is happy to graduate to stable in Kubernetes 1.25.
1111

1212
Specifying `minReadySeconds` slows down a rollout of a StatefulSet, when using a `RollingUpdate` value in `.spec.updateStrategy` field, by waiting for each pod for a desired time.
1313
This time can be used for initializing the pod (e.g. warming up the cache) or as a delay before acknowledging the pod.
1414

1515
`maxSurge` allows a DaemonSet workload to run multiple instances of the same pod on a node during a rollout when using a `RollingUpdate` value in `.spec.updateStrategy` field.
1616
This helps to minimize the downtime of the DaemonSet for consumers.
1717

18-
These features are already available in a Deployment and other workloads. This graduation helps to align this functionality across the workloads.
18+
These features were already available in a Deployment and other workloads. This graduation helps to align this functionality across the workloads.
1919

2020
## What problems do these features solve?
2121

22-
### MinReadySeconds for StatefulSets
22+
### minReadySeconds for StatefulSets {#solved-problem-statefulset-minreadyseconds}
2323
`minReadySeconds` ensures that the StatefulSet workload is `Ready` for the given number of seconds before reporting the
2424
pod as `Available`. The notion of being `Ready` and `Available` is quite important for workloads. For example, some workloads, like Prometheus with multiple instances of Alertmanager, should be considered `Available` only when the Alertmanager's state transfer is complete. `minReadySeconds` also helps when using loadbalancers with cloud providers. Since the pod should be `Ready` for the given number of seconds, it provides buffer time to prevent killing pods in rotation before new pods show up.
2525

2626

27-
### MaxSurge for DaemonSets
27+
### maxSurge for DaemonSets {#how-use-daemonset-maxsurge}
2828
Kubernetes system-level components like CNI, CSI are typically run as DaemonSets. These components can have impact on the availability of the workloads if those DaemonSets go down momentarily during the upgrades. The feature allows DaemonSet pods to temporarily increase their number, thereby ensuring zero-downtime for the DaemonSets.
2929

30-
Please note that the usage of `HostPort` in conjunction with `MaxSurge` in DaemonSets is not allowed as DaemonSet pods are tied to a single node and two active pods cannot share the same port on the same node.
30+
Please note that the usage of `hostPort` in conjunction with `maxSurge` in DaemonSets is not allowed as DaemonSet pods are tied to a single node and two active pods cannot share the same port on the same node.
3131

3232

3333
## How does it work?
3434

35-
### MinReadySeconds for StatefulSets
35+
### minReadySeconds for StatefulSets {#how-does-statefulset-minreadyseconds-work}
3636

3737
The StatefulSet controller watches for the StatefulSet pods and counts how long a particular pod has been in the `Running` state, if this value is greater than or equal to the time specified in `.spec.minReadySeconds` field of the StatefulSet, the StatefulSet controller updates the `AvailableReplicas` field in the StatefulSet's status.
3838

3939

40-
### MaxSurge for DaemonSets
40+
### maxSurge for DaemonSets {#how-does-daemonset-maxsurge-work}
4141

4242
The DaemonSet controller creates the additional pods (above the desired number resulting from DaemonSet spec) based on the value given in `.spec.strategy.rollingUpdate.maxSurge`. The additional pods would run on the same node where the old DaemonSet pod is running till the old pod gets killed.
4343

@@ -47,7 +47,7 @@ The DaemonSet controller creates the additional pods (above the desired number r
4747

4848
## How do I use it?
4949

50-
### MinReadySeconds for StatefulSets
50+
### minReadySeconds for StatefulSets {#how-use-statefulset-minreadyseconds}
5151

5252
Specify a value for `minReadySeconds` for any StatefulSet and check if pods are available or not by inspecting
5353
`AvailableReplicas` field using:
@@ -56,7 +56,7 @@ Specify a value for `minReadySeconds` for any StatefulSet and check if pods are
5656

5757
Please note that the default value of `minReadySeconds` is 0.
5858

59-
### MaxSurge for DaemonSets
59+
### maxSurge for DaemonSets {#how-use-daemonset-maxsurge}
6060

6161
Specify a value for `.spec.updateStrategy.rollingUpdate.maxSurge` and set `.spec.updateStrategy.rollingUpdate.maxUnavailable` to `0`.
6262

@@ -69,16 +69,18 @@ kubectl get pods -w
6969

7070
## How can I learn more?
7171

72-
### MinReadySeconds for StatefulSets
72+
### minReadySeconds for StatefulSets {#learn-more-statefulset-minreadyseconds}
7373

74+
- Documentation: https://k8s.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds
7475
- KEP: https://github.com/kubernetes/enhancements/issues/2599
7576
- API Changes: https://github.com/kubernetes/kubernetes/pull/100842
7677

77-
### MaxSurge for DaemonSets
78+
### maxSurge for DaemonSets {#learn-more-daemonset-maxsurge}
7879

80+
- Documentation: https://k8s.io/docs/tasks/manage-daemon/update-daemon-set/
7981
- KEP: https://github.com/kubernetes/enhancements/issues/1591
8082
- API Changes: https://github.com/kubernetes/kubernetes/pull/96375
8183

8284
## How do I get involved?
8385

84-
Please reach out to us on [#sig-apps](https://kubernetes.slack.com/archives/C18NZM5K9) channel on slack, sig-apps mailing list-[email protected]
86+
Please reach out to us on [#sig-apps](https://kubernetes.slack.com/archives/C18NZM5K9) channel on Slack, or through the SIG Apps mailing list [[email protected]](https://groups.google.com/g/kubernetes-sig-apps).

0 commit comments

Comments
 (0)