v1.9.11
Documentation
Downloads for v1.9.11
filename |
sha512 hash |
kubernetes.tar.gz |
4f04d07e31ca49c033680cabb011de1d893db94213ee3d68cb4345be435012279682b299f2b44dce596bcfd6806a253e9544e263d5a7003ccbab92da8dcfed24 |
kubernetes-src.tar.gz |
49e1134c365d2a6662bc85e055960581909704508e67aad920c46662666c230430c44bd08ce242825a2bb316b3220fbcbdf40232d8c42491cb3aa27a2ce8def8 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.10
Action Required
- action required: the API server and client-go libraries have been fixed to support additional non-alpha-numeric characters in UserInfo "extra" data keys. Both should be updated in order to properly support extra data containing "/" characters or other characters disallowed in HTTP headers. (#65799, @dekkagaijin)
Other notable changes
- Add fallbacks to ARM API when getting empty node IP from Azure IMDS (#69077, @feiskyer)
- fix UnmountDevice failure on Windows (#68608, @andyzhangx)
- adjusted http/2 buffer sizes for apiservers to prevent starvation issues between concurrent streams (#67902, @liggitt)
- Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. (#67026, @satyasm)
- Also updates dependencies of users of debian-base.
- debian-base version 0.3.1 is already available.
- Update debian-iptables and hyperkube-base images to include CVE fixes. (#67365, @ixdy)
- Immediately close the other side of the connection when proxying. (#67288, @MHBauer)
- Fix potential panic when getting azure load balancer status (#68609, @feiskyer)
- [fluentd-gcp-scaler addon] Bump fluentd-gcp-scaler to 0.4 to pick up security fixes. (#67691, @loburm)
- [prometheus-to-sd addon] Bump prometheus-to-sd to 0.3.1 to pick up security fixes, bug fixes and new features.
- [event-exporter addon] Bump event-exporter to 0.2.3 to pick up security fixes.
- PVC may not be synced to controller local cache in time if PV is bound by external PV binder (e.g. kube-scheduler), double check if PVC is not found to prevent reclaiming PV wrongly. (#67062, @cofyc)
- support cross resource group for azure file (#68117, @andyzhangx)
- Use real device path in isDeviceOpen check on umount (#68674, @gnufied)
- Bump ip-masq-agent to v2.1.1 (#67916, @MrHohn)
- - Update debian-iptables image for CVEs.
- - Change chain name to IP-MASQ to be compatible with the
- pre-injected masquerade rules.
- Add NoSchedule/NoExecute tolerations to ip-masq-agent, ensuring it to be scheduled in all nodes except master. (#66260, @tanshanshan)
- set EnableHTTPSTrafficOnly in azure storage account creation (#64957, @andyzhangx)
- Fix VMWare VM freezing bug by reverting #51066 (#67825, @nikopen)
- [fluentd-gcp addon] Bump version of fluentd-gcp to 2.0.18 to include latest security fixes. (#67693, @loburm)
- Return apiserver panics as 500 errors instead terminating the apiserver process. (#68001, @sttts)
- fix issue that pull image failed from a cross-subscription Azure Container Registry by SP access (#66429, @andyzhangx)
- kube-controller-manager can now start the quota controller when discovery results can only be partially determined. (#67433, @deads2k)
- attachdetach controller attaches volumes immediately when Pod's PVCs are bound (#66863, @cofyc)
- This fix prevents a GCE PD volume from being mounted if the udev device link is stale and tries to correct the link. (#66832, @msau42)
- skip nodes that have a primary NIC in a 'Failed' provisioningState (#65412, @yastij)
- A smaller fix for the apiserver panic. (#67552, @wgliang)
- Allows extension API server to dynamically discover the requestheader CA certificate when the core API server doesn't use certificate based authentication for it's clients (#66394, @rtripat)
- add external resource group support for azure disk (#64427, @andyzhangx)
v1.9.10
Documentation & Examples
Downloads for v1.9.10
filename |
sha256 hash |
kubernetes.tar.gz |
77dbeb124f399e7e7ae0d7e3111316e6325b66383fc0ce7c2505758616fb6cd8 |
kubernetes-src.tar.gz |
ce2556081fa209deac0d32bdb95fb6cf6ef147b6e18f06cbb4dbbca0a97630a3 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.9
Other notable changes
- Fix validation for HealthzBindAddress in kube-proxy when --healthz-port is set to 0 (#66138, @wsong)
- fix smb mount issue (#65751, @andyzhangx)
- Fixed API server panic during concurrent GET or LIST requests with non-empty
resourceVersion
. (#65092, @sttts)
- Fix for resourcepool-path configuration in the vsphere.conf file. (#66261, @divyenpatel)
- fixes a validation error that could prevent updates to StatefulSet objects containing non-normalized resource requests (#66165, @liggitt)
- Fix a scalability issue where high rates of event writes degraded etcd performance. (#64539, @ccding)
- Properly manage security groups for loadbalancer services on OpenStack. (#65373, @multi-io)
- Cluster Autoscaler version updated to 1.1.3. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.3 (#65809, @aleksandra-malinowska)
- fixes spurious "meaningful conflict" error encountered by nodes attempting to update status, which could cause them to be considered unready (#66171, @liggitt)
- The garbage collector now supports CustomResourceDefinitions and APIServices. (#65918, @nikhita)
- Fix a bug that preempting a pod may block forever. (#65987, @Random-Liu)
- Reload systemd config files before starting kubelet. (#65702, @mborsz)
- fix formatAndMount func issue on Windows (#63248, @andyzhangx)
- Fixes an issue where Portworx PVCs remain in pending state when created using a StorageClass with empty parameters (#64895, @harsh-px)
- On COS, NPD creates a node condition for frequent occurrences of unregister_netdevice (#65342, @dashpole)
v1.9.9
Documentation & Examples
Downloads for v1.9.9
filename |
sha256 hash |
kubernetes.tar.gz |
846b3f42bfe3e176ac44c4e79826a68648d982a1b6ebc2af15c1424f7b8f42f2 |
kubernetes-src.tar.gz |
6978228a7b85a63ef126e3dfd9356d5516e59f2a4924022bc113590a167d93bb |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.8
Action Required
- ACTION REQUIRED: Kubernetes JSON deserializer is now case-sensitive to restore compatibility with pre-1.8 servers. If your config files contains fields with wrong case, the config files will be now invalid. (#65298, @nikhita)
- A cluster-autoscaler ClusterRole is added to cover only the functionality required by Cluster Autoscaler and avoid abusing system:cluster-admin role. (#64503, @kgolab)
- action required: Cloud providers other than GCE might want to update their deployments or sample yaml files to reuse the role created via add-on.
Other notable changes
- kubelet: fix hangs in updating Node status after network interruptions/changes between the kubelet and API server (#63492, @liggitt)
- fix mount unmount failure for a Windows pod (#63272, @andyzhangx)
- Fix concurrent map access panic (#65327, @dashpole)
- Don't watch .mount cgroups to reduce number of inotify watches
- Fix NVML initialization race condition
- Fix brtfs disk metrics when using a subdirectory of a subvolume
- Bump version of prometheus-to-sd to 0.2.6 to decrease log noise and include latest security patches. (#64964, @loburm)
- fixes a memory leak in the kube-controller-manager observed when large numbers of pods with tolerations are created/deleted (#65339, @liggitt)
- Fix kube-controller-manager panic while provisioning Azure security group rules (#64739, @feiskyer)
- Fixes issue for readOnly subpath mounts for SELinux systems and when the volume mountPath already existed in the container image. (#64351, @msau42)
- removed unsafe double RLock in cpumanager (#62464, @choury)
- Fix container StartTime in the kubelet's stats/summary endpoint (#64229, @dashpole)
- Fix issue of colliding nodePorts when the cluster has services with externalTrafficPolicy=Local (#64468, @nicksardo)
- Fix incorrectly propagated ResourceVersion in ListRequests returning 0 items. (#64150, @wojtek-t)
- GCE: Fix to make the built-in
kubernetes
service properly point to the master's load balancer address in clusters that use multiple master VMs. (#63696, @grosskur)
- Add a way to pass extra arguments to etcd. (#63961, @mborsz)
v1.9.8
Documentation & Examples
Downloads for v1.9.8
filename |
sha256 hash |
kubernetes.tar.gz |
de31bcccfe99b88f54ff24147be0b6c4fbc4fe46b10f81d0f05294317070e221 |
kubernetes-src.tar.gz |
d349086847a22ee89dc1fba335741c670650c0b61c1648612f4a40bc0b90255e |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.7
Other notable changes
- Fix a bug in scheduler cache by using Pod UID as the cache key instead of namespace/name (#61069, @anfernee)
- Fix in vSphere Cloud Provider to handle upgrades from kubernetes version less than v1.9.4 to v1.9.4 and above. (#62919, @abrarshivani)
- Fixes issue where subpath readOnly mounts failed (#63045, @msau42)
- Fix in vSphere Cloud Provider to report disk is detach when VM is not found. (#62220, @abrarshivani)
- corrects a race condition in bootstrapping aggregated cluster roles in new HA clusters (#63761, @liggitt)
- Add MAX_PODS_PER_NODE env so that GCE/GKE user can use it to specify the default max pods per node for the cluster. IP_ALIAS_SIZE will be changed accordingly. Must have ip alias enabled. (#63451, @grayluck)
- Fix user visible files creation for windows (#62375, @feiskyer)
- Add ipset and udevadm to the hyperkube base image. (#61357, @rphillips)
- Fixes bugs that make apiserver panic when aggregating valid but not well formed OpenAPI spec (#63626, @roycaihw)
- Kubernetes version command line parameter in kubeadm has been updated to drop an unnecessary redirection from ci/latest.txt to ci-cross/latest.txt. Users should know exactly where the builds are stored on Google Cloud storage buckets from now on. For example for 1.9 and 1.10, users can specify ci/latest-1.9 and ci/latest-1.10 as the CI build jobs what build images correctly updates those. The CI jobs for master update the ci-cross/latest location, so if you are looking for latest master builds, then the correct parameter to use would be ci-cross/latest. (#63504, @dims)
- Fix issue where on re-registration of device plugin,
allocatable
was not getting updated. This issue makes devices invisible to the Kubelet if device plugin restarts. Only work-around, if this fix is not there, is to restart the kubelet and then start device plugin. (#63118, @vikaschoudhary16)
- GCE: Fix for internal load balancer management resulting in backend services with outdated instance group links. (#62887, @nicksardo)
- Bugfix allowing use of IP-aliases with custom-mode network in GCE setup scripts. (#62172, @shyamjvs)
v1.9.7
Documentation & Examples
Downloads for v1.9.7
filename |
sha256 hash |
kubernetes.tar.gz |
617b534fca9c5b2ced9c8eb3298a41fc55413aa876dcfec09bd15488e488db92 |
kubernetes-src.tar.gz |
1f10552d4282afe71ebbf046b8c5d0392453f0193fc511c59ee67e3c8f8ab0dd |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.6
Action Required
- ACTION REQUIRED: In-place node upgrades to this release from versions 1.7.14, 1.8.9, and 1.9.4 are not supported if using subpath volumes with PVCs. Such pods should be drained from the node first. (#61373, @msau42)
Other notable changes
- Update kube-dns to Version 1.14.10. Major changes: (#62676, @MrHohn)
- - Fix a bug in DNS resolution for externalName services
- and PTR records that need to query from upstream nameserver.
- fix the issue that default azure disk fsypte(ext4) does not work on Windows (#62250, @andyzhangx)
- Ensure expected load balancer is selected for Azure (#62450, @feiskyer)
- Fix error message regarding conversion of
v1.ListOptions
to samplecontroller.k8s.io/v1alpha1
. (#57243, @munnerz)
- Resolves forbidden error when the
daemon-set-controller
cluster role access controllerrevisions
resources. (#62146, @frodenas)
- fix nsenter GetFileType issue in containerized kubelet (#62467, @andyzhangx)
- fix incompatible file type checking on Windows (#62154, @dixudx)
- Fix kubelet PVC stale metrics (#59170, @cofyc)
- Fix panic create/update CRD when mutating/validating webhook configured. (#61404, @hzxuzhonghu)
- Introduced
--http2-max-streams-per-connection
command line flag on api-servers and set default to 1000 for aggregated API servers. (#60054, @MikeSpreitzer)
- Fix GCE etcd scripts to pass in all required parameters for the etcd migration utility to correctly perform HA upgrades and downgrades (#61956, @jpbetz)
- Update kube-dns to Version 1.14.9. Major changes: (#61908, @MrHohn)
- - Fix for kube-dns returns NXDOMAIN when not yet synced with apiserver.
- - Don't generate empty record for externalName service.
- - Add validation for upstreamNameserver port.
- - Update go version to 1.9.3.
- Backport Cloud CIDR allocator fixes to 1.9 (#61797, @satyasm)
- openstack cinder detach problem is fixed if nova is shutdowned (#56846, @zetaab)
- Fixed kube-proxy to work correctly with iptables 1.6.2 and later. (#61734, @danwinship)
- Ensure cloudprovider.InstanceNotFound is reported when the VM is not found on Azure (#61531, @feiskyer)
- On AWS kubelet returns an error when started under conditions that do not allow it to work (AWS has not yet tagged the instance). (#60125, @vainu-arto)
- Fix mounting of UNIX sockets(and other special files) in subpaths (#61480, @gnufied)
- Fixed missing error checking that could cause kubelet to crash in a race condition. (#60962, @technicianted)
- Bump Heapster to v1.5.2 (#61396, @kawych)
- Fixed a race condition in k8s.io/client-go/tools/cache.SharedInformer that could violate the sequential delivery guarantee and cause panics on shutdown. (#59828, @krousey)
- [fluentd-gcp addon] Update fluentd and event-exporter images to have the latest base image. (#61719, @crassirostris)
- Support new NODE_OS_DISTRIBUTION 'custom' on GCE (#61235, @yguo0905)
- Fixes a bug where character devices are not recognized by the kubelet (#60440, @andrewsykim)
- Fixes storage e2e test failures in GKE regional clusters. (#61303, @verult)
- fix the error prone account creation method of blob disk (#59739, @andyzhangx)
- The webhook admission controller in a custom apiserver now works off-the-shelf. (#60995, @caesarxuchao)
- fix azure file plugin failure issue on Windows after node restart (#60625, @andyzhangx)
- Fixes the races around devicemanager Allocate() and endpoint deletion. (#60856, @jiayingz)
v1.9.6
Documentation & Examples
Downloads for v1.9.6
filename |
sha256 hash |
kubernetes.tar.gz |
254f14a1c0a160c92c974ce471d86f549ca5ba25e22c42b0008a9d07291f931f |
kubernetes-src.tar.gz |
67b2cebdb264da1c2b2ef5f41d6252346d58d944a75f51ba890fe3077b4975ee |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.5
Other notable changes
v1.9.5
Documentation & Examples
Downloads for v1.9.5
filename |
sha256 hash |
kubernetes.tar.gz |
72947d7ac9a6f5bfe9f98b3362ce176cfc4d7c35caa1cf974ca2fd6dbc8ad608 |
kubernetes-src.tar.gz |
a02261fb0e1d70feb95af36d404ad247ee46103b84748a5fec8b906648f68e0f |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.4
Other notable changes
- gce: fixes race condition in ServiceController, where nodes weren't updated in the node sync loop, by updating TargetPools in the ensureExternalLoadBalancer call. (#58368, @MrHohn)
- fix race condition issue when detaching azure disk (#60183, @andyzhangx)
- Get parent dir via canonical absolute path when trying to judge mount-point (#58433, @yue9944882)
- Set node external IP for azure node when disabling UseInstanceMetadata (#60959, @feiskyer)
- Fixes potential deadlock when deleting CustomResourceDefinition for custom resources with finalizers (#60542, @liggitt)
- Unauthorized requests will not match audit policy rules where users or groups are set. (#59398, @CaoShuFeng)
- [fluentd-gcp addon] Fixed bug with reporting metrics in event-exporter (#60126, @serathius)
- Restores the ability of older clients to delete and scale jobs with initContainers (#59880, @liggitt)
- fixed foreground deletion of podtemplates (#60683, @nilebox)
- Bug fix: Clusters with GCE feature 'DiskAlphaAPI' enabled were unable to dynamically provision GCE PD volumes. (#59447, @verult)
- Fix a regression that prevented using
subPath
volume mounts with secret, configMap, projected, and downwardAPI volumes (#61080, @liggitt)
v1.9.4
Documentation & Examples
Downloads for v1.9.4
filename |
sha256 hash |
kubernetes.tar.gz |
45b6aa8adbf3cf9fe37ddf063400a984766363b31f4da6204c00d02815616ce4 |
kubernetes-src.tar.gz |
645819c4e479d80d4f489bb022e3332fcede8fcb8e4265245621547d0b5ac8a7 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.3
Other notable changes
- Fixes CVE-2017-1002101 - See https://issue.k8s.io/60813 for details (#61045, @liggitt)
- Fixes a case when Deployment with recreate strategy could get stuck on old failed Pod. (#60493, @tnozicka)
- Build using go1.9.3. (#59012, @ixdy)
- fix device name change issue for azure disk (#60346, @andyzhangx)
- Changes secret, configMap, downwardAPI and projected volumes to mount read-only, instead of allowing applications to write data and then reverting it automatically. Until version 1.11, setting the feature gate ReadOnlyAPIDataVolumes=false will preserve the old behavior. (#58720, @joelsmith)
- Add automatic etcd 3.2->3.1 and 3.1->3.0 minor version rollback support to gcr.io/google_container/etcd images. For HA clusters, all members must be stopped before performing a rollback. (#59298, @jpbetz)
- Fix the bug where kubelet in the standalone mode would wait for the update from the apiserver source. (#59276, @roboll)
- fix the create azure file pvc failure if there is no storage account in current resource group (#56557, @andyzhangx)
- Increase allowed lag for ssh key sync loop in tunneler to allow for one failure (#60068, @wojtek-t)
- Fixing a bug in OpenStack cloud provider, where dual stack deployments (IPv4 and IPv6) did not work well when using kubenet as the network plugin. (#59749, @zioproto)
- Bugfix: vSphere Cloud Provider (VCP) does not need any special service account anymore. (#59440, @rohitjogvmw)
- vSphere Cloud Provider supports VMs provisioned on vSphere v1.6.5 (#59519, @abrarshivani)
- Allow node IPAM controller to configure IPAMFromCluster mode to use IP aliases instead of routes in GCP. (#59688, @jingax10)
- Fixed an issue where Portworx volume driver wasn't passing namespace and annotations to the Portworx Create API. (#59607, @harsh-px)
- Use a more reliable way to get total physical memory on windows nodes (#57124, @JiangtianLi)
- Fix race causing apiserver crashes during etcd healthchecking (#60069, @wojtek-t)
- return error if New-SmbGlobalMapping failed when mounting azure file on Windows (#59540, @andyzhangx)
- Ensure Azure public IP removed after service deleted (#59340, @feiskyer)
- Map correct vmset name for Azure internal load balancers (#59747, @feiskyer)
- Node's providerID is following Azure resource ID format now when useInstanceMetadata is enabled (#59539, @feiskyer)
v1.9.3
Documentation & Examples
Downloads for v1.9.3
filename |
sha256 hash |
kubernetes.tar.gz |
b495325eacd1354514b20ef1f0b99c6a41277842fc93b6cf5c9cb6e8657c266f |
kubernetes-src.tar.gz |
f99a016dc616be37e7fe161ff435335a2442ebcede622486e7a9cf0bacedb625 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.2
Action Required
- Bug fix: webhooks now do not skip cluster-scoped resources (#58185, @caesarxuchao)
- Action required: Before upgrading your Kubernetes clusters, double check if you had configured webhooks for cluster-scoped objects (e.g., nodes, persistentVolume), these webhooks will start to take effect. Delete/modify the configs if that's not desirable.
Other notable changes
- CustomResourceDefinitions: OpenAPI v3 validation schemas containing
$ref
references are no longer permitted (valid references could not be constructed previously because property ids were not permitted either). Before upgrading, ensure CRD definitions do not include those $ref
fields. (#58438, @carlory)
- Ensure IP is set for Azure internal load balancer. (#59083, @feiskyer)
- Configurable etcd quota backend bytes in GCE (#59259, @wojtek-t)
- Updates Calico version to v2.6.7 (Fixed a bug where Felix would crash when parsing a NetworkPolicy with a named port. See https://github.com/projectcalico/calico/releases/tag/v2.6.7) (#59130, @caseydavenport)
- Cluster Autoscaler 1.1.1 (details: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.1) (#59272, @mwielgus)
- cloudprovider/openstack: fix bug the tries to use octavia client to query flip (#59075, @jrperritt)
- Fixed a bug which caused the apiserver reboot failure in the presence of malfunctioning webhooks. (#59073, @caesarxuchao)
- Configurable etcd compaction frequency in GCE (#59106, @wojtek-t)
- Prevent kubelet from getting wedged if initialization of modules returns an error. (#59020, @brendandburns)
- [GCE] Apiserver uses
InternalIP
as the most preferred kubelet address type by default. (#59019, @MrHohn)
- Expose Metrics Server metrics via /metric endpoint. (#57456, @kawych)
- Get windows kernel version directly from registry (#58498, @feiskyer)
- Fixes a bug where kubelet crashes trying to free memory under memory pressure (#58574, @yastij)
- Updated priority of mirror pod according to PriorityClassName. (#58485, @k82cn)
- Access to externally managed IP addresses via the kube-apiserver service proxy subresource is no longer allowed by default. This can be re-enabled via the
ServiceProxyAllowExternalIPs
feature gate, but will be disallowed completely in 1.11 (#57265, @brendandburns)
- Detach and clear bad disk URI (#58345, @rootfs)
- Add apiserver metric for number of requests dropped because of inflight limit. (#58340, @gmarek)
- Add apiserver metric for current inflight-request usage. (#58342, @gmarek)
- kube-apiserver is changed to use SSH tunnels for webhook iff the webhook is not directly routable from apiserver's network environment. (#58644, @yguo0905)
- Update Calico version to v2.6.6 (#58482, @tmjd)
- Fix garbage collection and resource quota when the controller-manager uses --leader-elect=false (#57340, @jmcmeek)
- kube-apiserver: fixes loading of
--admission-control-config-file
containing AdmissionConfiguration apiserver.k8s.io/v1alpha1 config object (#58441, @liggitt)
- Fix a bug affecting nested data volumes such as secret, configmap, etc. (#57422, @joelsmith)
- Reduce Metrics Server memory requirement (#58391, @kawych)
- GCP: allow a master to not include a metadata concealment firewall rule (if it's not running the metadata proxy). (#58104, @ihmccreery)
- Bump GCE metadata proxy to v0.1.9 to pick up security fixes. (#58221, @ihmccreery)
- Fixes an issue where the resourceVersion of an object in a DELETE watch event was not the resourceVersion of the delete itself, but of the last update to the object. This could disrupt the ability of clients clients to re-establish watches properly. (#58547, @liggitt)
- Fixed encryption key and encryption provider rotation (#58375, @liggitt)
- Correctly handle transient connection reset errors on GET requests from client library. (#58520, @porridge)
- Avoid controller-manager to crash when enabling IP alias for K8s cluster. (#58557, @jingax10)
v1.9.2
Documentation & Examples
Downloads for v1.9.2
filename |
sha256 hash |
kubernetes.tar.gz |
7a922d49b1194cb1b59b22cecb4eb1197f7c37250d4326410dc71aa5dc5ec8a2 |
kubernetes-src.tar.gz |
9f128809cdd442d71a13f7c61c7a0e03e832cf0c068a86184c1bcc9acdb78872 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.1
Other notable changes
- Fixes authentication problem faced during various vSphere operations. (#57978, @prashima)
- The getSubnetIDForLB() should return subnet id rather than net id. (#58208, @FengyunPan)
- Add cache for VM get operation in azure cloud provider (#57432, @karataliu)
- Update kube-dns to Version 1.14.8 that includes only small changes to how Prometheus metrics are collected. (#57918, @rramkumar1)
- Fixes a possible deadlock preventing quota from being recalculated (#58107, @ironcladlou)
- Fixes a bug in Heapster deployment for google sink. (#57902, @kawych)
- GCE: Allows existing internal load balancers to continue using an outdated subnetwork (#57861, @nicksardo)
- Update etcd version to 3.1.11 (#57811, @xiangpengzhao)
- fix device name change issue for azure disk: add remount logic (#57953, @andyzhangx)
- calico-node addon tolerates all NoExecute and NoSchedule taints by default. (#57122, @caseydavenport)
- Allow kubernetes components to react to SIGTERM signal and shutdown gracefully. (#57756, @mborsz)
- Fixes controller manager crash in certain vSphere cloud provider environment. (#57286, @rohitjogvmw)
- fix azure disk not available issue when device name changed (#57549, @andyzhangx)
- GCE: support passing kube-scheduler policy config via SCHEDULER_POLICY_CONFIG (#57425, @yguo0905)
v1.9.1
Documentation & Examples
Downloads for v1.9.1
filename |
sha256 hash |
kubernetes.tar.gz |
0eece0e6c1f68535ea71b58b87e239019bb57fdd61118f3d7defa6bbf4fad5ee |
kubernetes-src.tar.gz |
625ebb79412bd12feccf12e8b6a15d9c71ea681b571f34deaa59fe6c9ba55935 |
Client Binaries
Server Binaries
Node Binaries
Changelog since v1.9.0
Other notable changes
- Compare correct file names for volume detach operation (#57053, @prashima)
- Fixed a garbage collection race condition where objects with ownerRefs pointing to cluster-scoped objects could be deleted incorrectly. (#57211, @liggitt)
- Free up CPU and memory requested but unused by Metrics Server Pod Nanny. (#57252, @kawych)
- Configurable liveness probe initial delays for etcd and kube-apiserver in GCE (#57749, @wojtek-t)
- Fixed garbage collection hang (#57503, @liggitt)
- GCE: Fixes ILB creation on automatic networks with manually created subnetworks. (#57351, @nicksardo)
- Check for known manifests during preflight instead of only checking for non-empty manifests directory. (#57287, @mattkelly)
- enable flexvolume on Windows node (#56921, @andyzhangx)
- change default azure file/dir mode to 0755 (#56551, @andyzhangx)
- fix incorrect error info when creating an azure file PVC failed (#56550, @andyzhangx)
- Retry 'connection refused' errors when setting up clusters on GCE. (#57394, @mborsz)
- Fixes issue creating docker secrets with kubectl 1.9 for accessing docker private registries. (#57463, @dims)
- Fixes a bug where if an error was returned that was not an
autorest.DetailedError
we would return "not found", nil
which caused nodes to go to NotReady
state. (#57484, @brendandburns)
- Fix Heapster configuration and Metrics Server configuration to enable overriding default resource requirements. (#56965, @kawych)
v1.9.0
Documentation & Examples
Downloads for v1.9.0
filename |
sha256 hash |
kubernetes.tar.gz |
d8a52a97382a418b69d46a8b3946bd95c404e03a2d50489d16b36517c9dbc7f4 |
kubernetes-src.tar.gz |
95d35ad7d274e5ed207674983c3e8ec28d8190c17e635ee922e2af8349fb031b |
Client Binaries
Server Binaries
Node Binaries
1.9 Release Notes
WARNING: etcd backup strongly recommended
Before updating to 1.9, you are strongly recommended to back up your etcd data. Consult the installation procedure you are using (kargo, kops, kube-up, kube-aws, kubeadm etc) for specific advice.
Some upgrade methods might upgrade etcd from 3.0 to 3.1 automatically when you upgrade from Kubernetes 1.8, unless you specify otherwise. Because etcd does not support downgrading, you'll need to either remain on etcd 3.1 or restore from a backup if you want to downgrade back to Kubernetes 1.8.
Introduction to 1.9.0
Kubernetes version 1.9 includes new features and enhancements, as well as fixes to identified issues. The release notes contain a brief overview of the important changes introduced in this release. The content is organized by Special Interest Group (SIG).
For initial installations, see the Setup topics in the Kubernetes documentation.
To upgrade to this release from a previous version, first take any actions required Before Upgrading.
For more information about this release and for the latest documentation, see the Kubernetes documentation.
Major themes
Kubernetes is developed by community members whose work is organized into
Special Interest Groups, which provide the themes that guide their work. For the 1.9 release, these themes included:
API Machinery
Extensibility. SIG API Machinery added a new class of admission control webhooks (mutating), and brought the admission control webhooks to beta.
Apps
The core workloads API, which is composed of the DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds, has been promoted to GA stability in the apps/v1 group version. As such, the apps/v1beta2 group version is deprecated, and all new code should use the kinds in the apps/v1 group version.
Auth
SIG Auth focused on extension-related authorization improvements. Permissions can now be added to the built-in RBAC admin/edit/view roles using cluster role aggregation. Webhook authorizers can now deny requests and short-circuit checking subsequent authorizers. Performance and usability of the beta PodSecurityPolicy feature was also improved.
AWS
In v1.9 SIG AWS has improved stability of EBS support across the board. If a Volume is “stuck” in the attaching state to a node for too long a unschedulable taint will be applied to the node, so a Kubernetes admin can take manual steps to correct the error. Users are encouraged to ensure they are monitoring for the taint, and should consider automatically terminating instances in this state.
In addition, support for NVMe disks has been added to Kubernetes, and a service of type LoadBalancer can now be backed with an NLB instead of an ELB (alpha).
Azure
SIG Azure worked on improvements in the cloud provider, including significant work on the Azure Load Balancer implementation.
Cluster Lifecycle
SIG Cluster Lifecycle has been focusing on improving kubeadm in order to bring it to GA in a future release, as well as developing the Cluster API. For kubeadm, most new features, such as support for CoreDNS, IPv6 and Dynamic Kubelet Configuration, have gone in as alpha features. We expect to graduate these features to beta and beyond in the next release. The initial Cluster API spec and GCE sample implementation were developed from scratch during this cycle, and we look forward to stabilizing them into something production-grade during 2018.
Instrumentation
In v1.9 we focused on improving stability of the components owned by the SIG, including Heapster, Custom Metrics API adapters for Prometheus, and Stackdriver.
Network
In v1.9 SIG Network has implemented alpha support for IPv6, and alpha support for CoreDNS as a drop-in replacement for kube-dns. Additionally, SIG Network has begun the deprecation process for the extensions/v1beta1 NetworkPolicy API in favor of the networking.k8s.io/v1 equivalent.
Node
SIG Node iterated on the ability to support more workloads with better performance and improved reliability. Alpha features were improved around hardware accelerator support, device plugins enablement, and cpu pinning policies to enable us to graduate these features to beta in a future release. In addition, a number of reliability and performance enhancements were made across the node to help operators in production.
OpenStack
In this cycle, SIG OpenStack focused on configuration simplification through smarter defaults and the use of auto-detection wherever feasible (Block Storage API versions, Security Groups) as well as updating API support, including:
- Block Storage (Cinder) V3 is now supported.
- Load Balancer (Octavia) V2 is now supported, in addition to Neutron LBaaS V2.
- Neutron LBaas V1 support has been removed.
This work enables Kubernetes to take full advantage of the relevant services as exposed by OpenStack clouds. Refer to the Cloud Providers documentation for more information.
Storage
SIG Storage is responsible for storage and volume plugin components.
For the 1.9 release, SIG Storage made Kubernetes more pluggable and modular by introducing an alpha implementation of the Container Storage Interface (CSI). CSI will make installing new volume plugins as easy as deploying a pod, and enable third-party storage providers to develop their plugins without the need to add code to the core Kubernetes codebase.
The SIG also focused on adding functionality to the Kubernetes volume subsystem, such as alpha support for exposing volumes as block devices inside containers, extending the alpha volume-resizing support to more volume plugins, and topology-aware volume scheduling.
Windows
We are advancing support for Windows Server and Windows Server Containers to beta along with continued feature and functional advancements on both the Kubernetes and Windows platforms. This opens the door for many Windows-specific applications and workloads to run on Kubernetes, significantly expanding the implementation scenarios and the enterprise reach of Kubernetes.
Before Upgrading
Consider the following changes, limitations, and guidelines before you upgrade:
API Machinery
- The admission API, which is used when the API server calls admission control webhooks, is moved from
admission.v1alpha1
to admission.v1beta1
. You must delete any existing webhooks before you upgrade your cluster, and update them to use the latest API. This change is not backward compatible.
- The admission webhook configurations API, part of the admissionregistration API, is now at v1beta1. Delete any existing webhook configurations before you upgrade, and update your configuration files to use the latest API. For this and the previous change, see also the documentation.
- A new
ValidatingAdmissionWebhook
is added (replacing GenericAdmissionWebhook
) and is available in the generic API server. You must update your API server configuration file to pass the webhook to the --admission-control
flag. (#55988, @caesarxuchao) (#54513, @deads2k)
- The deprecated options
--portal-net
and --service-node-ports
for the API server are removed. (#52547, @xiangpengzhao)
Auth
- PodSecurityPolicy: A compatibility issue with the allowPrivilegeEscalation field that caused policies to start denying pods they previously allowed was fixed. If you defined PodSecurityPolicy objects using a 1.8.0 client or server and set allowPrivilegeEscalation to false, these objects must be reapplied after you upgrade. (#53443, @liggitt)
- KMS: Alpha integration with GCP KMS was removed in favor of a future out-of-process extension point. Discontinue use of the GCP KMS integration and ensure data has been decrypted (or reencrypted with a different provider) before upgrading (#54759, @sakshamsharma)
CLI
- Swagger 1.2 validation is removed for kubectl. The options
--use-openapi
and --schema-cache-dir
are also removed because they are no longer needed. (#53232, @apelisse)
Cluster Lifecycle
- You must either specify the
--discovery-token-ca-cert-hash
flag to kubeadm join
, or opt out of the CA pinning feature using --discovery-token-unsafe-skip-ca-verification
.
- The default
auto-detect
behavior of the kubelet's --cloud-provider
flag is removed.
- You can manually set
--cloud-provider=auto-detect
, but be aware that this behavior will be removed completely in a future version.
- Best practice for version 1.9 and future versions is to explicitly set a cloud-provider. See the documentation
- The kubeadm
--skip-preflight-checks
flag is now deprecated and will be removed in a future release.
- If you are using the cloud provider API to determine the external host address of the apiserver, set
--external-hostname
explicitly instead. The cloud provider detection has been deprecated and will be removed in the future (#54516, @dims)
Multicluster
- Development of Kubernetes Federation has moved to github.com/kubernetes/federation. This move out of tree also means that Federation will begin releasing separately from Kubernetes. Impact:
- Federation-specific behavior will no longer be included in kubectl
- kubefed will no longer be released as part of Kubernetes
- The Federation servers will no longer be included in the hyperkube binary and image. (#53816, @marun)
Node
- The kubelet
--network-plugin-dir
flag is removed. This flag was deprecated in version 1.7, and is replaced with --cni-bin-dir
. (#53564, @supereagle)
- kubelet's
--cloud-provider
flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. (#53573, @dims)
Network
- NetworkPolicy objects are now stored in etcd in v1 format. After you upgrade to version 1.9, make sure that all NetworkPolicy objects are migrated to v1. (#51955, @danwinship)
- The API group/version for the kube-proxy configuration has changed from
componentconfig/v1alpha1
to kubeproxy.config.k8s.io/v1alpha1
. If you are using a config file for kube-proxy instead of the command line flags, you must change its apiVersion to kubeproxy.config.k8s.io/v1alpha1
. (#53645, @xiangpengzhao)
- The "ServiceNodeExclusion" feature gate must now be enabled for the
alpha.service-controller.kubernetes.io/exclude-balancer
annotation on nodes to be honored. (#54644, @brendandburns)
Scheduling
- Taint key
unreachable
is now in GA.
- Taint key
notReady
is changed to not-ready
, and is also now in GA.
- These changes are automatically updated for taints. Tolerations for these taints must be updated manually. Specifically, you must:
- Change
node.alpha.kubernetes.io/notReady
to node.kubernetes.io/not-ready
- Change
node.alpha.kubernetes.io/unreachable
to node.kubernetes.io/unreachable
- The
node.kubernetes.io/memory-pressure
taint now respects the configured whitelist. To use it, you must add it to the whitelist.(#55251, @deads2k)
- Refactor kube-scheduler configuration (#52428)
- The kube-scheduler command now supports a --config flag which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. (#52562, @ironcladlou)
- Opaque integer resources (OIR), which were (deprecated in v1.8.), have been removed. (#55103, @ConnorDoyle)
Storage
- [alpha] The LocalPersistentVolumes alpha feature now also requires the VolumeScheduling alpha feature. This is a breaking change, and the following changes are required:
- The VolumeScheduling feature gate must also be enabled on kube-scheduler and kube-controller-manager components.
- The NoVolumeNodeConflict predicate has been removed. For non-default schedulers, update your scheduler policy.
- The CheckVolumeBinding predicate must be enabled in non-default schedulers. (#55039, @msau42)
OpenStack
- Remove the LbaasV1 of OpenStack cloud provider, currently only support LbaasV2. (#52717, @FengyunPan)
Known Issues
This section contains a list of known issues reported in Kubernetes 1.9 release. The content is populated from the [v1.9.x known issues and FAQ accumulator] #57159.
If you are adding Windows Server Virtual Machines as nodes to your Kubernetes environment, there is a compatibility issue with certain virtualization products. Specifically the Windows version of the kubelet.exe calls GetPhysicallyInstalledSystemMemory
to get the physical memory installed on Windows machines and reports it as part of node metrics to heapster. This API call fails for VMware and VirtualBox virtualization environments. This issue is not present in bare metal Windows deployments, in Hyper-V, or on some of the popular public cloud providers.
If you run kubectl get po
while the API server in unreachable, a misleading error is returned: the server doesn't have a resource type "po"
. To work around this issue, specify the full resource name in the command instead of the abbreviation: kubectl get pods
. This issue will be fixed in a future release.
For more information, see #57198.
- Mutating and validating webhook configurations are continuously polled by the API server (once per second). This issue will be fixed in a future release.
For more information, see #56357.
- Audit logging is slow because writes to the log are performed synchronously with requests to the log. This issue will be fixed in a future release.
For more information, see #53006.
- Custom Resource Definitions (CRDs) are not properly deleted under certain conditions. This issue will be fixed in a future release.
For more information, see #56348.
- API server times out after performing a rolling update of the etcd cluster. This issue will be fixed in a future release.
For more information, see #47131
- If a namespaced resource is owned by a cluster scoped resource, and the namespaced dependent is processed before the cluster scoped owner has ever been observed by the garbage collector, the dependent will be erroneously deleted.
For more information, see #54940
Deprecations
This section provides an overview of deprecated API versions, options, flags, and arguments. Deprecated means that we intend to remove the capability from a future release. After removal, the capability will no longer work. The sections are organized by SIGs.
API Machinery
- The kube-apiserver
--etcd-quorum-read
flag is deprecated and the ability to switch off quorum read will be removed in a future release. (#53795, @xiangpengzhao)
- The
/ui
redirect in kube-apiserver is deprecated and will be removed in Kubernetes 1.10. (#53046, @maciaszczykm)
etcd2
as a backend is deprecated and support will be removed in Kubernetes 1.13 or 1.14.
Auth
- Default controller-manager options for
--cluster-signing-cert-file
and --cluster-signing-key-file
are deprecated and will be removed in a future release. (#54495, @mikedanese)
- RBAC objects are now stored in etcd in v1 format. After upgrading to 1.9, ensure all RBAC objects (Roles, RoleBindings, ClusterRoles, ClusterRoleBindings) are at v1. v1alpha1 support is deprecated and will be removed in a future release. (#52950, @liggitt)
Cluster Lifecycle
- kube-apiserver:
--ssh-user
and --ssh-keyfile
are now deprecated and will be removed in a future release. Users of SSH tunnel functionality in Google Container Engine for the Master -> Cluster communication should plan alternate methods for bridging master and node networks. (#54433, @dims)
- The kubeadm
--skip-preflight-checks
flag is now deprecated and will be removed in a future release.
- If you are using the cloud provider API to determine the external host address of the apiserver, set
--external-hostname
explicitly instead. The cloud provider detection has been deprecated and will be removed in the future (#54516, @dims)
Network
- The NetworkPolicy extensions/v1beta1 API is now deprecated and will be removed in a future release. This functionality has been migrated to a dedicated v1 API - networking.k8s.io/v1. v1beta1 Network Policies can be upgraded to the v1 API with the cluster/update-storage-objects.sh script. Documentation can be found here. (#56425, @cmluciano)
Storage
- The
volume.beta.kubernetes.io/storage-class
annotation is deprecated. It will be removed in a future release. For the StorageClass API object, use v1, and in place of the annotation use v1.PersistentVolumeClaim.Spec.StorageClassName
and v1.PersistentVolume.Spec.StorageClassName
instead. (#53580, @xiangpengzhao)
Scheduling
- The kube-scheduler command now supports a
--config
flag, which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. (#52562, @ironcladlou)
Node
- The kubelet's
--enable-custom-metrics
flag is now deprecated. (#54154, @mtaufen)
Notable Changes
Workloads API (apps/v1)
As announced with the release of version 1.8, the Kubernetes Workloads API is at v1 in version 1.9. This API consists of the DaemonSet, Deployment, ReplicaSet and StatefulSet kinds.
API Machinery
Admission Control
- Admission webhooks are now in beta, and include the following:
- Mutation support for admission webhooks. (#54892, @caesarxuchao)
- Webhook admission now takes a config file that describes how to authenticate to webhook servers (#54414, @deads2k)
- The dynamic admission webhook now supports a URL in addition to a service reference, to accommodate out-of-cluster webhooks. (#54889, @lavalamp)
- Added
namespaceSelector
to externalAdmissionWebhook
configuration to allow applying webhooks only to objects in the namespaces that have matching labels. (#54727, @caesarxuchao)
- Metrics are added for monitoring admission plugins, including the new dynamic (webhook-based) ones. (#55183, @jpbetz)
- The PodSecurityPolicy annotation kubernetes.io/psp on pods is set only once on create. (#55486, @sttts)
API & API server
- Fixed a bug related to discovery information for scale subresources in the apps API group (#54683, @liggitt)
- Fixed a bug that prevented client-go metrics from being registered in Prometheus. This bug affected multiple components. (#53434, @crassirostris)
Audit
- Fixed a bug so that
kube-apiserver
now waits for open connections to finish before exiting. This fix provides graceful shutdown and ensures that the audit backend no longer drops events on shutdown. (#53695, @hzxuzhonghu)
- Webhooks now always retry sending if a connection reset error is returned. (#53947, @crassirostris)
Custom Resources
- Validation of resources defined by a Custom Resource Definition (CRD) is now in beta (#54647, @colemickens)
- An example CRD controller has been added, at github.com/kubernetes/sample-controller. (#52753, @munnerz)
- Custom resources served by CustomResourceDefinition objects now support field selectors for
metadata.name
and metadata.namespace
. Also fixed an issue with watching a single object; earlier versions could watch only a collection, and so a watch on an instance would fail. (#53345, @ncdc)
Other
kube-apiserver
now runs with the default value for service-cluster-ip-range
(#52870, @jennybuckley)
- Add
--etcd-compaction-interval
to apiserver for controlling request of compaction to etcd3 from apiserver. (#51765, @mitake)
- The httpstream/spdy calls now support CIDR notation for NO_PROXY (#54413, @kad)
- Code generation for CRD and User API server types is improved with the addition of two new scripts to k8s.io/code-generator:
generate-groups.sh
and generate-internal-groups.sh
. (#52186, @sttts)
- [beta] Flag
--chunk-size={SIZE}
is added to kubectl get
to customize the number of results returned in large lists of resources. This reduces the perceived latency of managing large clusters because the server returns the first set of results to the client much more quickly. Pass 0 to disable this feature.(#53768, @smarterclayton)
- [beta] API chunking via the limit and continue request parameters is promoted to beta in this release. Client libraries using the Informer or ListWatch types will automatically opt in to chunking. (#52949, @smarterclayton)
- The
--etcd-quorum-read
flag now defaults to true to ensure correct operation with HA etcd clusters. This flag is deprecated and the flag will be removed in future versions, as well as the ability to turn off this functionality. (#53717, @liggitt)
- Add events.k8s.io api group with v1beta1 API containing redesigned event type. (#49112, @gmarek)
- Fixed a bug where API discovery failures were crashing the kube controller manager via the garbage collector. (#55259, @ironcladlou)
conversion-gen
is now usable in a context without a vendored k8s.io/kubernetes. The Kubernetes core API is removed from default extra-peer-dirs
. (#54394, @sttts)
- Fixed a bug where the
client-gen
tag for code-generator required a newline between a comment block and a statement. tag shortcomings when newline is omitted (#53893) (#55233, @sttts)
- The Apiserver proxy now rewrites the URL when a service returns an absolute path with the request's host. (#52556, @roycaihw)
- The gRPC library is updated to pick up data race fix (#53124) (#53128, @dixudx)
- Fixed server name verification of aggregated API servers and webhook admission endpoints (#56415, @liggitt)
Apps
- The
kubernetes.io/created-by
annotation is no longer added to controller-created objects. Use the metadata.ownerReferences
item with controller set to true
to determine which controller, if any, owns an object. (#54445, @crimsonfaith91)
- StatefulSet controller now creates a label for each Pod in a StatefulSet. The label is
statefulset.kubernetes.io/pod-name
, where pod-name
= the name of the Pod. This allows users to create a Service per Pod to expose a connection to individual Pods. (#55329, @kow3ns)
- DaemonSet status includes a new field named
conditions
, making it consistent with other workloads controllers. (#55272, @janetkuo)
- StatefulSet status now supports conditions, making it consistent with other core controllers in v1 (#55268, @foxish)
- The default garbage collection policy for Deployment, DaemonSet, StatefulSet, and ReplicaSet has changed from OrphanDependents to DeleteDependents when the deletion is requested through an
apps/v1
endpoint. (#55148, @dixudx)
- Clients using older endpoints will be unaffected. This change is only at the REST API level and is independent of the default behavior of particular clients (e.g. this does not affect the default for the kubectl
--cascade
flag).
- If you upgrade your client-go libs and use the
AppsV1()
interface, please note that the default garbage collection behavior is changed.
Auth
Audit
- RequestReceivedTimestamp and StageTimestamp are added to audit events (#52981, @CaoShuFeng)
- Advanced audit policy now supports a policy wide omitStage (#54634, @CaoShuFeng)
RBAC
- New permissions have been added to default RBAC roles (#52654, @liggitt):
- The default admin and edit roles now include read/write permissions
- The view role includes read permissions on poddisruptionbudget.policy resources.
- RBAC rules can now match the same subresource on any resource using the form
*/(subresource)
. For example, */scale
matches requests to replicationcontroller/scale
. (#53722, @deads2k)
- The RBAC bootstrapping policy now allows authenticated users to create selfsubjectrulesreviews. (#56095, @ericchiang)
- RBAC ClusterRoles can now select other roles to aggregate. (#54005, @deads2k)
- Fixed an issue with RBAC reconciliation that caused duplicated subjects in some bootstrapped RoleBinding objects on each restart of the API server. (#53239, @enj)
Other
- Pod Security Policy can now manage access to specific FlexVolume drivers (#53179, @wanghaoran1988)
- Audit policy files without apiVersion and kind are treated as invalid. (#54267, @ericchiang)
- Fixed a bug that where forbidden errors were encountered when accessing ReplicaSet and DaemonSets objects via the apps API group. (#54309, @liggitt)
- Improved PodSecurityPolicy admission latency. (#55643, @tallclair)
- kube-apiserver:
--oidc-username-prefix
and --oidc-group-prefix
flags are now correctly enabled. (#56175, @ericchiang)
- If multiple PodSecurityPolicy objects allow a submitted pod, priority is given to policies that do not require default values for any fields in the pod spec. If default values are required, the first policy ordered by name that allows the pod is used. (#52849, @liggitt)
- A new controller automatically cleans up Certificate Signing Requests that are Approved and Issued, or Denied. (#51840, @jcbsmpsn)
- PodSecurityPolicies have been added for all in-tree cluster addons (#55509, @tallclair)
GCE
- Added support for PodSecurityPolicy on GCE:
ENABLE_POD_SECURITY_POLICY=true
enables the admission controller, and installs policies for default addons. (#52367, @tallclair)
Autoscaling
- HorizontalPodAutoscaler objects now properly functions on scalable resources in any API group. Fixed by adding a polymorphic scale client. (#53743, @DirectXMan12)
- Fixed a set of minor issues with Cluster Autoscaler 1.0.1 (#54298, @mwielgus)
- HPA tolerance is now configurable by setting the
horizontal-pod-autoscaler-tolerance
flag. (#52275, @mattjmcnaughton)
- Fixed a bug that allowed the horizontal pod autoscaler to allocate more
desiredReplica
objects than maxReplica
objects in certain instances. (#53690, @mattjmcnaughton)
AWS
- Nodes can now use instance types (such as C5) that use NVMe. (#56607, @justinsb)
- Nodes are now unreachable if volumes are stuck in the attaching state. Implemented by applying a taint to the node. (#55558, @gnufied)
- Volumes are now checked for available state before attempting to attach or delete a volume in EBS. (#55008, @gnufied)
- Fixed a bug where error log messages were breaking into two lines. (#49826, @dixudx)
- Fixed a bug so that volumes are now detached from stopped nodes. (#55893, @gnufied)
- You can now override the health check parameters for AWS ELBs by specifying annotations on the corresponding service. The new annotations are:
healthy-threshold
, unhealthy-threshold
, timeout
, interval
. The prefix for all annotations is service.beta.kubernetes.io/aws-load-balancer-healthcheck-
. (#56024, @dimpavloff)
- Fixed a bug so that AWS ECR credentials are now supported in the China region. (#50108, @zzq889)
- Added Amazon NLB support (#53400, @micahhausler)
- Additional annotations are now properly set or updated for AWS load balancers (#55731, @georgebuckerfield)
- AWS SDK is updated to version 1.12.7 (#53561, @justinsb)
Azure
- Fixed several issues with properly provisioning Azure disk storage (#55927, @andyzhangx)
- A new service annotation
service.beta.kubernetes.io/azure-dns-label-name
now sets the Azure DNS label for a public IP address. (#47849, @tomerf)
- Support for GetMountRefs function added; warning messages no longer displayed. (#54670, #52401, @andyzhangx)
- Fixed an issue where an Azure PersistentVolume object would crash because the value of
volumeSource.ReadOnly
was set to nil. (#54607, @andyzhangx)
- Fixed an issue with Azure disk mount failures on CoreOS and some other distros (#54334, @andyzhangx)
- GRS, RAGRS storage account types are now supported for Azure disks. (#55931, @andyzhangx)
- Azure NSG rules are now restricted so that external access is allowed only to the load balancer IP. (#54177, @itowlson)
- Azure NSG rules can be consolidated to reduce the likelihood of hitting Azure resource limits (available only in regions where the Augmented Security Groups preview is available). (#55740, @itowlson)
- The Azure SDK is upgraded to v11.1.1. (#54971, @itowlson)
- You can now create Windows mount paths (#51240, @andyzhangx)
- Fixed a controller manager crash issue on a manually created k8s cluster. (#53694, @andyzhangx)
- Azure-based clusters now support unlimited mount points. (#54668) (#53629, @andyzhangx)
- Load balancer reconciliation now considers NSG rules based not only on Name, but also on Protocol, SourcePortRange, DestinationPortRange, SourceAddressPrefix, DestinationAddressPrefix, Access, and Direction. This change makes it possible to update NSG rules under more conditions. (#55752, @kevinkim9264)
- Custom mountOptions for the azurefile StorageClass object are now respected. Specifically,
dir_mode
and file_mode
can now be customized. (#54674, @andyzhangx)
- Azure Load Balancer Auto Mode: Services can be annotated to allow auto selection of available load balancers and to provide specific availability sets that host the load balancers (for example,
service.beta.kubernetes.io/azure-load-balancer-mode=auto|as1,as2...
)
CLI
Kubectl