Replies: 4 comments 3 replies
-
What about circuit breaking support? |
Beta Was this translation helpful? Give feedback.
-
I also would like to mention adding support for using external CA for mTLS (with auto-rotation support). We use Linkerd almost exclusively for mTLS, and this would really help us in the future. I believe @dwj300 started this discussion and wants this feature in the roadmap as well. |
Beta Was this translation helpful? Give feedback.
-
It's great to see total mesh in the roadmap. Since our main interservice communication is done via amqp, linkerd's benefits have been very limited and it has given us more trouble than the benefits. Look forward to stable 2.9.0 and keep up the good work :) |
Beta Was this translation helpful? Give feedback.
-
Please can you also address how to handle authorization using open policy agent both in app and service level, something like https://istio.io/latest/blog/2021/better-external-authz/ and https://www.openpolicyagent.org/docs/latest/envoy-authorization/. What is the best way to go? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi folks,
While we regularly discuss Linkerd's upcoming Roadmap at our monthly community meeting, we have not done a great job of publishing the roadmap to GitHub. We're generally light on project management, so we don't have a particularly groomed set of milestones and projects (yet, though they will show up as planning progresses). Instead, let me start a discussion about what we're planning to work on over the next few releases.
stable-2.8.0
: Multi-ClusterWe're in the final stages of preparing Linkerd stable-2.8.0 for release. This release focuses on introducing multi-cluster features to Linkerd, so you have tools to federate identity-aware service discovery between clusters. The docs were just merged today, and @grampelberg has been writing a series of blog posts about the design we've chosen. @zaharidichev did a massive amount of work on this, so be sure to give him a (socially-distant) 🙌 if you see him.
We've also been hard at work applying feedback from the 2.7 releases. We've fixed a number of dreaded
HTTP 502
scenarios:edge-20.4.1
and promoted instable-2.7.1
added contention, and latency, especially at high concurrency levels, which could cause 502s. We've fixed it.iptables
&nf_conntrack
(Increase nf_conntrack_tcp_timeout_close_wait #4276). Expect some new debugging guides on the website soon!502
responses (Server Side Streaming gRPC Proper Status Code Not Making it to Client #4262). Connection failures will instead manifest as responses with agrpc-status
ofUNAVAILABLE
, like common gRPC clients handle these failures.Our heartfelt thanks goes to everyone who took the time to open issues with helpful repro steps or to help test fixes. Good bug reports are an invaluable contribution to the community, making production better for us all. Thanks especially to @byblakeorriver, @ericsuhong, @naseemkullah & @praseodym for their recent contributions!
Today's
edge-20.5.2
is effectively our first Release Candidate forstable-2.8.0
. Try it out, and keep the feedback coming!stable-2.9.0
: Total Mesh mTLSAs most of you know, Linkerd's current mTLS implementation is limited to meshed HTTP traffic (including HTTP/2 & gRPC). This limitation is in place because Linkerd's TCP proxy has been a simple pass-thru, usually to kube-proxy. In this release we are going to implement TCP load balancing in Linkerd's proxy, which will allow us to bypass kube-proxy entirely so that we can establish mTLS between all meshed pods for all meshed traffic.
Before that, though, it's time for us to upgrade the proxy's networking stack so that we can take advantage of new features in Rust (
async/await
) and updated dependency versions. @hawkw is leading our migration to Tokio 0.2, and we're nearly to the point of being able to test the upgraded version of the proxy. We're taking a close look at performance--especially latency overhead--as we do this migration. As it completes, we'll also start investigating supporting a multi-core runtime to support massively-concurrent use cases for people with the CPU to spend. But our goal is to continue adding absolutely minimal overhead for use cases that don't require it.stable-2.10.0
: Mandatory TLS by DefaultWith multi-cluster and total mTLS stable, we'll finally be ready to tackle authorization policies. There are many, many, many ways to approach this. Rather than trying to tackle some Big Conceptual problem, we're trying to target a very specific use case: Linkerd requires that all non-TLS traffic is documented.
Linkerd will already ensure that all meshed traffic is private between endpoints; but we can also validate that all ingress/egress traffic is TLS'd (even when the proxy doesn't terminate the TLS). The only thing we really can't do is ensure that Kubernetes' liveness & readiness probes are private... So we need to build a mechanism to discover these policies at inject-time so that the proxy can start up safely, rejecting all traffic that is insecure.
Once this is done, we can pursue supporting finer-grained access control.
And more
This roadmap isn't meant to cover everything we're going to work on.
Off the top of my head, we're going to continue to invest in making Linkerd's Prometheus data excellent to use and easier ot manage. @Pothulapati is working on a proposal to allow you to configure an alternate Prometheus instance, preventing the need to have a Prometheus instance in the Linkerd control plane. And @adleong and I have been working to update the metrics we export to Prometheus so that operators have flexibility to drop high-cardinality metrics, and so that the metrics are generally easier to approach without understanding the proxy's internals.
@alpeb and @kleimkuhler continue to invest in our integration test infrastructure so that we can reliably reproduce reported issues and ensure they don't recur. We have two Summer of Code students working on supporting ARM environments (with conformance tests!).
It's an active community, so expect new contributions to fill this out with all sorts of other improvements that help make production better.
Starting a discussion
But, this is a discussion, so we're open to feedback about all of this. Are we missing things that will make your life easier? (Sorry in advance: Linkerd can't cut your hair). Are there any features you'd like to get involved with?
Sound off in the comments below!
Beta Was this translation helpful? Give feedback.
All reactions