build(deps): bump google-github-actions/setup-gcloud from 2.1.4 to 2.1.5 (#779)
Bumps google-github-actions/setup-gcloud from 2.1.4 to 2.1.5.
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud dependency-version: 2.1.5 dependency-type: direct:production update-type: version-update:semver-patch …
Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
linkerd-failover
Linkerd-failover is a Linkerd extension whose goal is to provide a failover mechanism so that a service that exists in multiple clusters may continue to operate as long as the service is available in any cluster.
The mechanism relies on Linkerd’s traffic-splitting functionality by providing an operator to alter the backend services’ weights in real time depending on their readiness.
Note: if you find issues in this extension, please file an issue against the main Linkerd2 repo.
Table of contents
Issue Tracking
Issues are disabled in this repository since we track issues with this extension in the main Linkerd2 repo. The rationale here is simply that we’ve found over time that having issues scattered across multiple repos makes it too easy to lose track of things.
Requirements
stable-2.11.2or laterv0.2.0or later (required if using Linkerdstable-2.12.0or later)Configuration
The following Helm values are available:
selector: determines whichTrafficSplitinstances to consider for failover. It defaults tofailover.linkerd.io/controlled-by={{.Release.Name}}(the value refers to the release name used inhelm install).logLevel,logFormat: for configuring the operator’s logging.Installation
Note the SMI extension CRD is included in Linkerd 2.11.x so you can skip this step for those versions. As of version
stable-2.12.0, it’s no longer included so you need to install it as described here.The SMI extension and the operator are to be installed in the local cluster (where the clients consuming the service are located).
Linkerd-smi installation:
Linkerd-failover installation:
Example
The following
TrafficSplitserves as the initial state for a failover setup.Clients should send requests to the apex service
sample-svc. The primary service that will serve these requests is declared through thefailover.linkerd.io/primary-serviceannotation,sample-svcin this case. If theTrafficSplitdoes not include this annotation, it will treat the first backend as the primary service.When
sample-svcstarts failing, the weights will be switched over the other backends.Note that the failover services can be located in the local cluster, or they can point to mirror services backed by services in other clusters (through Linkerd’s multicluster functionality).
Implementation details
Failover criteria
The failover criteria is readiness failures on the targeted Pods. This is directly reflected on the Endpoints object associated with those Pods: only when Pods are ready, does the
addressesfield of the relevant Endpoints get populated.Failover logic
The following describes the logic used to change the
TrafficSplitweights: