Kubernetes v1.12
documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see
latest version.
kube-proxy restores the *filter table when running in ipvs mode. (#68786, @alexjx)
New kubeDNS image fixes an issue where SRV records were incorrectly being compressed. Added manifest file for multiple arch images. (#68430, @prameshj)
Upgrade kubeadm’s version of docker support (#68495, @yuansisi)
fix a bug that overwhelming number of prometheus metrics are generated because $NAMESPACE is not replaced by string “{namespace}” (#68530, @wenjiaswe)
The feature gates ReadOnlyAPIDataVolumes and ServiceProxyAllowExternalIPs, deprecated since 1.10, have been removed and any references must be removed from command-line invocations. (#67951, @liggitt)
Verify invalid secret/configmap/projected volumes before calling setup (#68691, @gnufied)
Fix bug that caused kubectl commands to sometimes fail to refresh access token when running against GKE clusters. (#66314, @jlowdermilk)
Use KubeDNS by default in GCE setups, as CoreDNS has significantly higher memory usage in large clusters. (#68629, @shyamjvs)
Fix PodAntiAffinity issues in case of multiple affinityTerms. (#68173, @Huang-Wei)
Make APIGroup field in TypedLocalObjectReference optional. (#68419, @xing-yang)
Fix potential panic when getting azure load balancer status (#68609, @feiskyer)
Fix kubelet panics when RuntimeClass is enabled. (#68521, @yujuhong)
Action required: The –storage-versions flag of kube-apiserver is deprecated. Please omit this flag to ensure the default storage versions are used. Otherwise the cluster is not safe to upgrade to a version newer than 1.12. This flag will be removed in 1.13. (#68080, @caesarxuchao)
Other notable changes
kubeadm: add mandatory “–config” flag to “kubeadm alpha phase preflight” (#68446, @neolit123)
Apply user configurations for local etcd (#68334, @SataQiu)
If TaintNodesByCondition is enabled, add node.kubernetes.io/unschedulable and (#64954, @k82cn)
node.kubernetes.io/network-unavailable automatically to DaemonSet pods.
Deprecate cloudstack and ovirt controllers (#68199, @dims)
add missing LastTransitionTime of ContainerReady condition (#64867, @dixudx)
kube-controller-manager: use informer cache instead of active pod gets in HPA controller (#68241, @krzysztof-jastrzebski)
Support NodeShutdown taint for azure (#68033, @yastij)
Registers volume topology information reported by a node-level Container Storage Interface (CSI) driver. This enables Kubernetes support of CSI topology mechanisms. (#67684, @verult)
Update default etcd server to 3.2.24 for kubernetes 1.12 (#68318, @timothysc)
External CAs can now be used for kubeadm with only a certificate, as long as all required certificates already exist. (#68296, @liztio)
Update etcd client to 3.2.24 for latest release (#68147, @timothysc)
[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.
Fixes issue where pod scheduling may fail when using local PVs and pod affinity and anti-affinity without the default StatefulSet OrderedReady pod management policy (#67556, @msau42)
Kubelet only applies default hard evictions of nodefs.inodesFree on Linux (#67709, @feiskyer)
Add kubelet stats for windows system container “pods” (#66427, @feiskyer)
Add a TTL machenism to clean up Jobs after they finish. (#66840, @janetkuo)
Move volume dynamic provisioning scheduling to beta (ACTION REQUIRED: The DynamicProvisioningScheduling alpha feature gate has been removed. The VolumeScheduling beta feature gate is still required for this feature) (#67432, @lichuqiang)
Other notable changes
Not split nodes when searching for nodes but doing it all at once. (#67555, @wgliang)
Deprecate kubectl run generators, except for run-pod/v1 (#68132, @soltysh)
Using the Horizontal Pod Autoscaler with metrics from Heapster is now deprecated. (#68089, @DirectXMan12)
Support both directory and block device for local volume plugin FileSystem VolumeMode (#63011, @NickrenREN)
Add CSI volume attributes for kubectl describe pv. (#65074, @wgliang)
kubectl rollout status now works for unlimited timeouts. (#67817, @tnozicka)
Fix panic when processing Azure HTTP response. (#68210, @feiskyer)
add mixed protocol support for azure load balancer (#67986, @andyzhangx)
Replace scale down forbidden window with scale down stabilization window. Rather than waiting a fixed period of time between scale downs HPA now scales down to the highest recommendation it during the scale down stabilization window. (#68122, @krzysztof-jastrzebski)
Adding validation to kube-scheduler at the API level (#66799, @noqcks)
Improve performance of Pod affinity/anti-affinity in the scheduler (#67788, @ahmad-diaa)
kubeadm: fix air-gapped support and also allow some kubeadm commands to work without an available networking interface (#67397, @neolit123)
Increase Horizontal Pod Autoscaler default update interval (30s -> 15s). It will improve HPA reaction time for metric changes. (#68021, @krzysztof-jastrzebski)
Increase scrape frequency of metrics-server to 30s (#68127, @serathius)
Add new --server-dry-run flag to kubectl apply so that the request will be sent to the server with the dry-run flag (alpha), which means that changes won’t be persisted. (#68069, @apelisse)
kubelet v1beta1 external ComponentConfig types are now available in the k8s.io/kubelet repo (#67263, @luxas)
Adds a kubelet parameter and config option to change CFS quota period from the default 100ms to some other value between 1µs and 1s. This was done to improve response latencies for workloads running in clusters with guaranteed and burstable QoS classes. (#63437, @szuecs)
Enable secure serving on port 10258 to cloud-controller-manager (configurable via --secure-port). Delegated authentication and authorization have to be configured like for aggregated API servers. (#67069, @sttts)
Support extra --prune-whitelist resources in kube-addon-manager. (#67743, @Random-Liu)
Upon receiving a LIST request with expired continue token, the apiserver now returns a continue token together with the 410 “the from parameter is too old ” error. If the client does not care about getting a list from a consistent snapshot, the client can use this token to continue listing from the next key, but the returned chunk will be from the latest snapshot. (#67284, @caesarxuchao)
Role, ClusterRole and their bindings for cloud-provider is put under system namespace. Their addonmanager mode switches to EnsureExists. (#67224, @grayluck)
Mount propagation has promoted to GA. The MountPropagation feature gate is deprecated and will be removed in 1.13. (#67255, @bertinatto)
Introduce CSI Cluster Registration mechanism to ease CSI plugin discovery and allow CSI drivers to customize Kubernetes’ interaction with them. (#67803, @saad-ali)
Adds the commands kubeadm alpha phases renew <cert-name> (#67910, @liztio)
ProcMount added to SecurityContext and AllowedProcMounts added to PodSecurityPolicy to allow paths in the container’s /proc to not be masked. (#64283, @jessfraz)
Enable secure serving on port 10257 to kube-controller-manager (configurable via --secure-port). Delegated authentication and authorization have to be configured like for aggregated API servers. (#64149, @sttts)
TokenRequest and TokenRequestProjection are now beta features. To enable these feature, the API server needs to be started with the following flags: (#67349, @mikedanese)
* –service-account-issuer
* –service-account-signing-key-file
* –service-account-api-audiences
Don’t let aggregated apiservers fail to launch if the external-apiserver-authentication configmap is not found in the cluster. (#67836, @sttts)
Promote AdvancedAuditing to GA, replacing the previous (legacy) audit logging mechanisms. (#65862, @loburm)
Azure cloud provider now supports unmanaged nodes (such as on-prem) that are labeled with kubernetes.azure.com/managed=false and alpha.service-controller.kubernetes.io/exclude-balancer=true (#67984, @feiskyer)
kubectl get apiservice now shows the target service and whether the service is available (#67747, @smarterclayton)
Openstack supports now node shutdown taint. Taint is added when instance is shutdown in openstack. (#67982, @zetaab)
Return apiserver panics as 500 errors instead terminating the apiserver process. (#68001, @sttts)
- Change chain name to IP-MASQ to be compatible with the
pre-injected masquerade rules.
AllowedTopologies field inside StorageClass is now validated against set and map semantics. Specifically, there cannot be duplicate TopologySelectorTerms, MatchLabelExpressions keys, and TopologySelectorLabelRequirement Values. (#66843, @verult)
Introduces autoscaling/v2beta2 and custom_metrics/v1beta2, which implement metric selectors for Object and Pods metrics, as well as allowing AverageValue targets on Objects, similar to External metrics. (#64097, @damemi)
The cloudstack cloud provider now reports a Hostname address type for nodes based on the local-hostname metadata key. (#67719, @liggitt)
kubeadm: –cri-socket now defaults to tcp://localhost:2375 when running on Windows (#67447, @benmoss)
kubeadm: The kubeadm configuration now support definition of more than one control plane instances with their own APIEndpoint. The APIEndpoint for the “bootstrap” control plane instance should be defined using InitConfiguration.APIEndpoint, while the APIEndpoints for additional control plane instances should be added using JoinConfiguration.APIEndpoint. (#67832, @fabriziopandini)
kubelet: Users can now enable the alpha NodeLease feature gate to have the Kubelet create and periodically renew a Lease in the kube-node-lease namespace. The lease duration defaults to 40s, and can be configured via the kubelet.config.k8s.io/v1beta1.KubeletConfiguration’s NodeLeaseDurationSeconds field. (#66257, @mtaufen)
latent controller caches no longer cause repeating deletion messages for deleted pods (#67826, @deads2k)
API paging is now enabled for custom resource definitions, custom resources and APIService objects (#67861, @liggitt)
kubeadm: ControlPlaneEndpoint was moved from the API config struct to ClusterConfiguration (#67830, @fabriziopandini)
kubeadm - feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated and can’t be used anymore for new clusters. Update of cluster using above feature-gates flag is not supported (#67786, @fabriziopandini)
Replace scale up forbidden window with disregarding CPU samples collected when pod was initializing. (#67252, @jbartosik)
Moving KubeSchedulerConfiguration from ComponentConfig API types to staging repos (#66916, @dixudx)
Improved error message when checking the rollout status of StatefulSet with OnDelete strategy type (#66983, @mortent)
RuntimeClass is a new API resource for defining different classes of runtimes that may be used to run containers in the cluster. Pods can select a RunitmeClass to use via the RuntimeClassName field. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. (#67737, @tallclair)
Remove rescheduler since scheduling DS pods by default scheduler is moving to beta. (#67687, @Lion-Wei)
Speed up kubelet start time by executing an immediate runtime and node status update when the Kubelet sees that it has a CIDR. (#67031, @krzysztof-jastrzebski)
The OpenStack cloud provider now reports a Hostname address type for nodes (#67748, @FengyunPan2)
The aws cloud provider now reports a Hostname address type for nodes based on the local-hostname metadata key. (#67715, @liggitt)
Azure cloud provider now supports cross resource group nodes that are labeled with kubernetes.azure.com/resource-group=<rg-name> and alpha.service-controller.kubernetes.io/exclude-balancer=true (#67604, @feiskyer)
Reduce API calls for Azure instance metadata. (#67478, @feiskyer)
kubectl create secret tls can now read certificate and key files from process substitution arguments (#67713, @liggitt)
To address the possibility dry-run requests overwhelming admission webhooks that rely on side effects and a reconciliation mechanism, a new field is being added to admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration and admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration so that webhooks can explicitly register as having dry-run support. If a dry-run request is made on a resource that triggers a non dry-run supporting webhook, the request will be completely rejected, with “400: Bad Request”. Additionally, a new field is being added to the admission.k8s.io/v1beta1.AdmissionReview API object, exposing to webhooks whether or not the request being reviewed is a dry-run. (#66936, @jennybuckley)
cpumanager: rollback state if updateContainerCPUSet failed (#67430, @choury)
[CRI] Adds a “runtime_handler” field to RunPodSandboxRequest, for selecting the runtime configuration to run the sandbox with (alpha feature). (#67518, @tallclair)
fixes json logging in fluentd-elasticsearch image by downgrading fluent-plugin-kubernetes_metadata_filter plugin to version 2.0.0 (#67544, @monotek)
add –dns-loop-detect option to dnsmasq run by kube-dns (#67302, @dixudx)
Switched certificate data replacement from “REDACTED” to “DATA+OMITTED” (#66023, @ibrasho)
improve performance of anti-affinity predicate of default scheduler. (#66948, @mohamed-mehany)
Fixed a bug that was blocking extensible error handling when serializing API responses error out. Previously, serialization failures always resulted in the status code of the original response being returned. Now, the following behavior occurs: (#67041, @tristanburgess)
- If the serialization type is application/vnd.kubernetes.protobuf, and protobuf marshaling is not implemented for the requested API resource type, a ‘406 Not Acceptable is returned’.
- If the serialization type is ‘application/json’:
- If serialization fails, and the original status code was an failure (e.g. 4xx or 5xx), the original status code will be returned.
- If serialization fails, and the original status code was not a failure (e.g. 2xx), the status code of the serialization failure will be returned. By default, this is ‘500 Internal Server Error’, because JSON serialization is our default, and not supposed to be implemented on a type-by-type basis.
Add a feature to the scheduler to score fewer than all nodes in every scheduling cycle. This can improve performance of the scheduler in large clusters. (#66733, @bsalamat)
kube-controller-manager can now start the quota controller when discovery results can only be partially determined. (#67433, @deads2k)
The plugin mechanism functionality now closely follows the git plugin design (#66876, @juanvallejo)
GCE: decrease cpu requests on master node, to allow more components to fit on one core machine. (#67504, @loburm)
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)
add more storage account sku support for azure disk (#67528, @andyzhangx)
updates es-image to elasticsearch 6.3.2 (#67484, @monotek)
updates fluentd in fluentd-elasticsearch to version 1.2.4 (#67434, @monotek)
* also updates activesupport, fluent-plugin-elasticsearch & oj gems
The dockershim now sets the “bandwidth” and “ipRanges” CNI capabilities (dynamic parameters). Plugin authors and administrators can now take advantage of this by updating their CNI configuration file. For more information, see the CNI docs (#64445, @squeed)
Expose /debug/flags/v to allow kubelet dynamically set glog logging level. If want to change glog level to 3, you only have to send a PUT request like curl -X PUT http://127.0.0.1:8080/debug/flags/v -d "3". (#64601, @hzxuzhonghu)
Fix an issue that pods using hostNetwork keep increasing. (#67456, @Huang-Wei)
DaemonSet controller is now using backoff algorithm to avoid hot loops fighting with kubelet on pod recreation when a particular DaemonSet is misconfigured. (#65309, @tnozicka)
Add node affinity for Azure unzoned managed disks (#67229, @feiskyer)
Remove unused binary and container image for kube-aggregator. The functionality is already integrated into the kube-apiserver. (#67157, @dims)
Avoid creating new controller revisions for statefulsets when cache is stale (#67039, @mortent)
Revert #63905: Setup dns servers and search domains for Windows Pods. DNS for Windows containers will be set by CNI plugins. (#66587, @feiskyer)
attachdetach controller attaches volumes immediately when Pod’s PVCs are bound (#66863, @cofyc)
The check for unsupported plugins during volume resize has been moved from the admission controller to the two controllers that handle volume resize. (#66780, @kangarlou)
Fix kubelet to not leak goroutines/intofiy watchers on an inactive connection if it’s closed (#67285, @yujuhong)
fix azure disk create failure due to sdk upgrade (#67236, @andyzhangx)
Dynamic provisions that create iSCSI PVs can ensure that multipath is used by specifying 2 or more target portals in the PV, which will cause kubelet to wait up to 10 seconds for the multipath device. PVs with just one portal continue to work as before, with kubelet not waiting for the multipath device and just using the first disk it finds. (#67140, @bswartz)
kubectl: recreating resources for immutable fields when force is applied (#66602, @dixudx)
Remove deprecated –interactive flag from kubectl logs. (#65420, @jsoref)
The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. (#66507, @verb)
kubectl create {clusterrole,role}’s --resources flag supports asterisk to specify all resources. (#62945, @nak3)
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.
DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. (#67121, @feiskyer)
kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. (#66932, @nilebox)
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)
audit.k8s.io api group is upgraded from v1beta1 to v1. (#65891, @CaoShuFeng)
Deprecated element metav1.ObjectMeta and Timestamp are removed from audit Events in v1 version.
Default value of option –audit-webhook-version and –audit-log-version will be changed from audit.k8s.io/v1beta1 to audit.k8s.io/v1 in release 1.13
scope AWS LoadBalancer security group ICMP rules to spec.loadBalancerSourceRanges (#63572, @haz-mat)
Add NoSchedule/NoExecute tolerations to ip-masq-agent, ensuring it to be scheduled in all nodes except master. (#66260, @tanshanshan)
The flag --skip-preflight-checks of kubeadm has been removed. Please use --ignore-preflight-errors instead. (#62727, @xiangpengzhao)
The watch API endpoints prefixed with /watch are deprecated and will be removed in a future release. These standard method for watching resources (supported since v1.0) is to use the list API endpoints with a ?watch=true parameter. All client-go clients have used the parameter method since v1.6.0. (#65147, @liggitt)
kube-apiserver: setting a dryRun query parameter on a CONNECT request will now cause the request to be rejected, consistent with behavior of other mutating API requests. Examples of CONNECT APIs are the nodes/proxy, services/proxy, pods/proxy, pods/exec, and pods/attach subresources. Note that this prevents sending a dryRun parameter to backends via {nodes,services,pods}/proxy subresources. (#66083, @jennybuckley)
In clusters where the DryRun feature is enabled, dry-run requests will go through the normal admission chain. Because of this, ImagePolicyWebhook authors should especially make sure that their webhooks do not rely on side effects. (#66391, @jennybuckley)
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)
[action required] The NodeConfiguration kind in the kubeadm v1alpha2 API has been renamed JoinConfiguration in v1alpha3 (#65951, @luxas)
ACTION REQUIRED: Removes defaulting of CSI file system type to ext4. All the production drivers listed under https://kubernetes-csi.github.io/docs/Drivers.html were inspected and should not be impacted after this change. If you are using a driver not in that list, please test the drivers on an updated test cluster first. ``` (#65499, @krunaljain)
[action required] The MasterConfiguration kind in the kubeadm v1alpha2 API has been renamed InitConfiguration in v1alpha3 (#65945, @luxas)
[action required] The formerly publicly-available cAdvisor web UI that the kubelet started using --cadvisor-port is now entirely removed in 1.12. The recommended way to run cAdvisor if you still need it, is via a DaemonSet. (#65707, @dims)
Default value for expendable pod priority cutoff in GCP deployment of Cluster Autoscaler changed from 0 to -10.
action required: users deploying workloads with priority lower than 0 may want to use priority lower than -10 to avoid triggering scale-up.
[action required] kubeadm: The v1alpha1 config API has been removed. (#65628, @luxas)
Please convert your v1alpha1 configuration files to v1alpha2 using the
kubeadm config migrate command of kubeadm v1.11.x
kube-apiserver: the Priority admission plugin is now enabled by default when using --enable-admission-plugins. If using --admission-control to fully specify the set of admission plugins, the Priority admission plugin should be added if using the PodPriority feature, which is enabled by default in 1.11. (#65739, @liggitt)
The system-node-critical and system-cluster-critical priority classes are now limited to the kube-system namespace by the PodPriority admission plugin. (#65593, @bsalamat)
kubernetes-worker juju charm: Added support for setting the –enable-ssl-chain-completion option on the ingress proxy. “action required”: if your installation relies on supplying incomplete certificate chains and using OCSP to fill them in, you must set “ingress-ssl-chain-completion” to “true” in your juju configuration. (#63845, @paulgear)
Other notable changes
admin RBAC role now aggregates edit and view. edit RBAC role now aggregates view. (#66684, @deads2k)
Speed up HPA reaction to metric changes by removing scale up forbidden window. (#66615, @jbartosik)
Scale up forbidden window was protecting HPA against making decision to scale up based on metrics gathered during pod initialisation (which may be invalid, for example pod may be using a lot of CPU despite not doing any “actual” work).
To avoid that negative effect only use per pod metrics from pods that are:
- ready (so metrics about them should be valid), or
- unready but creation and last readiness change timestamps are apart more than 10s (pods that have formerly been ready and so metrics are in at least some cases (pod becoming unready because of overload) very useful).
The kubectl patch command no longer exits with exit code 1 when a redundant patch results in a no-op (#66725, @juanvallejo)
Improved the output of kubectl get events to prioritize showing the message, and move some fields to -o wide. (#66643, @smarterclayton)
Added CPU Manager state validation in case of changed CPU topology. (#66718, @ipuustin)
Fix Stackdriver integration based on node annotation container.googleapis.com/instance_id. (#66676, @kawych)
Fix kubelet startup failure when using ExecPlugin in kubeconfig (#66395, @awly)
When attaching iSCSI volumes, kubelet now scans only the specific (#63176, @bswartz)
LUNs being attached, and also deletes them after detaching. This avoids
dangling references to LUNs that no longer exist, which used to be the
cause of random I/O errors/timeouts in kernel logs, slowdowns during
block-device related operations, and very rare cases of data corruption.
kubeadm: Pull sidecar and dnsmasq-nanny images when using kube-dns (#66499, @rosti)
Extender preemption should respect IsInterested() (#66291, @resouer)
Properly autopopulate OpenAPI version field without needing other OpenAPI fields present in generic API server code. (#66411, @DirectXMan12)
renamed command line option –cri-socket-path of the kubeadm subcommand “kubeadm config images pull” to –cri-socket to be consistent with the rest of kubeadm subcommands. (#66382, @bart0sh)
The –docker-disable-shared-pid kubelet flag has been removed. PID namespace sharing can instead be enable per-pod using the ShareProcessNamespace option. (#66506, @verb)
Bump event-exporter to 0.2.2 to pick up security fixes. (#66157, @loburm)
Allow ScaleIO volumes to be provisioned without having to first manually create /dev/disk/by-id path on each kubernetes node (if not already present) (#66174, @ddebroy)
Fix for resourcepool-path configuration in the vsphere.conf file. (#66261, @divyenpatel)
OpenAPI spec and documentation reflect 202 Accepted response path for delete request (#63418, @roycaihw)
fixes a validation error that could prevent updates to StatefulSet objects containing non-normalized resource requests (#66165, @liggitt)
Fix validation for HealthzBindAddress in kube-proxy when –healthz-port is set to 0 (#66138, @wsong)
kubeadm: use an HTTP request timeout when fetching the latest version of Kubernetes from dl.k8s.io (#65676, @dkoshkin)
Support configuring the Azure load balancer idle connection timeout for services (#66045, @cpuguy83)
kubectl config set-context can now set attributes of the current context, like the current namespace, by passing --current instead of a specific context name (#66140, @liggitt)
The alpha Initializers admission plugin is no longer enabled by default. This matches the off-by-default behavior of the alpha API which drives initializer behavior. (#66039, @liggitt)
kubeadm: Default component configs are printable via kubeadm config print-default (#66074, @rosti)
prevents infinite CLI wait on delete when item is recreated (#66136, @deads2k)
Preserve vmUUID when renewing nodeinfo in vSphere cloud provider (#66007, @w-leads)
Expose docker registry config for addons used in Juju deployments (#66092, @kwmonroe)
kubelets that specify --cloud-provider now only report addresses in Node status as determined by the cloud provider (#65594, @liggitt)
* kubelet serving certificate rotation now reacts to changes in reported node addresses, and will request certificates for addresses set by an external cloud provider
Fix the bug where image garbage collection is disabled by mistake. (#66051, @jiaxuanzhou)
fixes an issue with multi-line annotations injected via downward API files getting scrambled (#65992, @liggitt)
kubeadm: run kube-proxy on non-master tainted nodes (#65931, @neolit123)
“kubectl delete” no longer waits for dependent objects to be deleted when removing parent resources (#65908, @juanvallejo)
Introduce a new flag --keepalive for kubectl proxy to allow setting keep-alive period for long-running request. (#63793, @hzxuzhonghu)
If Openstack LoadBalancer is not defined in cloud config, the loadbalancer is not initialized any more in openstack. All setups must have some setting under that section (#65781, @zetaab)
Re-adds pkg/generated/bindata.go to the repository to allow some parts of k8s.io/kubernetes to be go-vendorable. (#65985, @ixdy)
Fix a bug that preempting a pod may block forever. (#65987, @Random-Liu)
Fix flexvolume in containarized kubelets (#65549, @gnufied)
Add volume mode filed to constructed volume spec for CSI plugin (#65456, @wenlxie)
Fix an issue with dropped audit logs, when truncating and batch backends enabled at the same time. (#65823, @loburm)
LimitRange and Endpoints resources can be created via an update API call if the object does not already exist. When this occurs, an authorization check is now made to ensure the user making the API call is authorized to create the object. In previous releases, only an update authorization check was performed. (#65150, @jennybuckley)
Fix ‘kubectl cp’ with no arguments causes a panic (#65482, @wgliang)
bazel deb package bugfix: The kubeadm deb package now reloads the kubelet after installation (#65554, @rdodev)
api-machinery utility functions SetTransportDefaults and DialerFor once again respect custom Dial functions set on transports (#65547, @liggitt)
Improve the display of jobs in kubectl get and kubectl describe to emphasize progress and duration. (#65463, @smarterclayton)
kubectl convert previous created a list inside of a list. Now it is only wrapped once. (#65489, @deads2k)
fix azure disk creation issue when specifying external resource group (#65516, @andyzhangx)
fixes a regression in kube-scheduler to properly load client connection information from a --config file that references a kubeconfig file (#65507, @liggitt)
Using kubectl describe on CRDs that use underscores will be prettier. (#65391, @smarterclayton)
Improve scheduler’s performance by eliminating sorting of nodes by their score. (#65396, @bsalamat)
Add more conditions to the list of predicate failures that won’t be resolved by preemption. (#64995, @bsalamat)
Allow access to ClusterIP from the host network namespace when kube-proxy is started in IPVS mode without either masqueradeAll or clusterCIDR flags (#65388, @lbernail)
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
Change Azure ARM Rate limiting error message. (#65292, @wgliang)
AWS now checks for validity of ecryption key when creating encrypted volumes. Dynamic provisioning of encrypted volume may get slower due to these checks. (#65223, @jsafrane)
Report accurate status for kubernetes-master and -worker charms. (#65187, @kwmonroe)
Fixed issue 63608, which is that under rare circumstances the ResourceQuota admission controller could lose track of an request in progress and time out after waiting 10 seconds for a decision to be made. (#64598, @MikeSpreitzer)
In the vSphere cloud provider the Global.vm-uuid configuration option is not deprecated anymore, it can be used to overwrite the VMUUID on the controller-manager (#65152, @alvaroaleman)
fluentd-gcp grace termination period increased to 60s. (#65084, @x13n)
Pass cluster_location argument to Heapster (#65176, @kawych)
Fix a scalability issue where high rates of event writes degraded etcd performance. (#64539, @ccding)
Corrected a mistake in the documentation for wait.PollImmediate(…) (#65026, @spew)
Fixes missing nodes lines when kubectl top nodes (#64389, @yue9944882)
keep pod state consistent when scheduler cache UpdatePod (#64692, @adohe)
add external resource group support for azure disk (#64427, @andyzhangx)
Increase the gRPC max message size to 16MB in the remote container runtime. (#64672, @mcluseau)
The new default value for the –allow-privileged parameter of the Kubernetes-worker charm has been set to true based on changes which went into the Kubernetes 1.10 release. Before this change the default value was set to false. If you’re installing Canonical Kubernetes you should expect this value to now be true by default and you should now look to use PSP (pod security policies). (#64104, @CalvinHartwell)
The –remove-extra-subjects and –remove-extra-permissions flags have been enabled for kubectl auth reconcile (#64541, @mrogers950)
Fix kubectl drain –timeout option when eviction is used. (#64378, @wrdls)
This PR will leverage subtests on the existing table tests for the scheduler units. (#63659, @xchapter7x)
Some refactoring of error/status messages and functions to align with new approach.
Feedback
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes,
ask it on Stack Overflow. Open
an issue in the GitHub repo if you want to report a problem or
suggest an improvement.