Latest in branch 1.7
1.7.16
Released 29 Mar 2018
(8 years ago)
SoftwareKubernetes
Version1.7
Status
End of life
Initial release1.7.0
29 Jun 2017
(8 years ago)
Latest release1.7.16
29 Mar 2018
(8 years ago)
End of supportUnavailable
End of security fixesUnavailable
Release noteshttps://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.7.md
Source codehttps://github.com/kubernetes/kubernetes/tree/v1.7.16
Documentationhttps://v1-7.docs.kubernetes.io/
Downloadhttps://kubernetes.io/releases/download/
Kubernetes 1.7 ReleasesView full list

What Is New in Kubernetes 1.7

Kubernetes 1.7 delivers a substantial update focused on stateful application stability, extensibility, and security. This release strengthens core controllers and introduces powerful new features for advanced workloads.

Category Key Highlights
New Features StatefulSet Updates, External Admission Controllers, Encryption at Rest, Local Storage, Policy API
Improvements Node Controller, DaemonSet Updates, Scheduler Performance, kubectl Plugins
Security Network Policy for NodePort Services, PodSecurityPolicy Annotations, Kubelet TLS Bootstrap
Deprecations kubectl rolling-update, Init Container Annotations, ThirdPartyResources

How did Stateful Applications get more reliable?

The StatefulSet controller underwent a major rewrite, moving it out of beta to general availability (v1). This overhaul makes it far more resilient to master failures during control plane operations.

It now uses a deterministic update strategy, which drastically reduces the potential for pod corruption during updates or scaling events. In practice, this means your databases and other stateful workloads are much less likely to enter a failed state during routine cluster maintenance.

They also introduced automated rollbacks for failed updates. If a Pod fails to become ready after a StatefulSet update, the controller will automatically revert to the previous working version, a critical safety feature for production environments.

What new extensibility options are available for admission control?

Kubernetes 1.7 added external admission webhooks, a game-changer for cluster customization. This allows you to offload admission control decisions to your own HTTP servers outside the API server.

You can now write custom logic in any language to validate or mutate resource requests without recompiling the Kubernetes source. This is how many advanced policy engines and security validators got their start, providing a clean separation of concerns.

The API server makes a call to your webhook with the object data, and your service responds with whether to admit the request and optionally a modified version of the object. This pattern is incredibly powerful for enforcing complex organizational rules.

How is data at rest secured in this release?

This version introduced alpha support for encrypting Secrets data at rest in etcd. Before this, anyone with access to the etcd datastore could read Secret contents in plain text.

You can configure the API server with a encryption provider (like AES-CBC or a custom KMS plugin) to automatically encrypt Secret resources before they are written to disk. This adds a critical defense layer for sensitive credentials like database passwords and API tokens.

It's an alpha feature, so it required explicit enabling and had some rough edges, but it laid the essential groundwork for a more secure default posture in future releases.

What improvements were made for local storage management?

Kubernetes 1.7 added a new resource, Local, to represent a local storage device directly attached to a node. This was a beta feature that simplified managing fast local SSDs for data-caching or temporary processing.

You could define a PersistentVolume tied to a specific path on a node's filesystem. The scheduler then understood this constraint, ensuring that a Pod requesting that volume would be placed on the correct node that had the local disk available.

This was a big deal for performance-sensitive workloads that couldn't tolerate the latency of network-attached storage, providing a native way to use local disks without complex manual node affinity rules.

How did the node controller and scheduler get faster?

The node controller's logic for handling a large number of nodes was significantly optimized. It reduced the frequency of unnecessary API calls, which cut down on load and improved its responsiveness in massive clusters.

Similarly, the scheduler's performance saw improvements, making it quicker to assign Pods to nodes, especially in scenarios with complex scheduling constraints or high churn rates. These under-the-hood optimizations made the entire control plane feel snappier at scale.

FAQ

Is the StatefulSet update process now safe for my production database?
Yes, the v1 StatefulSet is far more robust. The key improvement is its use of a deterministic update order and automated rollback on failure, which greatly minimizes the risk of data corruption during rolling updates compared to the beta version.

I need to validate custom resource fields, should I use an external admission webhook?
For complex validation logic that can't be expressed with OpenAPI schemas, absolutely. External webhooks give you maximum flexibility. For simpler checks, wait for the CustomResourceDefinition validation feature which came later.

Does encrypting secrets at rest impact API performance?
There is a minor performance overhead because the API server must encrypt on write and decrypt on read. For most clusters, this is negligible, but it's something to benchmark if you have an extremely high volume of Secret traffic.

What happens to my old ThirdPartyResources (TPRs) in 1.7?
ThirdPartyResources are officially deprecated and replaced by CustomResourceDefinitions (CRDs). You should begin migrating your TPRs to CRDs, as support for TPRs will be removed in a future release.

Can I use network policies to restrict access to a NodePort service?
Yes, this was a key networking fix in 1.7. Previously, Network Policies would not affect NodePort services. Now, you can write policies that correctly filter traffic arriving at a node's IP address and NodePort.

Releases In Branch 1.7

VersionRelease date
1.7.1629 Mar 2018
(8 years ago)
1.7.1517 Mar 2018
(8 years ago)
1.7.1412 Mar 2018
(8 years ago)
1.7.1304 Feb 2018
(8 years ago)
1.7.1228 Dec 2017
(8 years ago)
1.7.1122 Nov 2017
(8 years ago)
1.7.1003 Nov 2017
(8 years ago)
1.7.919 Oct 2017
(8 years ago)
1.7.805 Oct 2017
(8 years ago)
1.7.728 Sep 2017
(8 years ago)
1.7.614 Sep 2017
(8 years ago)
1.7.531 Aug 2017
(8 years ago)
1.7.417 Aug 2017
(8 years ago)
1.7.303 Aug 2017
(8 years ago)
1.7.221 Jul 2017
(8 years ago)
1.7.114 Jul 2017
(8 years ago)
1.7.029 Jun 2017
(8 years ago)
1.7.0-rc.124 Jun 2017
(8 years ago)
1.7.0-beta.215 Jun 2017
(8 years ago)
1.7.0-beta.108 Jun 2017
(9 years ago)
1.7.0-alpha.418 May 2017
(9 years ago)
1.7.0-alpha.305 May 2017
(9 years ago)
1.7.0-alpha.220 Apr 2017
(9 years ago)
1.7.0-alpha.106 Apr 2017
(9 years ago)