stable-2.1.0
Announcing Linkerd 2.1 🎈
This stable release introduces several major improvements, including per-route
metrics, service profiles, and a vastly improved dashboard UI. It also adds
several significant experimental features, including proxy auto-injection,
single namespace installs, and a high-availability mode for the control plane.
For more details, see the announcement blog post:
https://blog.linkerd.io/2018/12/06/announcing-linkerd-2-1/
To install this release, run: curl https://run.linkerd.io/install | sh
Upgrade notes: The control plane components have been renamed in this
release to reduce possible naming collisions. Please make sure to read the
upgrade instructions if you are upgrading from the stable-2.0.0 release.
Special thanks to: @alenkacz, @alpeb, @benjdlambert, @fahrradflucht,
@ffd2subroutine, @hypnoglow, @ihcsim, @lucab, and @rochacon.
Full release notes:
- CLI
linkerd routescommand displays per-route stats for any resource- Service profiles are now supported for external authorities
linkerd profile --open-apiflag generates a service profile
based on an OpenAPI specification (swagger) filelinkerd routescommand displays per-route stats for services with
service profiles- Add
--haflag tolinkerd installcommand, for HA
deployment of the control plane - Update stat command to accept multiple stat targets
- Fix authority stat filtering when the
--fromflag is present - Various improvements to check command, including:
- Emit warnings instead of errors when not running the latest version
- Add retries if control plane health check fails initially
- Run all pre-install RBAC checks, instead of stopping at first failure
- Fixed an issue with the
--registryinstall flag not accepting
hosts with ports - Added an
--outputstat flag, for printing stats as JSON - Updated the
toptable to set column widths dynamically - Added a
--single-namespaceinstall flag for installing
the control plane with Role permissions instead of ClusterRole permissions - Added a
--proxy-auto-injectflag to theinstallcommand,
allowing for auto-injection of sidecar containers - Added
--proxy-cpuand--proxy-memoryflags to theinstall
andinjectcommands, giving the ability to configure CPU + Memory requests - Added a
--contextflag to specify the context to use to talk
to the Kubernetes apiserver - The namespace in which Linkerd is installed is configurable via the
LINKERD_NAMESPACEenv var, in addition to the--linkerd-namespaceflag - The wait time for the
checkanddashboardcommands is
configurable via the--waitflag - The
topcommand now aggregates by HTTP method as well
- Controller
- Rename snake case fields to camel case in service profile spec
- Controller components are now prefixed with
linkerd-to
prevent name collisions with existing resources linkerd install --disable-h2-upgradeflag has been added to
control automatic HTTP/2 upgrading- Fix auto injection issue on Kubernetes
v1.9.11that would
merge, rather than append, the proxy container into the application - Fixed a few issues with auto injection via the proxy-injector webhook:
- Injected pods now execute the linkerd-init container last, to avoid
rerouting requests during pod init - Original pod labels and annotations are preserved when auto-injecting
- Injected pods now execute the linkerd-init container last, to avoid
- CLI health check now uses unified endpoint for data plane checks
- Include Licence files in all Docker images
- Proxy
- The proxy's
tapsubsystem has been reimplemented to be more
efficient and and reliable- The proxy now supports route metadata in tap queries and events
- A potential HTTP/2 window starvation bug has been fixed
- Prometheus counters now wrap properly for values greater than 2^53
- Add controller client metrics, scoped under
control_ - Canonicalize outbound names via DNS for inbound profiles
- Fix routing issue when a pod makes a request to itself
- Only include
classificationlabel onresponse_totalmetric - Remove panic when failing to get remote address
- Better logging in TCP connect error messages
- The proxy's
- Web UI
- Top routes page, served at
/routes - Route metrics are now available in the resource detail pages for
services with configured profiles - Service profiles can be created and downloaded from the Web UI
- Top Routes page, served at
/routes - Fixed a smattering of small UI issues
- Added a new Grafana dashboard for authorities
- Revamped look and feel of the Linkerd dashboard by switching
component libraries from antd to material-ui - Added a Help section in the sidebar containing useful links
- Tap and Top pages
- Added clear button to query form
- Resource Detail pages
- Limit number of resources shown in the graph
- Resource Detail page
- Better rendering of the dependency graph at the top of the page
- Unmeshed sources are now populated in the Inbound traffic table
- Sources and destinations are aligned in the popover
- Tap and Top pages
- Additional validation and polish for the form controls
- The top table clears older results when a new top call is started
- The top table now aggregates by HTTP method as well
- Top routes page, served at