
Linkerd
Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
- 10
- Projects
- 2
- Years active
- 3
- In 2023 T1
Projects
102023
3 projectsTerm 1 · Mar-May · 3 projects
Add dynamic profiling to Linkerd Rust controllers
LFX Mentorship · Listed in the official cohort
The Linkerd control plane includes controllers that are written in Rust. Enable users to dynamically profile the running application can aid significantly in debugging and diagnostics.
- Rust
- Kubernetes
Linkerd Dashboard Improvements
LFX Mentorship · Listed in the official cohort
Improve the Linkerd web dashboard with improved topology visualization, support for Linkerd conformance to the Gateway API project, and improved multi-cluster support.
- React/JavaScript
- Kubernetes
Prototype multi-cluster service discovery and operations
LFX Mentorship · Listed in the official cohort
When deploying a multi-cluster resource one has to perform certain contortions such as providing a list of other clusters to each cluster. This places a dependency ordering on spinning up new clusters and a requirement for application operators to coordinate with cluster operators.
- Go
- Rust
- Kubernetes
2020
7 projectsTerm 0 · 2020 Q2 · 7 projects
Egress Metrics
CommunityBridge · Proposed, acceptance not recorded
Linkerd provides rich metrics for traffic inside the mesh. As most external services utilize HTTPS, it is unable to provide metrics today. This project intends to provide visibility into the traffic that is leaving clusters and surface metrics for that traffic.
- Go
- Kubernetes
Granular RBAC for Metrics
CommunityBridge · Proposed, acceptance not recorded
Kubernetes is a multitenant system, many users can interact without seeing what others are working with. Today, Linkerd runs a single control plane per cluster. This results in the metrics collected being stored in a single backend (Prometheus). In some high security environments, this means that the users of the cluster are unable to get the benefit of Linkerd's rich metrics. This project will introduce Kubernetes based, granular RBAC so that cluster operators can control what end users are able to view.
- Go
- Kubernetes
- Prometheus
JWT Authentication
CommunityBridge · Proposed, acceptance not recorded
Linkerd implements service-service authentication today via. mTLS. This does not yet extend to user based authentication. This project will implement JWT authentication to provide applications using the service mesh a method for implementing authorization on a per-user basis.
- Go
- Kubernetes
- rust
- Tokio
Kafka Proxy Codec
CommunityBridge · Proposed, acceptance not recorded
HTTP based traffic is only one type of modern applications. Many use message queues such as Kafka. Getting the metrics for consumers/producers/messages are just as critical to application health as requests and responses in HTTP. This project will implement a Kafka codec that allows the Linkerd proxy to introspect Kafka's protocol and provide metrics for the communications between consumers and producers. This should show up as a CLI command, dashboard and visualization of the topology between message consumers and HTTP actors.
- Go
- Kubernetes
- rust
- Tokio
- Kafka
Network Diagnostics
CommunityBridge · Proposed, acceptance not recorded
It can be challenging to diagnose why things aren't working in a remote cluster. Is there a connectivity issue? What happens when a specific request is sent to a service? How do I work with the data that comes back? Linkerd should make this kind of interaction with a cluster's traffic easy and seamless. This project introduces a new command to the CLI: exec. This will wire up the networking locally for a user where local binaries (such as curl or ping) can interact with a Kubernetes cluster natively. It will use local binaries and produce local output to allow users to use their local tools and files to diagnose what's going on with their cluster.
- Go
- Kubernetes
PCAP-NG Export
CommunityBridge · Proposed, acceptance not recorded
It is difficult to debug what is happening to the network traffic for workloads on Kubernetes. Linkerd provides tap and stat to provide some glimpses into what's happening. Many times, this is enough. Unfortunately, when low level problems and protocol issues crop up, the existing tools are not enough. This causes users to inject the debug container and tcpdump traffic on a pod by pod basis. This project will add PCAP-NG as an export format for tap. This can then be dumped locally or forwarded to Wireshark for analysis and debugging.
- Go
- Kubernetes
- rust
- Tokio
Service Topologies
CommunityBridge · Listed in the official cohort
It is valuable to have metadata related to the topology of a cluster when making load balancing decisions. This metadata can be used to control egress costs between regions or even make advanced routing decisions in multicluster situations. As part of Kubernetes 1.17, service topology landed. This provides extra metadata as part of endpoints for a service to control weighting. Imagine transparently failing over to nodes running in a different zone if the pods locally are no longer running. Linkerd should implement support for this functionality.
- Go
- Kubernetes
- rust
- Tokio