Author | Good wine, ink seal, Yu Mu, Zhong source interest “Alibaba Cloud native” No public replies keyword “data”, you can get 2019 annual meetup events PPT collection and K8s most complete knowledge map.
etcd released version 3.4
etcd released version 3.4, is one of the biggest performance boost recently released, I believe you have been a long-awaited! This upgrade brings a lot of stability and performance optimization, such as the underlying storage optimization, optimization, and other aspects of the client.
“Alibaba cloud native ‘number will bring the public a more detailed interpretation of the analysis next week.
Ali joint Google jointly developed, raft learner new features
Used zookeeper who must have heard observer, etcd in new raft learner similar to the observer, it does not participate raft vote. By introducing this new role, reducing the extra pressure on the old cluster when adding new nodes, increasing the stability of the cluster. In addition it may also be used as a hot standby cluster number of a read request or service. This new feature is Ali Baba engineers and Google engineers to research and development, the future will bring us a more detailed interpretation of the analysis, so stay tuned.
Better realization of the underlying storage
The etcd storage upgrade for large-scale clusters focused optimization, is divided into two areas:
lease storage optimization, by optimizing the implementation and the underlying storage lease algorithm updates, queries, etc. expired lease operation time complexity is reduced. And a new lease checkpoint mechanism ensures accurate lease ttl etcd cluster after switching leader.
Optimized raft vote for leader mechanism
key / value storage layer, the bottom layer by optimization for the whole read transaction concurrency, etcd greatly enhance read and write performance. By Kuberentes 5000 node performance tests, indicating that large-scale pressure reading, P99 write latency reduced 97.4%;
etcd raft with a predetermined and selected primary mechanism of replication log. The old main mechanisms exist risks in the course of the election, when the network partition or adding a new node will be unstable, causing the entire cluster instability. The new pre-vote mechanism to solve this problem, to enhance the stability of the cluster.
The new client load balancing
Can tolerate network partitioning and design services layer on etcd partial failure, but before the mechanism relies on the old grpc, the update fails based on the new version of gprc re-optimize the client load balancing, the real load balancing and failover resolved before problem.
Alibaba has this update has been tested with good results. This update is closed into Kubernetets master, it is expected to be released in Kubernetes 1.16x version.
Kubebuilder v2.0 official release
The corresponding controller-runtime v0.2.0 version, the new version of the documentation: https: //book.kubebuilder.io. Old and new versions with the following differences:
Adjusting the generated code framework, more flat directory structure;
controller-runtime support patch provided DelegatingClient Interface (Tucao a lot of time v1.x), webhook no longer supports auto-generated cert certificate, the official is recommended that you deploy with the use of cert-manager;
Reduced to writing custom resource defaults and validation of the method.
5 years, the first chapter Kubernetes project history report released
https://www.cncf.io/cncf-kubernetes-project-journey/ from a variety of chart provided in the report, you can intuitively feel Kubernetes changes in the past five years today, and the current Kubernetes cloud native areas from 2014 to the and the enormous influence around the world.
Significant progress upstream
1.KEP: The scheduler of priorities, predicates function set as deprecated
https://github.com/kubernetes/enhancements/pull/1230 because all extension points scheduling framework have been achieved, and will become beta version 1.17, the current scheduler in the hope of priorities, predicates function is set to begin deprecated, and replaced them scheduling framework plug-ins.
2.KEP: exec command allows the -u parameter to specify the username
https://github.com/kubernetes/enhancements/pull/1224 KEP according to the author’s statement, exec easy for users to specify the username into the container debug. But the problem is, CRI standard interface is not supported in this user exec parameters, only Docker, Kata, gVisior achieve these most container runtime version support. But the community hopes to push a unified interface, try to smooth out differences in the different versions of realization, so this can be accepted KEP had to make a question mark.
3.PR:HPA new in scaling constraints
https://github.com/kubernetes/kubernetes/pull/82256 PR for this restriction is added to the HPA scale down / up of. Changes in the new API level is a structure in HorizontalPodAutoscalerSpec Constraints, HPAScaleConstraints defined ScaleUp and ScaleDown restrictions, supports three kinds of limitation in HPAScaleConstraintRateValue in: the number of Pods, Percent percentage, PeriodSeconds cycle.
Kube-apiserver to increase the aggregated apiserver discovery interface times; https: //github.com/kubernetes/kubernetes/pull/82204
Klog solve problems that led to CoreDNS crash; https://github.com/kubernetes/kubernetes/pull/82128
kube-apiserver call webhook upgraded to http / 1.1. https://github.com/kubernetes/kubernetes/pull/82090
Open source projects recommended
A lightweight web-based, scalable platform to help developers understand the complex Kubernetes cluster. This web platform primarily as a tool for developers to show deploy and run an application in Kubernetes cluster, such as resource currently supports the display, for debug port forwarding, log stream, multi-cluster management.
A command-line tool to help deploy resources in a large scale user management.
kapp tool Key features include resource diffing, label marking, deployment, and delete management. Helm and the difference is, kapp main concern is the deployment process, rather than packaged or YAML templates, workflows while supporting GitOps to some extent.
This week Recommended Reading
1. 《How does “kubectl exec” works?》
Through the network and requests source analysis, parsing kubectl exec a request from the client through how kube-apiserver and kubelet, to eventually establish a command channel within the container.
2. 《Kubernetes Evolution》
Interviews with staff from the 22’s, “What do you think the future and the best opportunities K8s is?”
3. 《Kubernetes Concerns》
Interviews with staff from the 22’s, “What do you worry about the place of the currently used K8s of?”
4. 《How Kubernetes works》
From the perspective of white, and introduce the cluster structure Kubernetes, and some of the basic concepts of resources and master / worker of all kinds of basic components, suitable for beginning or had any contact with K8s students to read.