Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make service mirror controller per target cluster #4710

Merged
merged 15 commits into from
Jul 23, 2020
Merged

Conversation

adleong
Copy link
Member

@adleong adleong commented Jul 3, 2020

This PR removes the service mirror controller from linkerd mc install to linkerd mc link, as described in linkerd/rfc#31. For fuller context, please see that RFC.

Basic multicluster functionality works here including:

  • linkerd mc install installs the Link CRD but not any service mirror controllers
  • linkerd mc link creates a Link resource and installs a service mirror controller which uses that Link
  • The service mirror controller creates and manages mirror services, a gateway mirror, and their endpoints.
  • The linkerd mc gateways command lists all linked target clusters, their liveliness, and probe latences.
  • The linkerd check multicluster checks have been updated for the new architecture. Several checks have been rendered obsolete by the new architecture and have been removed.

The following are known issues requiring further work:

  • the service mirror controller uses the existing mirror.linkerd.io/gateway-name and mirror.linkerd.io/gateway-ns annotations to select which services to mirror. it does not yet support configuring a label selector.
  • an unlink command is needed for removing multicluster links: see Add multicluster unlink command #4707
  • an mc uninstall command is needed for uninstalling the multicluster addon: see Add a multicluster uninstall command #4708

@@ -912,7 +912,7 @@ func (rcsw *RemoteClusterServiceWatcher) affectedMirroredServicesForGatewayUpdat
affectedServices := []*corev1.Service{}
for _, srv := range services {
ver, ok := srv.Annotations[consts.RemoteGatewayResourceVersionAnnotation]
if ok && ver != latestResourceVersion {
if !ok || ver != latestResourceVersion {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this change ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unrelated to this change, but I believe it's a bug that was blocking my testing.

I had a situation where a mirror service was created before the gateway service (or during a period where the gateway service had been deleted). This caused the mirror service to be created without the RemoteGatewayResourceVersionAnnotation. When the gateway service was later created, this event did not trigger an update on the mirror service because the mirror service did not have the annotation (ok was false here). This seems like the wrong behavior. If the mirror service is missing this annotation, it should accept all gateway update events instead of rejecting all gateway update events.

Version: "v1alpha1",
Resource: "links",
}
linkClient := k8sAPI.DynamicClient.Resource(gvr).Namespace(*namespace)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why not add that to the api go client the same way we are doing it for TrafficSplits, etc. Why use the DynamicClient?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We avoid using the code-generated client to have more flexible control over the deserialization and so that we can build in backwards compatibility if we later want to change the schema of the Link custom resource.

restartClusterWatcher(link, *namespace, creds, controllerK8sAPI, *requeueLimit, *repairPeriod)
case watch.Deleted:
log.Infof("Link %s deleted", linkName)
// TODO: should we delete all mirror resources?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would assume so

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we can tie all mirror services to this link why wouldn't we?

Copy link
Member

@zaharidichev zaharidichev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This look like it is going to be a great simplification. Just left a few questions. I assume you are not deleting the whole config watcher code to avoid making the diff large ?

@adleong
Copy link
Member Author

adleong commented Jul 6, 2020

I assume you are not deleting the whole config watcher code to avoid making the diff large ?

This is a TODO, see the PR description.

@adleong
Copy link
Member Author

adleong commented Jul 9, 2020

Update: Gateway metrics and the linkerd mc gateways commands are now working correctly as well.

This involved further refactoring:

  • The gateway mirror service is now called probe-gateway-x where x is the name of the target cluster. This helps remind us that the gateway mirror's only purpose is for the routing of probe messages. The gateway mirror service itself is now created statically as part of linkerd mc link. However, the gateway mirror's endpoints object cannot be created in this way because we potentially need to do DNS resolution of the gateway address. Therefore, the gateway mirror's endpoints object is created by the service mirror controller at started during endpoints repair.
  • All references to the gateway name and gateway namespace have been removed. The service mirror machinery never needs to look up the gateway service or know its name. Instead, it simply uses the gateway address, port, and identity configured in the Link object.
  • This means that the gateway name and namespace columns have been removed from the linkerd mc gateways command. Target clusters are referenced only by the cluster name.
  • Some dead code including the probe manager and config watcher have been removed.
  • Certain test cases which no longer make sense (such as switching from one gateway to another or reacting to target cluster gateway updates) have been removed.

@adleong
Copy link
Member Author

adleong commented Jul 10, 2020

Update: the multicluster checks have been updated as described in #4705

…ndpointslices. Fix some helm template issues

Signed-off-by: Alex Leong <[email protected]>
@adleong
Copy link
Member Author

adleong commented Jul 14, 2020

Update: I have manually merged #4740 into this branch to pick up fix for a bug that was preventing the destination controller from starting in clusters that don't support EndpointSlices.

With that fix in place, I have tested this end-to-end with a simple multicluster + traffic shift workflow.

Since this now has feature parity with what is on main, I'd like the next step to be getting this PR merged. Adding service selectors, an unlink command, and an uninstall command will be follow-up PRs.

Your assistance testing and reviewing this PR is greatly appreciated. It may be helpful to run through several testcases outlined in #4387 to check for any regressions in behavior.

@adleong adleong marked this pull request as ready for review July 14, 2020 21:55
@adleong adleong requested a review from a team as a code owner July 14, 2020 21:55
@adleong adleong changed the title [Draft] Make service mirror controller per target cluster Make service mirror controller per target cluster Jul 14, 2020
@adleong
Copy link
Member Author

adleong commented Jul 14, 2020

Some notes on the test cases:

  • Test service deletion from the remote cluster
    • DONE: works as expected
  • Test invalidating one of the remote services (removing the gateway name annotation)
    • this test case isn't relevant going forward: in the new paradigm services will not point to their gateway. instead, this test case should be that when the service's labels are updated so that it is no longer in the selector, the mirror service should be deleted. this cannot be tested until service selectors are implemented.
  • Test invalidating one of the remote services (pointing it to an non existent gateway)
    • As described above, this test is no longer valid.
  • Test deleting the gateway
    • The gateway address is now stored statically in the Link object and is not loaded dynamically from the target cluster. This means that deleting the gateway will not effect any changes on the resources of the source cluster. However, it will cause probes to fail and the liveness status of the target cluster will show up as "False" in the mc gateways command and the linkerd check command will warn about this. If the gateway is recreated (with a new load balancer IP) it will need to be re-linked to repair the link.
    • DONE: works as expected
  • Test breaking the gateway
    • Rather than breaking the gateway itself, we can test setting an invalid "gatewayIdentity" field in the Link resource.
    • DONE: works as expected
  • Test deleting the credentials from the local cluster
    • The credentials secret is loaded at service mirror controller startup (and whenever the Link object is updated). This means that simply deleting the credentials secret will not revoke access or stop anything from working. However, if the credentials are revoked by the target cluster by deleting the remote access service account, the service-mirror-controller will lose access. This can be repaired by re-linking.
  • Scale testing
    • TODO
  • Security
    • TODO
  • Network partitions
    • TODO
  • Test symmetrical cases
    • TODO

Copy link
Contributor

@kleimkuhler kleimkuhler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still doing some behavior testing right now and need to look through the actual code changes, but I'm having some trouble getting this to work as expected.

On two separate clusters, I've installed Linkerd and installed the multicluster resources. They both pass linkerd check --multicluster.

I then installed the link in one cluster:

linkerd --context k3d-y mc link --cluster-name cluster-y |kubectl --context k3d-x apply -f -

and can see that it was created properly with:

kubectl --context k3d-x get -n linkerd-multicluster links

The output I see for gateways is:

❯ bin/linkerd --context k3d-x mc gateways
CLUSTER  ALIVE    NUM_SVC  LATENCY_P50  LATENCY_P95  LATENCY_P99

This output is the same when I have a properly labeled service in k3d-y cluster as well and I don't see services mirrored.

I thought that typing this out I would come across my own user error, but I think following the UX changes explained in the RFC this should be correct?

Copy link
Contributor

@kleimkuhler kleimkuhler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good! I left some minor comments, but the overall implementation change makes sense.

We've DM'd about it a little and I'm still working through some issues on k3d, but I do have this working now with a GKE cluster and things work as expected.

// Check if there is a relevant end-point
endpoint, err := hc.kubeAPI.CoreV1().Endpoints(svc.Namespace).Get(svc.Name, metav1.GetOptions{})
if err != nil || len(endpoint.Subsets) == 0 {
servicesWithNoEndpoints = append(servicesWithNoEndpoints, fmt.Sprintf("%s.%s mirrored from cluster [%s] (gateway: [%s/%s])", svc.Name, svc.Namespace, svc.Labels[k8s.RemoteClusterNameLabel], svc.Labels[k8s.RemoteGatewayNsLabel], svc.Labels[k8s.RemoteGatewayNameLabel]))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It may be worth making this an error instead of a warning. I ran into this issue above where I assumed check was passing (with some warnings, including this) and didn't look much into it.

Turns out, the issue of no endpoints was because the cache was waiting to sync and that was hanging from an incorrect kubeconfig in the secret. Has this been an error, it would have been more obvious to me as the user that something about my setup was incorrect.

}

// GetLink fetches a Link object from Kubernetes by name/namespace.
func GetLink(client dynamic.Interface, namespace, name string) (Link, error) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is not used?

Comment on lines 262 to 264
matchLabels := map[string]string{
consts.MirroredResourceLabel: "true",
consts.RemoteClusterNameLabel: rcsw.clusterName,
consts.RemoteClusterNameLabel: rcsw.link.TargetClusterName,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this can just be matchLabels := rcsw.getMirroredServiceLabels()

Comment on lines 780 to 787
} else {
// Exists so we should update it.
_, err = rcsw.localAPIClient.Client.CoreV1().Endpoints(ep.Namespace).Update(ep)
if err != nil {
return err
}
}
return nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
} else {
// Exists so we should update it.
_, err = rcsw.localAPIClient.Client.CoreV1().Endpoints(ep.Namespace).Update(ep)
if err != nil {
return err
}
}
return nil
}
// Exists so we should update it.
_, err = rcsw.localAPIClient.Client.CoreV1().Endpoints(ep.Namespace).Update(ep)
if err != nil {
return err
}
return nil

restartClusterWatcher(link, *namespace, creds, controllerK8sAPI, *requeueLimit, *repairPeriod)
case watch.Deleted:
log.Infof("Link %s deleted", linkName)
// TODO: should we delete all mirror resources?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we can tie all mirror services to this link why wouldn't we?

Copy link
Member

@zaharidichev zaharidichev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, although I think it can be simplified further. Left some minor comments. My main point is that we can verify whether our gateway has everything it needs to have during link time. Since we are not updating the gateway at all now, we can do that. Currently linking with a cluster that has a gateway that has not gotten an external IP yet results in an invalid state which I believe cannot be repaired easily:

Spec:
  Cluster Credentials Secret:  cluster-credentials-west
  Gateway Address:
  Gateway Identity:            linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local
  Gateway Port:                4143
  Probe Spec:
    Path:                            /health
    Period:                          3s
    Port:                            4181
  Target Cluster Domain:             cluster.local
  Target Cluster Linkerd Namespace:  linkerd
  Target Cluster Name:               west
Events:                              <none>
linkerd-multicluster
--------------------
√ Link CRD exists
√ Link resources are valid
        * west
√ service mirror controller has required permissions
        * west
√ service mirror controllers are running
        * west
√ remote cluster access credentials are valid
        * west
√ clusters share trust anchors
        * west
‼ all gateway mirrors are healthy
        probe-gateway-west.linkerd-multicluster mirrored from cluster [west] has no endpoints
    see https://linkerd.io/checks/#l5d-multicluster-gateways-endpoints for hints

Comment on lines +427 to +432
if len(gatewayAddress) > 0 {
endpointsToCreate.Subsets = []corev1.EndpointSubset{
{
Addresses: gatewayAddress,
Ports: rcsw.getEndpointsPorts(ev.service),
},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether this can be a bit less fragile. So it seems that when doing link we do not verify that the gateway has ready external addresses. Is it correct to say that if we link a cluster with a gateway that has no external addresses, this state will not be updated even when the addresses become ready? can we do a check in link to verify that there is at least one external IP ready? I think that this is a nice constraint to put

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a great idea

gatewayProbePort: 4181
namespace: linkerd-multicluster
logLevel: info
serviceMirrorRetryLimit: 3
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it is worth getting rid of this retry mechanism alltogether. Frankly in practice I have not seen it pull its weight. I think this was a bit of overengineering on my end. WDYT?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this refactor mostly didn't touch the event processing loop. we can think about removing it, but I don't think that change has to be tied to this refactor.

if err != nil {
return nil, err
}
if rcsw.link.GatewayIdentity != "" {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we check in link and assume here the gateway identitiy is present, so we alsways set the annotation?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea

@alpeb
Copy link
Member

alpeb commented Jul 17, 2020

Nit: both readmes for linkerd2-multicluster and linkerd2-multicluster-link need to be updated according to their new values.yaml files

@mateiidavid
Copy link
Member

mateiidavid commented Jul 20, 2020

Hiya, wanted to give a hand so I started going through some of the test cases @adleong posted (based on #4387). Here are my results. I'm not sure if I tested anything beyond the scope of this PR but I noticed some undefined behaviour which might be a bit besides the point. Anyway, thought I'd share it.

Tested on 2 GKE clusters


  • Test-independent functionality: install, check, link all work as expected. No issues whatsoever, gateways works. Worth to mention, the service mirror crashed the first time I exported the service from target cluster (unfortunately didn't get any logs); as soon as the pod restarted it all went smoothly. No idea why the crash happened.
  • Test service deletion from the remote cluster: worked as expected, however, checked the logs and a DELETE was fired twice, not sure if this is a problem but thought I'd be thorough and paste the logs anyway.
time="2020-07-20T13:41:05Z" level=info msg="Received: OnDeleteCalled: {svc: Service: {name: podinfo, namespace: test, annotations: [[mirror.linkerd.io/gateway-name=linkerd-gateway,mirror.linkerd.io/gateway-ns=linkerd-multicluster]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T13:41:05Z" level=info msg="Received: RemoteServiceDeleted: {name: podinfo, namespace: test }" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T13:41:05Z" level=info msg="Deleting mirrored service test/podinfo-east and its corresponding Endpoints" apiAddress="https://35.231.95.239" cluster=remote
I0720 13:41:05.651172       1 request.go:1017] Request Body: {"kind":"DeleteOptions","apiVersion":"v1"}
I0720 13:41:05.651344       1 round_trippers.go:423] curl -k -v -XDELETE  -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Accept: application/json, */*" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4tamJieHYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjRlYzI3NDgtY2E4OS0xMWVhLWIyOTktNDIwMTBhOGEwMGMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.iwVLvpDtjfz4gbl0GvYG4Ae7sY8fwrdx5Oq0k8R70dxbEuXsulvnzfT2u1Dk6CZnCa2mkh7apjh4Gz2kPsuTlxCjNZUz7BlgwkJgMrhySn7cO0qSaFj8hmgdqyRzrOBXNPLBEpbV9sBxgubLf72klfPyYxg4i_uFJhi2nKzC6Ck_iJk7v6Q1T0qMQi6y6IZ-jDNV9ebQWlj6Y9kchpjxav2AitiN-C0LU8kT_i5n5WLZIUvSFhNzouvMyLwydzVt4saHsE4yb1kILmTvSQtgjyZ2_zx6wFGDUT78KB25W6wVNq9AqPcUVuIlSj7AF4XBaEQFrbtSatTdmK78XcS18w" -H "Content-Type: application/json" 'https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east'
		I0720 13:41:05.677588       1 round_trippers.go:443] DELETE https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east 200 OK in 26 milliseconds
I0720 13:41:05.677627       1 round_trippers.go:449] Response Headers:
I0720 13:41:05.677634       1 round_trippers.go:452]     Audit-Id: 05d78587-a710-4657-9e4a-2e3bcf802fc1
I0720 13:41:05.677640       1 round_trippers.go:452]     Content-Type: application/json
I0720 13:41:05.677645       1 round_trippers.go:452]     Content-Length: 166
I0720 13:41:05.677652       1 round_trippers.go:452]     Date: Mon, 20 Jul 2020 13:41:05 GMT
I0720 13:41:05.677697       1 request.go:1017] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Success","details":{"name":"podinfo-east","kind":"services","uid":"c2ed2c91-ca8d-11ea-b299-42010a8a00c1"}}
I0720 13:41:05.677787       1 request.go:1017] Request Body: {"kind":"DeleteOptions","apiVersion":"v1"}
I0720 13:41:05.677877       1 round_trippers.go:423] curl -k -v -XDELETE  -H "Accept: application/json, */*" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4tamJieHYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjRlYzI3NDgtY2E4OS0xMWVhLWIyOTktNDIwMTBhOGEwMGMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.iwVLvpDtjfz4gbl0GvYG4Ae7sY8fwrdx5Oq0k8R70dxbEuXsulvnzfT2u1Dk6CZnCa2mkh7apjh4Gz2kPsuTlxCjNZUz7BlgwkJgMrhySn7cO0qSaFj8hmgdqyRzrOBXNPLBEpbV9sBxgubLf72klfPyYxg4i_uFJhi2nKzC6Ck_iJk7v6Q1T0qMQi6y6IZ-jDNV9ebQWlj6Y9kchpjxav2AitiN-C0LU8kT_i5n5WLZIUvSFhNzouvMyLwydzVt4saHsE4yb1kILmTvSQtgjyZ2_zx6wFGDUT78KB25W6wVNq9AqPcUVuIlSj7AF4XBaEQFrbtSatTdmK78XcS18w" -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" 'https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east'
I0720 13:41:05.681449       1 round_trippers.go:443] DELETE https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east 404 Not Found in 3 milliseconds
I0720 13:41:05.681485       1 round_trippers.go:449] Response Headers:
I0720 13:41:05.681492       1 round_trippers.go:452]     Audit-Id: e7ad8a05-b71e-4bf9-8355-19ef4dc36468
I0720 13:41:05.681498       1 round_trippers.go:452]     Content-Type: application/json
I0720 13:41:05.681504       1 round_trippers.go:452]     Content-Length: 202
I0720 13:41:05.681509       1 round_trippers.go:452]     Date: Mon, 20 Jul 2020 13:41:05 GMT
I0720 13:41:05.681543       1 request.go:1017] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"endpoints \"podinfo-east\" not found","reason":"NotFound","details":{"name":"podinfo-east","kind":"endpoints"},"code":404}
time="2020-07-20T13:41:05Z" level=info msg="Successfully deleted Service: test/podinfo-east" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T13:41:06Z" level=debug msg="Gateway is healthy" probe-key=east
  • Test deleting the gateway: worked, nothing else to say.
  • Test breaking the gateway: I'm not sure if I've done anything wrong here, but the behaviour was a bit undefined. In total, by the end of the test my service mirror pod had been restarted 12 times. I initially changed the identity in the target gateway service (mirror.linkerd.io/gateway-identity: banana). At first mc gateways did not have any output, then the output showed Alive=False, and finally back to nothing.

❯ target/cli/darwin/linkerd mc gateways --context=west
CLUSTER  ALIVE    NUM_SVC  LATENCY_P50  LATENCY_P95  LATENCY_P99

❯ target/cli/darwin/linkerd mc gateways --context=west
CLUSTER  ALIVE    NUM_SVC  LATENCY_P50  LATENCY_P95  LATENCY_P99
east     False          0            -            -            -

❯ target/cli/darwin/linkerd mc gateways --context=west
CLUSTER  ALIVE    NUM_SVC  LATENCY_P50  LATENCY_P95  LATENCY_P99

I thought this is a bit odd, went and checked the service mirror logs in west (service mirror pod was in crash loopback):

❯ k logs linkerd-service-mirror-east-57dd8f5b97-q5hc4 -n linkerd-multicluster service-mirror
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

time="2020-07-20T14:24:31Z" level=info msg="running version git-7a60e703"
time="2020-07-20T14:24:31Z" level=info msg="waiting for caches to sync"
time="2020-07-20T14:24:31Z" level=info msg="starting admin server on :9999"
time="2020-07-20T14:24:31Z" level=info msg="caches synced"
time="2020-07-20T14:24:31Z" level=info msg="Got updated link east: {Name:east Namespace:linkerd-multicluster TargetClusterName:east TargetClusterDomain:cluster.local TargetClusterLinkerdNamespace:linkerd ClusterCredentialsSecret:cluster-credentials-east GatewayAddress:35.231.6.9 GatewayPort:4143 GatewayIdentity:linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local ProbeSpec:ProbeSpec: {path: /health, port: 4181, period: 3s}}"
time="2020-07-20T14:24:31Z" level=info msg="waiting for caches to sync"
time="2020-07-20T14:24:31Z" level=info msg="caches synced"
time="2020-07-20T14:24:31Z" level=info msg="Received: OprhanedServicesGcTriggered: {}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-dst, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=destination,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-proxy-injector, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=proxy-injector,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: frontend, namespace: test, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: default-http-backend, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-prometheus, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=prometheus,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-gateway, namespace: linkerd-multicluster, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703,mirror.linkerd.io/gateway-identity=banana,mirror.linkerd.io/multicluster-gateway=true,mirror.linkerd.io/probe-path=/health,mirror.linkerd.io/probe-period=3]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: metrics-server, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kube-dns, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: heapster, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-grafana, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-ns=linkerd,linkerd.io/control-plane-component=grafana]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-tap, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=tap,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: podinfo, namespace: test, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-identity, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=identity,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-web, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=web,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-controller-api, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=controller,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-sp-validator, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-7a60e703]], labels [[linkerd.io/control-plane-component=sp-validator,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:24:31Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kubernetes, namespace: default, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.95.239" cluster=remote
time="2020-07-20T14:25:31Z" level=info msg="Received: RepairEndpoints" apiAddress="https://35.231.95.239" cluster=remote

The weirder thing is that after the pod came up again:

❯ kgp -n linkerd-multicluster
NAME                                           READY   STATUS    RESTARTS   AGE
linkerd-gateway-74d858b4cd-b56dl               2/2     Running   0          99m
linkerd-service-mirror-east-57dd8f5b97-q5hc4   2/2     Running   9          33m

❯ target/cli/darwin/linkerd mc gateways --context=west
CLUSTER  ALIVE    NUM_SVC  LATENCY_P50  LATENCY_P95  LATENCY_P99
east     True           0          0ms          0ms          0ms

I'm not sure this is a problem, if I tested the wrong thing or not, but the behaviour was interesting enough for me to include in this. It's possible I deleted/misconfigured something and this happened.

Tl;dr everything works as expected on 2 GKE clusters except breaking the gateway which was very broken in my case, to say the least.

@adleong
Copy link
Member Author

adleong commented Jul 20, 2020

@Matei207 Good catch on breaking the gateway. The service mirror controller crashing definitely shouldn't happen; I'll look into it.

As for the double delete, if you look closely you can see that the first delete is deleting the service and the second one is deleting its endpoints. But since the endpoints delete fails with a NotFound, I suspect that the endpoints object must get automatically deleted when its service does. So I should be able to remove the endpoints deletion!

@adleong
Copy link
Member Author

adleong commented Jul 20, 2020

@Matei207 I wasn't able to reproduce the crash that you describe. If you can still reproduce this behavior, would you mind grabbing the log output from the service mirror controller that contains the crash? you can use the -p flag to kubectl logs to grab logs from the previous instance of the pod. If that doesn't work, you might be able to capture the logs if you're watching the log output with the kubectl log -f flag while the crash happens.

Signed-off-by: Alex Leong <[email protected]>
Signed-off-by: Alex Leong <[email protected]>
@mateiidavid
Copy link
Member

@adleong that's interesting, I thought I'd for sure have some issues reproducing it but the same still happens. As a matter of fact, the service mirror component keeps restarting and the logs aren't much help.

To give you a bit of context: the last time I installed after simply building the cli off this branch (the images got tagged with the commit and the images were found), today I wasn't so lucky, I built the images myself and pushed them to my public docker repo (so I can use pull them in my gke clusters). I built the binaries, installed with target/../linkerd install --repository=docker.io/matei207. The control plane worked like a breeze:

NAME                                      READY   STATUS    RESTARTS   AGE
linkerd-controller-576c987fc4-p6pjv       2/2     Running   0          62m
linkerd-destination-59cb4545f5-rqdl9      2/2     Running   0          62m
linkerd-grafana-5ccb4884cc-qt88l          2/2     Running   0          62m
linkerd-identity-66d8cbc8d-mrmvv          2/2     Running   0          62m
linkerd-prometheus-5749478bbd-7w4hn       2/2     Running   0          62m
linkerd-proxy-injector-666f55898c-x7kbz   2/2     Running   0          62m
linkerd-sp-validator-787875c5c6-2dgss     2/2     Running   0          62m
linkerd-tap-5fccf46cf5-26nvb              2/2     Running   0          62m
linkerd-web-7bf5f9778f-25dxv              2/2     Running   0          62m

when I linked the two clusters, I had to edit the service-mirror deployment to also pull from my repo instead of gcr.io/linkerd-io

  • I created the podinfo tests according to the multicluster getting started docs to check my installation works as expected before getting any further logs. This is when I noticed the component crashing:
❯ kgp
NAME                                          READY   STATUS    RESTARTS   AGE
linkerd-gateway-7b7fd866d6-b4p9j              2/2     Running   0          17m
linkerd-service-mirror-east-595c85697-n44wn   2/2     Running   1          2m11s
# 1 restart for linkerd service mirror 2 mins after changing the img repository
# same behaviour as yday

Thought that's odd, tried getting logs:

❯ k logs service-mirror-pod service-mirror


identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
time="2020-07-21T13:03:18Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:21Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:24Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:27Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:31Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:34Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:37Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:40Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:43Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:46Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:50Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:53Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:56Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:03:59Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:04:02Z" level=debug msg="Gateway is healthy" probe-key=east

I remembered my GKE clusters are default config, so I thought maybe it's a resource failure and my pods are crashing because the system is saturated:

❯ k top no
NAME                                    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
gke-west-1-default-pool-d0db0902-7p8d   117m         6%     928Mi           32%
gke-west-1-default-pool-d0db0902-lr34   212m         10%    1081Mi          38%
gke-west-1-default-pool-d0db0902-ng7b   185m         9%     948Mi           33%

By this point, my pod restarted twice:

❯ kgp
NAME                                          READY   STATUS    RESTARTS   AGE
linkerd-gateway-7b7fd866d6-b4p9j              2/2     Running   0          20m
linkerd-service-mirror-east-595c85697-n44wn   2/2     Running   2          4m36s

I thought I'd use the -p flag like suggested to see what happened:

# logs for service mirror, didn't copy over cmd
0721 13:05:06.427788       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east 200 OK in 3 milliseconds
I0721 13:05:06.427811       1 round_trippers.go:449] Response Headers:
I0721 13:05:06.427816       1 round_trippers.go:452]     Audit-Id: 8c861ea3-2a79-4887-95b7-599f4443cec6
I0721 13:05:06.427820       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:05:06.427824       1 round_trippers.go:452]     Content-Length: 729
I0721 13:05:06.427827       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:05:06 GMT
I0721 13:05:06.427858       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
time="2020-07-21T13:05:08Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:12Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:15Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:18Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:21Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:24Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:27Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:05:31Z" level=debug msg="Gateway is healthy" probe-key=east


❯ k logs linkerd-service-mirror-east-595c85697-n44wn linkerd-proxy -p
Error from server (BadRequest): previous terminated container "linkerd-proxy" in pod "linkerd-service-mirror-east-595c85697-n44wn" not found

❯ k logs linkerd-service-mirror-east-595c85697-n44wn linkerd-proxy -f
time="2020-07-21T13:02:05Z" level=info msg="running version git-474b0839"
[     0.13569131s]  INFO linkerd2_proxy: Admin interface on 0.0.0.0:4191
[     0.13597942s]  INFO linkerd2_proxy: Inbound interface on 0.0.0.0:4143
[     0.13603820s]  INFO linkerd2_proxy: Outbound interface on 127.0.0.1:4140
[     0.13607948s]  INFO linkerd2_proxy: Tap interface on 0.0.0.0:4190
[     0.13612487s]  INFO linkerd2_proxy: Local identity is linkerd-service-mirror-east.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local
[     0.13621721s]  INFO linkerd2_proxy: Identity verified via linkerd-identity.linkerd.svc.cluster.local:8080 (linkerd-identity.linkerd.serviceaccount.identity.linkerd.cluster.local)
[     0.13627490s]  INFO linkerd2_proxy: Destinations resolved via linkerd-dst.linkerd.svc.cluster.local:8086 (linkerd-destination.linkerd.serviceaccount.identity.linkerd.cluster.local)
[     0.14513511s]  INFO outbound: linkerd2_app_outbound: Serving addr=127.0.0.1:4140
[     0.14594018s]  INFO inbound: linkerd2_app_inbound: Serving addr=0.0.0.0:4143
[     1.105313965s]  INFO daemon:identity: linkerd2_app: Certified identity: linkerd-service-mirror-east.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local
[   214.164237265s]  WARN inbound:accept{peer.addr=10.60.1.27:55198}:source{target.addr=10.60.1.33:9999}: linkerd2_app_core::errors: Failed to proxy request: error trying to connect: Connection refused (os error 111)
[   344.164643442s]  WARN inbound:accept{peer.addr=10.60.1.27:56328}:source{target.addr=10.60.1.33:9999}: linkerd2_app_core::errors: Failed to proxy request: error trying to connect: Connection refused (os error 111)
[   354.164349554s]  WARN inbound:accept{peer.addr=10.60.1.27:56416}:source{target.addr=10.60.1.33:9999}: linkerd2_app_core::errors: Failed to proxy request: error trying to connect: Connection refused (os error 111)

Thought I'd set log=debug on the proxy to see what's happening a bit more closely, once I annotated the deployment and the new pod came up, I waited for it to crash again:

# ======== SVC MIRROR ============
I0721 13:17:51.533056       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
time="2020-07-21T13:17:54Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:17:57Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:18:00Z" level=debug msg="Gateway is healthy" probe-key=east
# ======== PROXY ============
[   296.591963156s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: hyper::proto::h1::conn: incoming body is empty
[   296.592024236s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: hyper::proto::h1::io: flushed 80 bytes
[   297.168898362s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_read: received; frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) }
[   297.168941727s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: rustls::session: Sending warning alert CloseNotify
[   297.170183324s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}:accept{peer.addr=10.60.1.27:34646}: linkerd2_proxy_transport::tls::accept: attempting TLS handshake
[   297.170345846s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}:accept{peer.addr=10.60.1.27:34646}: rustls::server::hs: decided upon suite SupportedCipherSuite { suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, kx: ECDHE, bulk: CHACHA20_POLY1305, hash: SHA256, sign: ECDSA, enc_key_len: 32, fixed_iv_len: 12, explicit_nonce_len: 0, hkdf_algorithm: Algorithm(Algorithm(SHA256)) }
[   297.170397659s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}:accept{peer.addr=10.60.1.27:34646}: rustls::server::hs: Resuming session
[   297.171263146s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: hyper::proto::h1::io: read 257 bytes
[   297.171285029s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: hyper::proto::h1::conn: parse error (invalid HTTP version parsed) with 257 bytes
[   297.171292925s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: hyper::proto::h1::dispatch: read_head error: invalid HTTP version parsed (found HTTP2 preface)
[   297.171311361s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_write: send; frame=Settings { flags: (0x0), initial_window_size: 1048576, max_frame_size: 16384 }
[   297.171375604s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_read: received; frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 65535, max_frame_size: 16384 }
[   297.171386140s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_write: send; frame=Settings { flags: (0x1: ACK) }
[   297.171549849s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_read: received; frame=WindowUpdate { stream_id: StreamId(0), size_increment: 983041 }
[   297.171629456s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_read: received; frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
[   297.171657802s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_write: send; frame=WindowUpdate { stream_id: StreamId(0), size_increment: 983041 }
[   297.174715358s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_write: send; frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
[   297.174896113s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_write: send; frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
[   297.175210904s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::codec::framed_read: received; frame=Settings { flags: (0x1: ACK) }
[   297.175356099s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}: h2::proto::settings: received settings ACK; applying Settings { flags: (0x0), initial_window_size: 1048576, max_frame_size: 16384 }
[   300.778655929s] DEBUG inbound:h2: h2::codec::framed_read: received; frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) }
[   300.778694215s] DEBUG inbound:h2: rustls::session: Sending warning alert CloseNotify
[   300.778854664s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}: linkerd2_proxy_transport::tls::accept: attempting TLS handshake
[   300.779330506s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}: rustls::server::hs: decided upon suite SupportedCipherSuite { suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, kx: ECDHE, bulk: CHACHA20_POLY1305, hash: SHA256, sign: ECDSA, enc_key_len: 32, fixed_iv_len: 12, explicit_nonce_len: 0, hkdf_algorithm: Algorithm(Algorithm(SHA256)) }
[   300.779384100s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}: rustls::server::hs: Resuming session
[   300.780098161s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}: linkerd2_app_inbound::require_identity_for_ports: port=9999 peer.id=Some("linkerd-prometheus.linkerd.serviceaccount.identity.linkerd.cluster.local") id_required=false
[   300.780183166s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}: h2::codec::framed_write: send; frame=Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 }
[   300.780294864s] DEBUG inbound:h2: h2::codec::framed_read: received; frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 65535, max_frame_size: 16384 }
[   300.780308518s] DEBUG inbound:h2: h2::codec::framed_write: send; frame=Settings { flags: (0x1: ACK) }
[   300.780316935s] DEBUG inbound:h2: h2::codec::framed_read: received; frame=WindowUpdate { stream_id: StreamId(0), size_increment: 983041 }
[   300.780327893s] DEBUG inbound:h2: h2::codec::framed_write: send; frame=WindowUpdate { stream_id: StreamId(0), size_increment: 983041 }
[   300.780455696s] DEBUG inbound:h2: h2::codec::framed_read: received; frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
[   300.780501051s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}: linkerd2_proxy_http::orig_proto: translating HTTP2 to orig-proto: "HTTP/1.1"
[   300.780519301s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}: linkerd2_app_inbound::endpoint: using l5d-dst-canonical
[   300.780547853s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}:http1{port=9999 keep_alive=true wants_h1_upgrade=false was_absolute_form=false}: linkerd2_app_inbound::prevent_loop: addr=10.60.0.26:9999 self.port=4143
[   300.780665672s] DEBUG inbound: linkerd2_proxy_http::client: method=GET uri=http://10.60.0.26:9999/metrics version=HTTP/1.1 headers={"host": "10.60.0.26:9999", "user-agent": "Prometheus/2.15.2", "accept": "application/openmetrics-text; version=0.0.1,text/plain;version=0.0.4;q=0.5,*/*;q=0.1", "accept-encoding": "gzip", "x-prometheus-scrape-timeout-seconds": "10.000000", "l5d-dst-canonical": "10.60.0.26:9999"}
[   300.780705557s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}:http1{port=9999 keep_alive=true wants_h1_upgrade=false was_absolute_form=false}:target: linkerd2_proxy_transport::connect: Connecting peer.addr=127.0.0.1:9999
[   300.780828144s] DEBUG inbound:h2: h2::codec::framed_read: received; frame=Settings { flags: (0x1: ACK) }
[   300.780838307s] DEBUG inbound:h2: h2::proto::settings: received settings ACK; applying Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 }
[   300.780908486s]  WARN inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}: linkerd2_app_core::errors: Failed to proxy request: error trying to connect: Connection refused (os error 111)
[   300.780926987s] DEBUG inbound:accept{peer.addr=10.60.1.27:45334}:source{target.addr=10.60.0.26:9999}: linkerd2_app_core::errors: Handling error with HTTP response status=502 Bad Gateway version=HTTP/2.0
[   300.780979659s] DEBUG inbound:h2: h2::codec::framed_write: send; frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
[   305.804772774s] DEBUG daemon:admin{listen.addr=0.0.0.0:4191}:accept{peer.addr=10.60.0.1:45972}: linkerd2_proxy_transport::tls::accept: attempting TLS handshake
  • Went back to the gateway, modified west first instead of east (by mistake), realised my mistake, switched west back to its original identity annotation, modified east to have its identity annotation set to 'local'. The pod got stuck in CrashLoopBackoff:
# ========= SERVICE MIRROR -P LOGS ===========
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

time="2020-07-21T13:51:37Z" level=info msg="running version git-474b0839"
I0721 13:51:37.901148       1 merged_client_builder.go:122] Using in-cluster configuration
I0721 13:51:37.904248       1 merged_client_builder.go:122] Using in-cluster configuration
time="2020-07-21T13:51:37Z" level=info msg="waiting for caches to sync"
time="2020-07-21T13:51:37Z" level=info msg="starting admin server on :9999"
I0721 13:51:37.907106       1 reflector.go:150] Starting reflector *v1.Namespace (10m0s) from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.907150       1 reflector.go:185] Listing and watching *v1.Namespace from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.907584       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0'
I0721 13:51:37.907748       1 reflector.go:150] Starting reflector *v1.Service (10m0s) from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.907768       1 reflector.go:185] Listing and watching *v1.Service from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.907977       1 round_trippers.go:423] curl -k -v -XGET  -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Accept: application/json, */*" 'https://10.126.0.1:443/api/v1/services?limit=500&resourceVersion=0'
I0721 13:51:37.908127       1 reflector.go:150] Starting reflector *v1.Endpoints (10m0s) from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.908176       1 reflector.go:185] Listing and watching *v1.Endpoints from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:37.908430       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0'
I0721 13:51:37.916423       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/services?limit=500&resourceVersion=0 200 OK in 8 milliseconds
I0721 13:51:37.916528       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.916589       1 round_trippers.go:452]     Audit-Id: 6b95235a-8d87-42b7-ad40-e554754a1e0e
I0721 13:51:37.916611       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.916629       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:37.917023       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0 200 OK in 8 milliseconds
I0721 13:51:37.917126       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.917191       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.917291       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:37.917319       1 round_trippers.go:452]     Audit-Id: 44ceb64e-05f0-4aaa-bb58-4d63c73bc752
I0721 13:51:37.918040       1 request.go:1017] Response Body: {"kind":"EndpointsList","apiVersion":"v1","metadata":{"selfLink":"/api/v1/endpoints","resourceVersion":"56912"},"items":[{"metadata":{"name":"kube-controller-manager","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/kube-controller-manager","uid":"47fb8a16-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"56912","creationTimestamp":"2020-07-21T09:40:58Z","annotations":{"control-plane.alpha.kubernetes.io/leader":"{\"holderIdentity\":\"gke-b47ea87c1b264f0aaf50-2f08-27d6-vm_233471e6-cb36-11ea-bd89-42010a8a01c1\",\"leaseDurationSeconds\":15,\"acquireTime\":\"2020-07-21T09:40:58Z\",\"renewTime\":\"2020-07-21T13:51:36Z\",\"leaderTransitions\":0}"}}},{"metadata":{"name":"default-http-backend","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/default-http-backend","uid":"527b9680-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"842","creationTimestamp":"2020-07-21T09:41:16Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"glbc","kubernetes.io/cluster-service":"true","kubernetes.io/name":"GLBCDefaultBackend"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T09:41:59Z"}},"subsets":[{"addresses":[{"ip":"10.60.2.4","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"kube-system","name":"l7-default-backend-8f479dd9-pfvdk","uid":"5269cd22-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"836"}}],"ports":[{"name":"http","port":8080,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-tap","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-tap","uid":"1abfbfb5-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40949","creationTimestamp":"2020-07-21T12:31:30Z","labels":{"linkerd.io/control-plane-component":"tap","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:35Z"}},"subsets":[{"addresses":[{"ip":"10.60.1.28","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-tap-5fccf46cf5-26nvb","uid":"e5eec048-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40947"}}],"ports":[{"name":"apiserver","port":8089,"protocol":"TCP"},{"name":"grpc","port":8088,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-prometheus","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-prometheus","uid":"1e7e4825-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41037","creationTimestamp":"2020-07-21T12:31:36Z","labels":{"linkerd.io/control-plane-component":"prometheus","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:50Z"}},"subsets":[{"addresses":[{"ip":"10.60.1.27","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-prometheus-5749478bbd-7w4hn","uid":"e59a3fed-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41035"}}],"ports":[{"name":"admin-http","port":9090,"protocol":"TCP"}]}]},{"metadata":{"name":"frontend","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/frontend","uid":"96b6b1d0-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45158","creationTimestamp":"2020-07-21T12:56:26Z","annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:56:38Z"}},"subsets":[{"addresses":[{"ip":"10.60.1.31","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"test","name":"frontend-7d864c5dd5-jwhf6","uid":"97606ecd-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45157"}}],"ports":[{"name":"service","port":8080,"protocol":"TCP"}]}]},{"metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]},{"metadata":{"name":"kube-scheduler","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/kube-scheduler","uid":"47f9575a-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"56911","creationTimestamp":"2020-07-21T09:40:58Z","annotations":{"control-plane.alpha.kubernetes.io/leader":"{\"holderIdentity\":\"gke-b47ea87c1b264f0aaf50-2f08-27d6-vm_2073a397-cb36-11ea-8a0a-42010a8a01c1\",\"leaseDurationSeconds\":15,\"acquireTime\":\"2020-07-21T09:40:58Z\",\"renewTime\":\"2020-07-21T13:51:36Z\",\"leaderTransitions\":0}"}}},{"metadata":{"name":"linkerd-dst","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-dst","uid":"17d28863-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40961","creationTimestamp":"2020-07-21T12:31:25Z","labels":{"linkerd.io/control-plane-component":"destination","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:35Z"}},"subsets":[{"addresses":[{"ip":"10.60.1.26","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-destination-59cb4545f5-rqdl9","uid":"e538c310-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40959"}}],"ports":[{"name":"grpc","port":8086,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-sp-validator","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-sp-validator","uid":"1a1418e9-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40984","creationTimestamp":"2020-07-21T12:31:29Z","labels":{"linkerd.io/control-plane-component":"sp-validator","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:40Z"}},"subsets":[{"addresses":[{"ip":"10.60.2.24","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-sp-validator-787875c5c6-2dgss","uid":"e5d1ccc3-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40982"}}],"ports":[{"name":"sp-validator","port":8443,"protocol":"TCP"}]}]},{"metadata":{"name":"podinfo","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo","uid":"9702dc78-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45279","creationTimestamp":"2020-07-21T12:56:27Z","labels":{"app":"podinfo"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:57:04Z"}},"subsets":[{"addresses":[{"ip":"10.60.0.25","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"test","name":"podinfo-7fc855484d-xlv8k","uid":"97a86429-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45206"}},{"ip":"10.60.1.32","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"test","name":"podinfo-7fc855484d-w78wl","uid":"a15d9b73-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45278"}}],"ports":[{"name":"http","port":9898,"protocol":"TCP"},{"name":"grpc","port":9999,"protocol":"TCP"}]}]},{"metadata":{"name":"managed-certificate-controller","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/managed-certificate-controller","uid":"48dd3e72-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"56909","creationTimestamp":"2020-07-21T09:40:59Z","annotations":{"control-plane.alpha.kubernetes.io/leader":"{\"holderIdentity\":\"gke-b47ea87c1b264f0aaf50-2f08-27d6-vm\",\"leaseDurationSeconds\":15,\"acquireTime\":\"2020-07-21T09:40:59Z\",\"renewTime\":\"2020-07-21T13:51:36Z\",\"leaderTransitions\":0}"}}},{"metadata":{"name":"metrics-server","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/metrics-server","uid":"54296378-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"748","creationTimestamp":"2020-07-21T09:41:18Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Metrics-server"}},"subsets":[{"addresses":[{"ip":"10.60.0.5","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"kube-system","name":"metrics-server-v0.3.1-5c6fbf777-s69nh","uid":"610784b9-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"741"}}],"ports":[{"port":443,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-identity","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-identity","uid":"1693325d-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40935","creationTimestamp":"2020-07-21T12:31:23Z","labels":{"linkerd.io/control-plane-component":"identity","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:33Z"}},"subsets":[{"addresses":[{"ip":"10.60.2.23","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-identity-66d8cbc8d-mrmvv","uid":"e5794f45-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40934"}}],"ports":[{"name":"grpc","port":8080,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-controller-api","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-controller-api","uid":"17345259-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40987","creationTimestamp":"2020-07-21T12:31:24Z","labels":{"linkerd.io/control-plane-component":"controller","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:41Z"}},"subsets":[{"addresses":[{"ip":"10.60.2.22","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-controller-576c987fc4-p6pjv","uid":"e51cbb81-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40986"}}],"ports":[{"name":"http","port":8085,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-proxy-injector","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-proxy-injector","uid":"19c77496-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40996","creationTimestamp":"2020-07-21T12:31:28Z","labels":{"linkerd.io/control-plane-component":"proxy-injector","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:42Z"}},"subsets":[{"addresses":[{"ip":"10.60.0.22","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-proxy-injector-666f55898c-x7kbz","uid":"e5b52e1f-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"40995"}}],"ports":[{"name":"proxy-injector","port":8443,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-grafana","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-grafana","uid":"1cdb22db-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41007","creationTimestamp":"2020-07-21T12:31:34Z","labels":{"linkerd.io/control-plane-component":"grafana","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:43Z"}},"subsets":[{"addresses":[{"ip":"10.60.0.21","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-grafana-5ccb4884cc-qt88l","uid":"e55795de-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41006"}}],"ports":[{"name":"http","port":3000,"protocol":"TCP"}]}]},{"metadata":{"name":"heapster","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/heapster","uid":"529c6e47-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"944","creationTimestamp":"2020-07-21T09:41:16Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Heapster"}},"subsets":[{"addresses":[{"ip":"10.60.2.6","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"kube-system","name":"heapster-gke-d4db894bb-rln68","uid":"6ff23a21-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"938"}}],"ports":[{"port":8082,"protocol":"TCP"}]}]},{"metadata":{"name":"gcp-controller-manager","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/gcp-controller-manager","uid":"47bb4490-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"56908","creationTimestamp":"2020-07-21T09:40:58Z","annotations":{"control-plane.alpha.kubernetes.io/leader":"{\"holderIdentity\":\"gke-b47ea87c1b264f0aaf50-2f08-27d6-vm\",\"leaseDurationSeconds\":15,\"acquireTime\":\"2020-07-21T09:40:58Z\",\"renewTime\":\"2020-07-21T13:51:35Z\",\"leaderTransitions\":0}"}}},{"metadata":{"name":"kube-dns","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/endpoints/kube-dns","uid":"52464aa9-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"880","creationTimestamp":"2020-07-21T09:41:15Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"kube-dns","kubernetes.io/cluster-service":"true","kubernetes.io/name":"KubeDNS"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T09:42:04Z"}},"subsets":[{"addresses":[{"ip":"10.60.0.4","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"kube-system","name":"kube-dns-5995c95f64-k66sb","uid":"52599d30-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"874"}},{"ip":"10.60.2.3","nodeName":"gke-west-1-default-pool-d0db0902-7p8d","targetRef":{"kind":"Pod","namespace":"kube-system","name":"kube-dns-5995c95f64-hq9gq","uid":"5f8738ac-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"879"}}],"ports":[{"name":"dns","port":53,"protocol":"UDP"},{"name":"dns-tcp","port":53,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-web","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/endpoints/linkerd-web","uid":"18c2baf2-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41002","creationTimestamp":"2020-07-21T12:31:27Z","labels":{"linkerd.io/control-plane-component":"web","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:37:42Z"}},"subsets":[{"addresses":[{"ip":"10.60.0.23","nodeName":"gke-west-1-default-pool-d0db0902-ng7b","targetRef":{"kind":"Pod","namespace":"linkerd","name":"linkerd-web-7bf5f9778f-25dxv","uid":"e60eca7c-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"41001"}}],"ports":[{"name":"http","port":8084,"protocol":"TCP"},{"name":"admin-http","port":9994,"protocol":"TCP"}]}]},{"metadata":{"name":"linkerd-gateway","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/linkerd-gateway","uid":"29d94c45-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"42921","creationTimestamp":"2020-07-21T12:46:14Z","annotations":{"endpoints.kubernetes.io/last-change-trigger-time":"2020-07-21T12:46:31Z"}},"subsets":[{"addresses":[{"ip":"10.60.1.30","nodeName":"gke-west-1-default-pool-d0db0902-lr34","targetRef":{"kind":"Pod","namespace":"linkerd-multicluster","name":"linkerd-gateway-7b7fd866d6-b4p9j","uid":"2a5ed397-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"42919"}}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"},{"name":"mc-gateway","port":4143,"protocol":"TCP"}]}]},{"metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east","uid":"3a6dd1ab-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"44508","creationTimestamp":"2020-07-21T12:53:52Z","labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]},{"metadata":{"name":"kubernetes","namespace":"default","selfLink":"/api/v1/namespaces/default/endpoints/kubernetes","uid":"471aaae9-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"147","creationTimestamp":"2020-07-21T09:40:56Z"},"subsets":[{"addresses":[{"ip":"35.247.37.55"}],"ports":[{"name":"https","port":443,"protocol":"TCP"}]}]}]}
I0721 13:51:37.920451       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/namespaces?limit=500&resourceVersion=0 200 OK in 12 milliseconds
I0721 13:51:37.920657       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.920701       1 round_trippers.go:452]     Audit-Id: 45a35968-1465-4a49-9586-916495737dd4
I0721 13:51:37.920736       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.920872       1 round_trippers.go:452]     Content-Length: 2984
I0721 13:51:37.920885       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:37.920961       1 request.go:1017] Response Body: {"kind":"NamespaceList","apiVersion":"v1","metadata":{"selfLink":"/api/v1/namespaces","resourceVersion":"45066"},"items":[{"metadata":{"name":"kube-system","selfLink":"/api/v1/namespaces/kube-system","uid":"461552de-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"167","creationTimestamp":"2020-07-21T09:40:55Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"kube-system\"}}\n"}},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"kube-public","selfLink":"/api/v1/namespaces/kube-public","uid":"461aac13-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"21","creationTimestamp":"2020-07-21T09:40:55Z"},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"kube-node-lease","selfLink":"/api/v1/namespaces/kube-node-lease","uid":"46296495-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"34","creationTimestamp":"2020-07-21T09:40:55Z"},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"default","selfLink":"/api/v1/namespaces/default","uid":"47173355-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"143","creationTimestamp":"2020-07-21T09:40:56Z"},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"linkerd","selfLink":"/api/v1/namespaces/linkerd","uid":"0abf46a4-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39081","creationTimestamp":"2020-07-21T12:31:03Z","labels":{"config.linkerd.io/admission-webhooks":"disabled","linkerd.io/control-plane-ns":"linkerd","linkerd.io/is-control-plane":"true"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{\"linkerd.io/inject\":\"disabled\"},\"labels\":{\"config.linkerd.io/admission-webhooks\":\"disabled\",\"linkerd.io/control-plane-ns\":\"linkerd\",\"linkerd.io/is-control-plane\":\"true\"},\"name\":\"linkerd\"}}\n","linkerd.io/inject":"disabled"}},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster","uid":"28e9c7a9-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"42811","creationTimestamp":"2020-07-21T12:46:13Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"linkerd-multicluster\"}}\n"}},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}},{"metadata":{"name":"test","selfLink":"/api/v1/namespaces/test","uid":"9611f202-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45066","creationTimestamp":"2020-07-21T12:56:25Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"test\"}}\n"}},"spec":{"finalizers":["kubernetes"]},"status":{"phase":"Active"}}]}
I0721 13:51:37.922185       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces?allowWatchBookmarks=true&resourceVersion=45066&timeout=8m1s&timeoutSeconds=481&watch=true'
I0721 13:51:37.922755       1 request.go:1017] Response Body: {"kind":"ServiceList","apiVersion":"v1","metadata":{"selfLink":"/api/v1/services","resourceVersion":"52132"},"items":[{"metadata":{"name":"linkerd-web","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-web","uid":"18bfc44f-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39286","creationTimestamp":"2020-07-21T12:31:27Z","labels":{"linkerd.io/control-plane-component":"web","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"web\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-web\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8084,\"targetPort\":8084},{\"name\":\"admin-http\",\"port\":9994,\"targetPort\":9994}],\"selector\":{\"linkerd.io/control-plane-component\":\"web\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":8084,"targetPort":8084},{"name":"admin-http","protocol":"TCP","port":9994,"targetPort":9994}],"selector":{"linkerd.io/control-plane-component":"web"},"clusterIP":"10.126.2.145","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-proxy-injector","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-proxy-injector","uid":"19c5c76b-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39320","creationTimestamp":"2020-07-21T12:31:28Z","labels":{"linkerd.io/control-plane-component":"proxy-injector","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"proxy-injector\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-proxy-injector\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"proxy-injector\",\"port\":443,\"targetPort\":\"proxy-injector\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"proxy-injector\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"proxy-injector","protocol":"TCP","port":443,"targetPort":"proxy-injector"}],"selector":{"linkerd.io/control-plane-component":"proxy-injector"},"clusterIP":"10.126.3.142","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-grafana","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-grafana","uid":"1cd7939a-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39389","creationTimestamp":"2020-07-21T12:31:33Z","labels":{"linkerd.io/control-plane-component":"grafana","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"grafana\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-grafana\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":3000,\"targetPort\":3000}],\"selector\":{\"linkerd.io/control-plane-component\":\"grafana\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":3000,"targetPort":3000}],"selector":{"linkerd.io/control-plane-component":"grafana"},"clusterIP":"10.126.11.127","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-gateway","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/services/linkerd-gateway","uid":"29d7561b-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"52132","creationTimestamp":"2020-07-21T12:46:14Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\",\"mirror.linkerd.io/gateway-identity\":\"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local\",\"mirror.linkerd.io/multicluster-gateway\":\"true\",\"mirror.linkerd.io/probe-path\":\"/health\",\"mirror.linkerd.io/probe-period\":\"3\"},\"name\":\"linkerd-gateway\",\"namespace\":\"linkerd-multicluster\"},\"spec\":{\"ports\":[{\"name\":\"mc-gateway\",\"port\":4143,\"protocol\":\"TCP\"},{\"name\":\"mc-probe\",\"port\":4181,\"protocol\":\"TCP\"}],\"selector\":{\"app\":\"linkerd-gateway\"},\"type\":\"LoadBalancer\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839","mirror.linkerd.io/gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/multicluster-gateway":"true","mirror.linkerd.io/probe-path":"/health","mirror.linkerd.io/probe-period":"3"}},"spec":{"ports":[{"name":"mc-gateway","protocol":"TCP","port":4143,"targetPort":4143,"nodePort":31619},{"name":"mc-probe","protocol":"TCP","port":4181,"targetPort":4181,"nodePort":31479}],"selector":{"app":"linkerd-gateway"},"clusterIP":"10.126.8.215","type":"LoadBalancer","sessionAffinity":"None","externalTrafficPolicy":"Cluster"},"status":{"loadBalancer":{"ingress":[{"ip":"34.105.20.106"}]}}},{"metadata":{"name":"kube-dns","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/kube-dns","uid":"524571dc-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"305","creationTimestamp":"2020-07-21T09:41:15Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"kube-dns","kubernetes.io/cluster-service":"true","kubernetes.io/name":"KubeDNS"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"k8s-app\":\"kube-dns\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"KubeDNS\"},\"name\":\"kube-dns\",\"namespace\":\"kube-system\"},\"spec\":{\"clusterIP\":\"10.126.0.10\",\"ports\":[{\"name\":\"dns\",\"port\":53,\"protocol\":\"UDP\"},{\"name\":\"dns-tcp\",\"port\":53,\"protocol\":\"TCP\"}],\"selector\":{\"k8s-app\":\"kube-dns\"}}}\n"}},"spec":{"ports":[{"name":"dns","protocol":"UDP","port":53,"targetPort":53},{"name":"dns-tcp","protocol":"TCP","port":53,"targetPort":53}],"selector":{"k8s-app":"kube-dns"},"clusterIP":"10.126.0.10","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"heapster","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/heapster","uid":"529bad24-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"339","creationTimestamp":"2020-07-21T09:41:16Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Heapster"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"Heapster\"},\"name\":\"heapster\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"port\":80,\"targetPort\":8082}],\"selector\":{\"k8s-app\":\"heapster\"}}}\n"}},"spec":{"ports":[{"protocol":"TCP","port":80,"targetPort":8082}],"selector":{"k8s-app":"heapster"},"clusterIP":"10.126.13.241","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"metrics-server","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/metrics-server","uid":"5427b45c-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"438","creationTimestamp":"2020-07-21T09:41:18Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Metrics-server"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"Metrics-server\"},\"name\":\"metrics-server\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"port\":443,\"protocol\":\"TCP\",\"targetPort\":\"https\"}],\"selector\":{\"k8s-app\":\"metrics-server\"}}}\n"}},"spec":{"ports":[{"protocol":"TCP","port":443,"targetPort":"https"}],"selector":{"k8s-app":"metrics-server"},"clusterIP":"10.126.3.190","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-dst","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-dst","uid":"17d0fcf8-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39264","creationTimestamp":"2020-07-21T12:31:25Z","labels":{"linkerd.io/control-plane-component":"destination","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"destination\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-dst\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8086,\"targetPort\":8086}],\"selector\":{\"linkerd.io/control-plane-component\":\"destination\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8086,"targetPort":8086}],"selector":{"linkerd.io/control-plane-component":"destination"},"clusterIP":"10.126.1.95","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"frontend","namespace":"test","selfLink":"/api/v1/namespaces/test/services/frontend","uid":"96b46dcf-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45080","creationTimestamp":"2020-07-21T12:56:26Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"name\":\"frontend\",\"namespace\":\"test\"},\"spec\":{\"ports\":[{\"name\":\"service\",\"port\":8080}],\"selector\":{\"app\":\"frontend\"}}}\n"}},"spec":{"ports":[{"name":"service","protocol":"TCP","port":8080,"targetPort":8080}],"selector":{"app":"frontend"},"clusterIP":"10.126.15.23","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo-east","uid":"8a013a75-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46631","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-resource-version":"46644","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"clusterIP":"10.126.11.85","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-tap","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-tap","uid":"1abe0688-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39350","creationTimestamp":"2020-07-21T12:31:30Z","labels":{"linkerd.io/control-plane-component":"tap","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"tap\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-tap\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8088,\"targetPort\":8088},{\"name\":\"apiserver\",\"port\":443,\"targetPort\":\"apiserver\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"tap\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8088,"targetPort":8088},{"name":"apiserver","protocol":"TCP","port":443,"targetPort":"apiserver"}],"selector":{"linkerd.io/control-plane-component":"tap"},"clusterIP":"10.126.0.32","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"kubernetes","namespace":"default","selfLink":"/api/v1/namespaces/default/services/kubernetes","uid":"47185dc1-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"145","creationTimestamp":"2020-07-21T09:40:56Z","labels":{"component":"apiserver","provider":"kubernetes"}},"spec":{"ports":[{"name":"https","protocol":"TCP","port":443,"targetPort":443}],"clusterIP":"10.126.0.1","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-controller-api","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-controller-api","uid":"1732c3b7-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39245","creationTimestamp":"2020-07-21T12:31:24Z","labels":{"linkerd.io/control-plane-component":"controller","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"controller\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-controller-api\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8085,\"targetPort\":8085}],\"selector\":{\"linkerd.io/control-plane-component\":\"controller\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":8085,"targetPort":8085}],"selector":{"linkerd.io/control-plane-component":"controller"},"clusterIP":"10.126.13.101","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"podinfo","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo","uid":"97012770-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"45085","creationTimestamp":"2020-07-21T12:56:27Z","labels":{"app":"podinfo"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"app\":\"podinfo\"},\"name\":\"podinfo\",\"namespace\":\"test\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":9898,\"protocol\":\"TCP\",\"targetPort\":\"http\"},{\"name\":\"grpc\",\"port\":9999,\"protocol\":\"TCP\",\"targetPort\":\"grpc\"}],\"selector\":{\"app\":\"podinfo\"},\"type\":\"ClusterIP\"}}\n"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"selector":{"app":"podinfo"},"clusterIP":"10.126.4.210","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/services/probe-gateway-east","uid":"c8b1f7ff-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"43820","creationTimestamp":"2020-07-21T12:50:41Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-gateway":"true"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"mirror.linkerd.io/cluster-name\":\"east\",\"mirror.linkerd.io/mirrored-gateway\":\"true\"},\"name\":\"probe-gateway-east\",\"namespace\":\"linkerd-multicluster\"},\"spec\":{\"ports\":[{\"name\":\"mc-probe\",\"port\":4181,\"protocol\":\"TCP\"}]}}\n"}},"spec":{"ports":[{"name":"mc-probe","protocol":"TCP","port":4181,"targetPort":4181}],"clusterIP":"10.126.2.73","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"default-http-backend","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/default-http-backend","uid":"527acb88-cb36-11ea-b4bb-42010a8a01c1","resourceVersion":"330","creationTimestamp":"2020-07-21T09:41:16Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"glbc","kubernetes.io/cluster-service":"true","kubernetes.io/name":"GLBCDefaultBackend"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"k8s-app\":\"glbc\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"GLBCDefaultBackend\"},\"name\":\"default-http-backend\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":80,\"protocol\":\"TCP\",\"targetPort\":8080}],\"selector\":{\"k8s-app\":\"glbc\"},\"type\":\"NodePort\"}}\n"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":80,"targetPort":8080,"nodePort":31678}],"selector":{"k8s-app":"glbc"},"clusterIP":"10.126.10.199","type":"NodePort","sessionAffinity":"None","externalTrafficPolicy":"Cluster"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-identity","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-identity","uid":"16912406-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39227","creationTimestamp":"2020-07-21T12:31:23Z","labels":{"linkerd.io/control-plane-component":"identity","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"identity\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-identity\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8080,\"targetPort\":8080}],\"selector\":{\"linkerd.io/control-plane-component\":\"identity\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8080,"targetPort":8080}],"selector":{"linkerd.io/control-plane-component":"identity"},"clusterIP":"10.126.10.127","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-sp-validator","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-sp-validator","uid":"1a123d22-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39327","creationTimestamp":"2020-07-21T12:31:29Z","labels":{"linkerd.io/control-plane-component":"sp-validator","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"sp-validator\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-sp-validator\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"sp-validator\",\"port\":443,\"targetPort\":\"sp-validator\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"sp-validator\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"sp-validator","protocol":"TCP","port":443,"targetPort":"sp-validator"}],"selector":{"linkerd.io/control-plane-component":"sp-validator"},"clusterIP":"10.126.0.190","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-prometheus","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-prometheus","uid":"1e7c9a1d-cb4e-11ea-b4bb-42010a8a01c1","resourceVersion":"39419","creationTimestamp":"2020-07-21T12:31:36Z","labels":{"linkerd.io/control-plane-component":"prometheus","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"prometheus\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-prometheus\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"admin-http\",\"port\":9090,\"targetPort\":9090}],\"selector\":{\"linkerd.io/control-plane-component\":\"prometheus\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"admin-http","protocol":"TCP","port":9090,"targetPort":9090}],"selector":{"linkerd.io/control-plane-component":"prometheus"},"clusterIP":"10.126.14.173","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}]}
I0721 13:51:37.923243       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/endpoints?allowWatchBookmarks=true&resourceVersion=56912&timeout=9m42s&timeoutSeconds=582&watch=true'
I0721 13:51:37.925083       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/namespaces?allowWatchBookmarks=true&resourceVersion=45066&timeout=8m1s&timeoutSeconds=481&watch=true 200 OK in 1 milliseconds
I0721 13:51:37.925222       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.925306       1 round_trippers.go:452]     Audit-Id: 588598a7-9fd8-4b2e-a1bf-13713a424d96
I0721 13:51:37.925393       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.925451       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:37.925723       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/endpoints?allowWatchBookmarks=true&resourceVersion=56912&timeout=9m42s&timeoutSeconds=582&watch=true 200 OK in 1 milliseconds
I0721 13:51:37.925834       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.925910       1 round_trippers.go:452]     Audit-Id: 9f8ef566-f588-4b2a-852e-4bc66763e2d9
I0721 13:51:37.925988       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.926081       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:37.928472       1 round_trippers.go:423] curl -k -v -XGET  -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" 'https://10.126.0.1:443/api/v1/services?allowWatchBookmarks=true&resourceVersion=52132&timeout=8m19s&timeoutSeconds=499&watch=true'
I0721 13:51:37.930424       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/services?allowWatchBookmarks=true&resourceVersion=52132&timeout=8m19s&timeoutSeconds=499&watch=true 200 OK in 1 milliseconds
I0721 13:51:37.930632       1 round_trippers.go:449] Response Headers:
I0721 13:51:37.930718       1 round_trippers.go:452]     Audit-Id: 9614dcb9-69c1-497f-a502-86d6f9d0a717
I0721 13:51:37.930794       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:37.930863       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:37 GMT
I0721 13:51:38.007164       1 shared_informer.go:227] caches populated
time="2020-07-21T13:51:38Z" level=info msg="caches synced"
I0721 13:51:38.007615       1 round_trippers.go:423] curl -k -v -XGET  -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "Accept: application/json" 'https://10.126.0.1:443/apis/multicluster.linkerd.io/v1alpha1/namespaces/linkerd-multicluster/links?watch=true'
I0721 13:51:38.010736       1 round_trippers.go:443] GET https://10.126.0.1:443/apis/multicluster.linkerd.io/v1alpha1/namespaces/linkerd-multicluster/links?watch=true 200 OK in 3 milliseconds
I0721 13:51:38.010964       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.011044       1 round_trippers.go:452]     Audit-Id: 3d0f51ea-7f52-43a4-a228-3d1114493923
I0721 13:51:38.011117       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.011166       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
time="2020-07-21T13:51:38Z" level=info msg="Got updated link east: {Name:east Namespace:linkerd-multicluster TargetClusterName:east TargetClusterDomain:cluster.local TargetClusterLinkerdNamespace:linkerd ClusterCredentialsSecret:cluster-credentials-east GatewayAddress:34.74.94.207 GatewayPort:4143 GatewayIdentity:linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local ProbeSpec:ProbeSpec: {path: /health, port: 4181, period: 3s}}"
I0721 13:51:38.012964       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/secrets/cluster-credentials-east'
I0721 13:51:38.017316       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/secrets/cluster-credentials-east 200 OK in 4 milliseconds
I0721 13:51:38.017360       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.017368       1 round_trippers.go:452]     Audit-Id: 4d0cf161-e03c-45ec-8ec5-deabb8ccd784
I0721 13:51:38.017373       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.017377       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.018290       1 request.go:1017] Response Body: {"kind":"Secret","apiVersion":"v1","metadata":{"name":"cluster-credentials-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/secrets/cluster-credentials-east","uid":"c4e1f900-cb50-11ea-b4bb-42010a8a01c1","resourceVersion":"43772","creationTimestamp":"2020-07-21T12:50:34Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"data\":{\"kubeconfig\":\"YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSRVJFTkRRV1pUWjBGM1NVSkJaMGxTUVUwdll6ZE9SME5pVVZkdFlYVnhaallyUjBWaFYxVjNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGNLVEhwRmRFMURjMGRCTVZWRlFYaE5hMDFVYkdsWmJVa3lUVmRWZEZsVVJtMWFhVEF3VDBkR2JVeFhTbWhQUkZGMFRucFNiRTV0Um1wYWJWRXdUbTFWTlFwTlFqUllSRlJKZDAxRVkzbE5WRUUwVFhwak1FMVdiMWhFVkVreFRVUmplVTFFUVRWTmVtTXdUVlp2ZDB4NlJYUk5RM05IUVRGVlJVRjRUV3ROVkd4cENsbHRTVEpOVjFWMFdWUkdiVnBwTURCUFIwWnRURmRLYUU5RVVYUk9lbEpzVG0xR2FscHRVVEJPYlZVMVRVbEpRa2xxUVU1Q1oydHhhR3RwUnpsM01FSUtRVkZGUmtGQlQwTkJVVGhCVFVsSlFrTm5TME5CVVVWQmVuQlVhVVZFWW1rdlZEaHhhVFZpVXpFNU0xaGlOV3MwWlhKUWNYTnFlRWRpYVcwMGQwcFdWZ3BRZG5SaWIwdElUWEZXWms1amMybGlOVWhIVFVGRFlWcEhVa0ZtZG1acFdqUlRURzkwVFVkYVRHZERjMjFNYzJWMWFraDRaRVpqTDBKVE1tUkROekpKQ25odGMyNVNRelYxTjFoaFVWVTBOMUZSTURnNWNVMVpTMjlJU1ZWSlVWSkdjMHN3ZUZad2MxZHdibTFKT1hwaFNtUnBlWHBQV0dKV2RXY3plWGMzVkZjS1UwcDBkeTl6VW14a1ZYVllXWEpEWjFSV2QwSjVibE5pYlhOMlRVRlFTWFZyZGxNeGNFOVNlV2hZY1ZsblRIQk9VMFJPVWsxUlFqTklkRzAwVld4cFNncG9NWGhYZFVsUGVGWnBSQ3RuYzJGeVRGTmpiWGxMUkdKM1QxWXplVlY0ZGsxc1luRlZRVTFIVTFsWFRqQnJkbXRKWVc1clUzWlVSR05LWm5KeWJTOWpDamRQWjFOc2NWRnVXVnBHVFVWQ1NUTlpOV3hQWTNWQ2NHOHJNM1JtUVVaVVp6QkhhMVJPTmtGcldIbzVhM2RKUkVGUlFVSnZlVTEzU1ZSQlQwSm5UbFlLU0ZFNFFrRm1PRVZDUVUxRFFXZFJkMFIzV1VSV1VqQlVRVkZJTDBKQlZYZEJkMFZDTDNwQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlFVOURRVkZGUVFwYVZHSktWazFNT0hsb1JXcFBPSEZrUkhFek1qWlNUWHBDTkdGdGRrVktTVmRoYXpkRGMyZFRiemx0V1RsdVJVSTRWV0pqYzNOR1lqTmFTR1o2VDFackNtVnRUMnQwSzNGTlUyazBSMFpWZUdJd1EyWkxabFJsVVRKaFUyRlFhRUZGYXpWR2QybFFRbFpKWjJKSFRtMXVXazVLUWxaRUsxVkNUazgyUzNWNWMxa0tOR3RuVkdaNk0wTkJWUzh6YzIxUE9WQmhWamhtTTNvclMyVlFhM1ZJVEdwdmNFTkVkM04xVW5sd09VNXRWRzlGVTBSTmJUVjRSa3hMUVhCU1VqQkdXZ3BPUW5GU1ZrZHZSVkpuWm5GVFJubE9LM04zZGxSNE0wUnhkbWxyUlZNeWFVTnhiRk5vVEVsQ1NURkNUV2hhWjNobFVFZHNWa1IzVUVZNFIzRlhhVzlOQ2pGSlMzbHFkMnRsYUVwcU9YcFJWR1JvWTNsalpHd3hNUzh5ZEdWMFYyOXdTREZ6VEZOT1UzaFRPR1ZGT0c1UFdtbElhaXQzYm1sVFlWTTJjRTB6WWtJS2IyaFhUVVZwU0c1TlZFbE1kM1ZYTkhoU1RGcFhVVDA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLCiAgICBzZXJ2ZXI6IGh0dHBzOi8vMzQuNzMuOTUuMTkzCiAgbmFtZTogZ2tlX2ZpbmFsLXllYXItcmVzZWFyY2hfdXMtZWFzdDEtYl9lYXN0LTEKY29udGV4dHM6Ci0gY29udGV4dDoKICAgIGNsdXN0ZXI6IGdrZV9maW5hbC15ZWFyLXJlc2VhcmNoX3VzLWVhc3QxLWJfZWFzdC0xCiAgICBuYW1lc3BhY2U6IGxpbmtlcmQtbXVsdGljbHVzdGVyCiAgICB1c2VyOiBsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdAogIG5hbWU6IGVhc3QKY3VycmVudC1jb250ZXh0OiBlYXN0CmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogbGlua2VyZC1zZXJ2aWNlLW1pcnJvci1yZW1vdGUtYWNjZXNzLWRlZmF1bHQKICB1c2VyOgogICAgdG9rZW46IGV5SmhiR2NpT2lKU1V6STFOaUlzSW10cFpDSTZJaUo5LmV5SnBjM01pT2lKcmRXSmxjbTVsZEdWekwzTmxjblpwWTJWaFkyTnZkVzUwSWl3aWEzVmlaWEp1WlhSbGN5NXBieTl6WlhKMmFXTmxZV05qYjNWdWRDOXVZVzFsYzNCaFkyVWlPaUpzYVc1clpYSmtMVzExYkhScFkyeDFjM1JsY2lJc0ltdDFZbVZ5Ym1WMFpYTXVhVzh2YzJWeWRtbGpaV0ZqWTI5MWJuUXZjMlZqY21WMExtNWhiV1VpT2lKc2FXNXJaWEprTFhObGNuWnBZMlV0YldseWNtOXlMWEpsYlc5MFpTMWhZMk5sYzNNdFpHVm1ZWFZzZEMxMGIydGxiaTB5ZURWb1pDSXNJbXQxWW1WeWJtVjBaWE11YVc4dmMyVnlkbWxqWldGalkyOTFiblF2YzJWeWRtbGpaUzFoWTJOdmRXNTBMbTVoYldVaU9pSnNhVzVyWlhKa0xYTmxjblpwWTJVdGJXbHljbTl5TFhKbGJXOTBaUzFoWTJObGMzTXRaR1ZtWVhWc2RDSXNJbXQxWW1WeWJtVjBaWE11YVc4dmMyVnlkbWxqWldGalkyOTFiblF2YzJWeWRtbGpaUzFoWTJOdmRXNTBMblZwWkNJNklqSmxZMk0xTkdJekxXTmlOVEF0TVRGbFlTMDRPV1ExTFRReU1ERXdZVGhsTURFd01pSXNJbk4xWWlJNkluTjVjM1JsYlRwelpYSjJhV05sWVdOamIzVnVkRHBzYVc1clpYSmtMVzExYkhScFkyeDFjM1JsY2pwc2FXNXJaWEprTFhObGNuWnBZMlV0YldseWNtOXlMWEpsYlc5MFpTMWhZMk5sYzNNdFpHVm1ZWFZzZENKOS54VVhORm90UlBuS0NZVy1hM0pOWXpGNUtTbDB6eEV0ZHdSRHI3WnhDLUNWZmowa2tiaGNEOF9nVHRaRTdxbklmbE91aWpOTURiVUZQSXBsTWxDWl9CN2RlUU04ano0MWt5YnJjRldYQlFYbmlGUDJObW54azd1bXhELVVwSWMyc1h5c3pXdTdNWkZOMWJfTUw0UWUxalFHM3V3alpERmhYLVBuaUdxVFkxZWlhMWMxUGF3TlJrVjFNT0h1NWp2S0txYWhJNHowWldPRzhIdEpZbDBhLURidHY0QVRwd0xINXBKN0IxdjdQdEZFcHVnRWxTc2VzUGhqbFJ3NHBFVTlFZnl6ak95OEhtN0xuZG13ZG5aMC1XSGRLU0VnQjZBWUl1YTZHUkNFTXpNMWJuY0V0czJxY0t5MjFFSXYwbmIySUFOY2dQb0dIcG5XSGZxT3RCX05yWEEK\"},\"kind\":\"Secret\",\"metadata\":{\"annotations\":{\"mirror.linkerd.io/cluster-name\":\"east\",\"mirror.linkerd.io/remote-cluster-domain\":\"cluster.local\",\"mirror.linkerd.io/remote-cluster-l5d-ns\":\"linkerd\"},\"creationTimestamp\":null,\"name\":\"cluster-credentials-east\",\"namespace\":\"linkerd-multicluster\"},\"type\":\"mirror.linkerd.io/remote-kubeconfig\"}\n","mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/remote-cluster-domain":"cluster.local","mirror.linkerd.io/remote-cluster-l5d-ns":"linkerd"}},"data":{"kubeconfig":"YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSRVJFTkRRV1pUWjBGM1NVSkJaMGxTUVUwdll6ZE9SME5pVVZkdFlYVnhaallyUjBWaFYxVjNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGNLVEhwRmRFMURjMGRCTVZWRlFYaE5hMDFVYkdsWmJVa3lUVmRWZEZsVVJtMWFhVEF3VDBkR2JVeFhTbWhQUkZGMFRucFNiRTV0Um1wYWJWRXdUbTFWTlFwTlFqUllSRlJKZDAxRVkzbE5WRUUwVFhwak1FMVdiMWhFVkVreFRVUmplVTFFUVRWTmVtTXdUVlp2ZDB4NlJYUk5RM05IUVRGVlJVRjRUV3ROVkd4cENsbHRTVEpOVjFWMFdWUkdiVnBwTURCUFIwWnRURmRLYUU5RVVYUk9lbEpzVG0xR2FscHRVVEJPYlZVMVRVbEpRa2xxUVU1Q1oydHhhR3RwUnpsM01FSUtRVkZGUmtGQlQwTkJVVGhCVFVsSlFrTm5TME5CVVVWQmVuQlVhVVZFWW1rdlZEaHhhVFZpVXpFNU0xaGlOV3MwWlhKUWNYTnFlRWRpYVcwMGQwcFdWZ3BRZG5SaWIwdElUWEZXWms1amMybGlOVWhIVFVGRFlWcEhVa0ZtZG1acFdqUlRURzkwVFVkYVRHZERjMjFNYzJWMWFraDRaRVpqTDBKVE1tUkROekpKQ25odGMyNVNRelYxTjFoaFVWVTBOMUZSTURnNWNVMVpTMjlJU1ZWSlVWSkdjMHN3ZUZad2MxZHdibTFKT1hwaFNtUnBlWHBQV0dKV2RXY3plWGMzVkZjS1UwcDBkeTl6VW14a1ZYVllXWEpEWjFSV2QwSjVibE5pYlhOMlRVRlFTWFZyZGxNeGNFOVNlV2hZY1ZsblRIQk9VMFJPVWsxUlFqTklkRzAwVld4cFNncG9NWGhYZFVsUGVGWnBSQ3RuYzJGeVRGTmpiWGxMUkdKM1QxWXplVlY0ZGsxc1luRlZRVTFIVTFsWFRqQnJkbXRKWVc1clUzWlVSR05LWm5KeWJTOWpDamRQWjFOc2NWRnVXVnBHVFVWQ1NUTlpOV3hQWTNWQ2NHOHJNM1JtUVVaVVp6QkhhMVJPTmtGcldIbzVhM2RKUkVGUlFVSnZlVTEzU1ZSQlQwSm5UbFlLU0ZFNFFrRm1PRVZDUVUxRFFXZFJkMFIzV1VSV1VqQlVRVkZJTDBKQlZYZEJkMFZDTDNwQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlFVOURRVkZGUVFwYVZHSktWazFNT0hsb1JXcFBPSEZrUkhFek1qWlNUWHBDTkdGdGRrVktTVmRoYXpkRGMyZFRiemx0V1RsdVJVSTRWV0pqYzNOR1lqTmFTR1o2VDFackNtVnRUMnQwSzNGTlUyazBSMFpWZUdJd1EyWkxabFJsVVRKaFUyRlFhRUZGYXpWR2QybFFRbFpKWjJKSFRtMXVXazVLUWxaRUsxVkNUazgyUzNWNWMxa0tOR3RuVkdaNk0wTkJWUzh6YzIxUE9WQmhWamhtTTNvclMyVlFhM1ZJVEdwdmNFTkVkM04xVW5sd09VNXRWRzlGVTBSTmJUVjRSa3hMUVhCU1VqQkdXZ3BPUW5GU1ZrZHZSVkpuWm5GVFJubE9LM04zZGxSNE0wUnhkbWxyUlZNeWFVTnhiRk5vVEVsQ1NURkNUV2hhWjNobFVFZHNWa1IzVUVZNFIzRlhhVzlOQ2pGSlMzbHFkMnRsYUVwcU9YcFJWR1JvWTNsalpHd3hNUzh5ZEdWMFYyOXdTREZ6VEZOT1UzaFRPR1ZGT0c1UFdtbElhaXQzYm1sVFlWTTJjRTB6WWtJS2IyaFhUVVZwU0c1TlZFbE1kM1ZYTkhoU1RGcFhVVDA5Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLCiAgICBzZXJ2ZXI6IGh0dHBzOi8vMzQuNzMuOTUuMTkzCiAgbmFtZTogZ2tlX2ZpbmFsLXllYXItcmVzZWFyY2hfdXMtZWFzdDEtYl9lYXN0LTEKY29udGV4dHM6Ci0gY29udGV4dDoKICAgIGNsdXN0ZXI6IGdrZV9maW5hbC15ZWFyLXJlc2VhcmNoX3VzLWVhc3QxLWJfZWFzdC0xCiAgICBuYW1lc3BhY2U6IGxpbmtlcmQtbXVsdGljbHVzdGVyCiAgICB1c2VyOiBsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdAogIG5hbWU6IGVhc3QKY3VycmVudC1jb250ZXh0OiBlYXN0CmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogbGlua2VyZC1zZXJ2aWNlLW1pcnJvci1yZW1vdGUtYWNjZXNzLWRlZmF1bHQKICB1c2VyOgogICAgdG9rZW46IGV5SmhiR2NpT2lKU1V6STFOaUlzSW10cFpDSTZJaUo5LmV5SnBjM01pT2lKcmRXSmxjbTVsZEdWekwzTmxjblpwWTJWaFkyTnZkVzUwSWl3aWEzVmlaWEp1WlhSbGN5NXBieTl6WlhKMmFXTmxZV05qYjNWdWRDOXVZVzFsYzNCaFkyVWlPaUpzYVc1clpYSmtMVzExYkhScFkyeDFjM1JsY2lJc0ltdDFZbVZ5Ym1WMFpYTXVhVzh2YzJWeWRtbGpaV0ZqWTI5MWJuUXZjMlZqY21WMExtNWhiV1VpT2lKc2FXNXJaWEprTFhObGNuWnBZMlV0YldseWNtOXlMWEpsYlc5MFpTMWhZMk5sYzNNdFpHVm1ZWFZzZEMxMGIydGxiaTB5ZURWb1pDSXNJbXQxWW1WeWJtVjBaWE11YVc4dmMyVnlkbWxqWldGalkyOTFiblF2YzJWeWRtbGpaUzFoWTJOdmRXNTBMbTVoYldVaU9pSnNhVzVyWlhKa0xYTmxjblpwWTJVdGJXbHljbTl5TFhKbGJXOTBaUzFoWTJObGMzTXRaR1ZtWVhWc2RDSXNJbXQxWW1WeWJtVjBaWE11YVc4dmMyVnlkbWxqWldGalkyOTFiblF2YzJWeWRtbGpaUzFoWTJOdmRXNTBMblZwWkNJNklqSmxZMk0xTkdJekxXTmlOVEF0TVRGbFlTMDRPV1ExTFRReU1ERXdZVGhsTURFd01pSXNJbk4xWWlJNkluTjVjM1JsYlRwelpYSjJhV05sWVdOamIzVnVkRHBzYVc1clpYSmtMVzExYkhScFkyeDFjM1JsY2pwc2FXNXJaWEprTFhObGNuWnBZMlV0YldseWNtOXlMWEpsYlc5MFpTMWhZMk5sYzNNdFpHVm1ZWFZzZENKOS54VVhORm90UlBuS0NZVy1hM0pOWXpGNUtTbDB6eEV0ZHdSRHI3WnhDLUNWZmowa2tiaGNEOF9nVHRaRTdxbklmbE91aWpOTURiVUZQSXBsTWxDWl9CN2RlUU04ano0MWt5YnJjRldYQlFYbmlGUDJObW54azd1bXhELVVwSWMyc1h5c3pXdTdNWkZOMWJfTUw0UWUxalFHM3V3alpERmhYLVBuaUdxVFkxZWlhMWMxUGF3TlJrVjFNT0h1NWp2S0txYWhJNHowWldPRzhIdEpZbDBhLURidHY0QVRwd0xINXBKN0IxdjdQdEZFcHVnRWxTc2VzUGhqbFJ3NHBFVTlFZnl6ak95OEhtN0xuZG13ZG5aMC1XSGRLU0VnQjZBWUl1YTZHUkNFTXpNMWJuY0V0czJxY0t5MjFFSXYwbmIySUFOY2dQb0dIcG5XSGZxT3RCX05yWEEK"},"type":"mirror.linkerd.io/remote-kubeconfig"}
time="2020-07-21T13:51:38Z" level=info msg="waiting for caches to sync"
I0721 13:51:38.023842       1 reflector.go:150] Starting reflector *v1.Service (10m0s) from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:38.023871       1 reflector.go:185] Listing and watching *v1.Service from pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:105
I0721 13:51:38.024268       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdC10b2tlbi0yeDVoZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjJlY2M1NGIzLWNiNTAtMTFlYS04OWQ1LTQyMDEwYThlMDEwMiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpsaW5rZXJkLW11bHRpY2x1c3RlcjpsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdCJ9.xUXNFotRPnKCYW-a3JNYzF5KSl0zxEtdwRDr7ZxC-CVfj0kkbhcD8_gTtZE7qnIflOuijNMDbUFPIplMlCZ_B7deQM8jz41kybrcFWXBQXniFP2Nmnxk7umxD-UpIc2sXyszWu7MZFN1b_ML4Qe1jQG3uwjZDFhX-PniGqTY1eia1c1PawNRkV1MOHu5jvKKqahI4z0ZWOG8HtJYl0a-Dbtv4ATpwLH5pJ7B1v7PtFEpugElSsesPhjlRw4pEU9EfyzjOy8Hm7LndmwdnZ0-WHdKSEgB6AYIua6GRCEMzM1bncEts2qcKy21EIv0nb2IANcgPoGHpnWHfqOtB_NrXA" 'https://34.73.95.193/api/v1/services?limit=500&resourceVersion=0'
I0721 13:51:38.298432       1 round_trippers.go:443] GET https://34.73.95.193/api/v1/services?limit=500&resourceVersion=0 200 OK in 274 milliseconds
I0721 13:51:38.298453       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.298458       1 round_trippers.go:452]     Audit-Id: 81636855-dbb3-49ce-892a-15479e2435ad
I0721 13:51:38.298462       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.298466       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.366038       1 request.go:1017] Response Body: {"kind":"ServiceList","apiVersion":"v1","metadata":{"selfLink":"/api/v1/services","resourceVersion":"51971"},"items":[{"metadata":{"name":"linkerd-controller-api","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-controller-api","uid":"141022aa-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39373","creationTimestamp":"2020-07-21T12:31:19Z","labels":{"linkerd.io/control-plane-component":"controller","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"controller\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-controller-api\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8085,\"targetPort\":8085}],\"selector\":{\"linkerd.io/control-plane-component\":\"controller\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":8085,"targetPort":8085}],"selector":{"linkerd.io/control-plane-component":"controller"},"clusterIP":"10.0.14.196","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"frontend","namespace":"test","selfLink":"/api/v1/namespaces/test/services/frontend","uid":"bd5e50ce-cb51-11ea-89d5-42010a8e0102","resourceVersion":"45373","creationTimestamp":"2020-07-21T12:57:31Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"name\":\"frontend\",\"namespace\":\"test\"},\"spec\":{\"ports\":[{\"name\":\"service\",\"port\":8080}],\"selector\":{\"app\":\"frontend\"}}}\n"}},"spec":{"ports":[{"name":"service","protocol":"TCP","port":8080,"targetPort":8080}],"selector":{"app":"frontend"},"clusterIP":"10.0.1.155","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"podinfo","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo","uid":"bd98d5af-cb51-11ea-89d5-42010a8e0102","resourceVersion":"46644","creationTimestamp":"2020-07-21T12:57:32Z","labels":{"app":"podinfo"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"mirror.linkerd.io/gateway-name\":\"linkerd-gateway\",\"mirror.linkerd.io/gateway-ns\":\"linkerd-multicluster\"},\"creationTimestamp\":\"2020-07-21T12:57:32Z\",\"labels\":{\"app\":\"podinfo\"},\"name\":\"podinfo\",\"namespace\":\"test\",\"resourceVersion\":\"46507\",\"selfLink\":\"/api/v1/namespaces/test/services/podinfo\",\"uid\":\"bd98d5af-cb51-11ea-89d5-42010a8e0102\"},\"spec\":{\"clusterIP\":\"10.0.4.226\",\"ports\":[{\"name\":\"http\",\"port\":9898,\"protocol\":\"TCP\",\"targetPort\":\"http\"},{\"name\":\"grpc\",\"port\":9999,\"protocol\":\"TCP\",\"targetPort\":\"grpc\"}],\"selector\":{\"app\":\"podinfo\"},\"sessionAffinity\":\"None\",\"type\":\"ClusterIP\"},\"status\":{\"loadBalancer\":{}}}\n","mirror.linkerd.io/gateway-name":"linkerd-gateway","mirror.linkerd.io/gateway-ns":"linkerd-multicluster"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"selector":{"app":"podinfo"},"clusterIP":"10.0.4.226","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"kube-dns","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/kube-dns","uid":"29cbc7ea-cb36-11ea-89d5-42010a8e0102","resourceVersion":"293","creationTimestamp":"2020-07-21T09:40:07Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"kube-dns","kubernetes.io/cluster-service":"true","kubernetes.io/name":"KubeDNS"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"k8s-app\":\"kube-dns\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"KubeDNS\"},\"name\":\"kube-dns\",\"namespace\":\"kube-system\"},\"spec\":{\"clusterIP\":\"10.0.0.10\",\"ports\":[{\"name\":\"dns\",\"port\":53,\"protocol\":\"UDP\"},{\"name\":\"dns-tcp\",\"port\":53,\"protocol\":\"TCP\"}],\"selector\":{\"k8s-app\":\"kube-dns\"}}}\n"}},"spec":{"ports":[{"name":"dns","protocol":"UDP","port":53,"targetPort":53},{"name":"dns-tcp","protocol":"TCP","port":53,"targetPort":53}],"selector":{"k8s-app":"kube-dns"},"clusterIP":"10.0.0.10","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"default-http-backend","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/default-http-backend","uid":"2a578fc3-cb36-11ea-89d5-42010a8e0102","resourceVersion":"321","creationTimestamp":"2020-07-21T09:40:08Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","k8s-app":"glbc","kubernetes.io/cluster-service":"true","kubernetes.io/name":"GLBCDefaultBackend"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"k8s-app\":\"glbc\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"GLBCDefaultBackend\"},\"name\":\"default-http-backend\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":80,\"protocol\":\"TCP\",\"targetPort\":8080}],\"selector\":{\"k8s-app\":\"glbc\"},\"type\":\"NodePort\"}}\n"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":80,"targetPort":8080,"nodePort":31511}],"selector":{"k8s-app":"glbc"},"clusterIP":"10.0.12.75","type":"NodePort","sessionAffinity":"None","externalTrafficPolicy":"Cluster"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-identity","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-identity","uid":"1399e234-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39357","creationTimestamp":"2020-07-21T12:31:18Z","labels":{"linkerd.io/control-plane-component":"identity","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"identity\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-identity\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8080,\"targetPort\":8080}],\"selector\":{\"linkerd.io/control-plane-component\":\"identity\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8080,"targetPort":8080}],"selector":{"linkerd.io/control-plane-component":"identity"},"clusterIP":"10.0.6.76","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-dst","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-dst","uid":"14817d05-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39390","creationTimestamp":"2020-07-21T12:31:20Z","labels":{"linkerd.io/control-plane-component":"destination","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"destination\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-dst\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8086,\"targetPort\":8086}],\"selector\":{\"linkerd.io/control-plane-component\":\"destination\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8086,"targetPort":8086}],"selector":{"linkerd.io/control-plane-component":"destination"},"clusterIP":"10.0.6.117","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-sp-validator","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-sp-validator","uid":"161296e3-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39453","creationTimestamp":"2020-07-21T12:31:22Z","labels":{"linkerd.io/control-plane-component":"sp-validator","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"sp-validator\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-sp-validator\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"sp-validator\",\"port\":443,\"targetPort\":\"sp-validator\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"sp-validator\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"sp-validator","protocol":"TCP","port":443,"targetPort":"sp-validator"}],"selector":{"linkerd.io/control-plane-component":"sp-validator"},"clusterIP":"10.0.14.224","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-prometheus","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-prometheus","uid":"1901912e-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39537","creationTimestamp":"2020-07-21T12:31:27Z","labels":{"linkerd.io/control-plane-component":"prometheus","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"prometheus\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-prometheus\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"admin-http\",\"port\":9090,\"targetPort\":9090}],\"selector\":{\"linkerd.io/control-plane-component\":\"prometheus\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"admin-http","protocol":"TCP","port":9090,"targetPort":9090}],"selector":{"linkerd.io/control-plane-component":"prometheus"},"clusterIP":"10.0.8.129","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-gateway","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/services/linkerd-gateway","uid":"2e1e3ce9-cb50-11ea-89d5-42010a8e0102","resourceVersion":"51971","creationTimestamp":"2020-07-21T12:46:21Z","annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\",\"mirror.linkerd.io/gateway-identity\":\"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local\",\"mirror.linkerd.io/multicluster-gateway\":\"true\",\"mirror.linkerd.io/probe-path\":\"/health\",\"mirror.linkerd.io/probe-period\":\"3\"},\"name\":\"linkerd-gateway\",\"namespace\":\"linkerd-multicluster\"},\"spec\":{\"ports\":[{\"name\":\"mc-gateway\",\"port\":4143,\"protocol\":\"TCP\"},{\"name\":\"mc-probe\",\"port\":4181,\"protocol\":\"TCP\"}],\"selector\":{\"app\":\"linkerd-gateway\"},\"type\":\"LoadBalancer\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839","mirror.linkerd.io/gateway-identity":"local","mirror.linkerd.io/multicluster-gateway":"true","mirror.linkerd.io/probe-path":"/health","mirror.linkerd.io/probe-period":"3"}},"spec":{"ports":[{"name":"mc-gateway","protocol":"TCP","port":4143,"targetPort":4143,"nodePort":32164},{"name":"mc-probe","protocol":"TCP","port":4181,"targetPort":4181,"nodePort":30260}],"selector":{"app":"linkerd-gateway"},"clusterIP":"10.0.6.101","type":"LoadBalancer","sessionAffinity":"None","externalTrafficPolicy":"Cluster"},"status":{"loadBalancer":{"ingress":[{"ip":"34.74.94.207"}]}}},{"metadata":{"name":"kubernetes","namespace":"default","selfLink":"/api/v1/namespaces/default/services/kubernetes","uid":"1dfb757e-cb36-11ea-89d5-42010a8e0102","resourceVersion":"146","creationTimestamp":"2020-07-21T09:39:47Z","labels":{"component":"apiserver","provider":"kubernetes"}},"spec":{"ports":[{"name":"https","protocol":"TCP","port":443,"targetPort":443}],"clusterIP":"10.0.0.1","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"heapster","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/heapster","uid":"2b16d77c-cb36-11ea-89d5-42010a8e0102","resourceVersion":"362","creationTimestamp":"2020-07-21T09:40:09Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Heapster"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"Heapster\"},\"name\":\"heapster\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"port\":80,\"targetPort\":8082}],\"selector\":{\"k8s-app\":\"heapster\"}}}\n"}},"spec":{"ports":[{"protocol":"TCP","port":80,"targetPort":8082}],"selector":{"k8s-app":"heapster"},"clusterIP":"10.0.0.155","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-web","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-web","uid":"152ba31a-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39410","creationTimestamp":"2020-07-21T12:31:21Z","labels":{"linkerd.io/control-plane-component":"web","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"web\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-web\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":8084,\"targetPort\":8084},{\"name\":\"admin-http\",\"port\":9994,\"targetPort\":9994}],\"selector\":{\"linkerd.io/control-plane-component\":\"web\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":8084,"targetPort":8084},{"name":"admin-http","protocol":"TCP","port":9994,"targetPort":9994}],"selector":{"linkerd.io/control-plane-component":"web"},"clusterIP":"10.0.11.56","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-proxy-injector","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-proxy-injector","uid":"15d9e841-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39445","creationTimestamp":"2020-07-21T12:31:22Z","labels":{"linkerd.io/control-plane-component":"proxy-injector","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"proxy-injector\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-proxy-injector\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"proxy-injector\",\"port\":443,\"targetPort\":\"proxy-injector\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"proxy-injector\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"proxy-injector","protocol":"TCP","port":443,"targetPort":"proxy-injector"}],"selector":{"linkerd.io/control-plane-component":"proxy-injector"},"clusterIP":"10.0.6.94","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-grafana","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-grafana","uid":"17aa0226-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39507","creationTimestamp":"2020-07-21T12:31:25Z","labels":{"linkerd.io/control-plane-component":"grafana","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"grafana\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-grafana\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"http\",\"port\":3000,\"targetPort\":3000}],\"selector\":{\"linkerd.io/control-plane-component\":\"grafana\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":3000,"targetPort":3000}],"selector":{"linkerd.io/control-plane-component":"grafana"},"clusterIP":"10.0.2.71","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"metrics-server","namespace":"kube-system","selfLink":"/api/v1/namespaces/kube-system/services/metrics-server","uid":"2da1932c-cb36-11ea-89d5-42010a8e0102","resourceVersion":"429","creationTimestamp":"2020-07-21T09:40:14Z","labels":{"addonmanager.kubernetes.io/mode":"Reconcile","kubernetes.io/cluster-service":"true","kubernetes.io/name":"Metrics-server"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"kubernetes.io/cluster-service\":\"true\",\"kubernetes.io/name\":\"Metrics-server\"},\"name\":\"metrics-server\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"port\":443,\"protocol\":\"TCP\",\"targetPort\":\"https\"}],\"selector\":{\"k8s-app\":\"metrics-server\"}}}\n"}},"spec":{"ports":[{"protocol":"TCP","port":443,"targetPort":"https"}],"selector":{"k8s-app":"metrics-server"},"clusterIP":"10.0.3.222","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}},{"metadata":{"name":"linkerd-tap","namespace":"linkerd","selfLink":"/api/v1/namespaces/linkerd/services/linkerd-tap","uid":"16911079-cb4e-11ea-89d5-42010a8e0102","resourceVersion":"39472","creationTimestamp":"2020-07-21T12:31:23Z","labels":{"linkerd.io/control-plane-component":"tap","linkerd.io/control-plane-ns":"linkerd"},"annotations":{"kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{\"linkerd.io/created-by\":\"linkerd/cli git-474b0839\"},\"labels\":{\"linkerd.io/control-plane-component\":\"tap\",\"linkerd.io/control-plane-ns\":\"linkerd\"},\"name\":\"linkerd-tap\",\"namespace\":\"linkerd\"},\"spec\":{\"ports\":[{\"name\":\"grpc\",\"port\":8088,\"targetPort\":8088},{\"name\":\"apiserver\",\"port\":443,\"targetPort\":\"apiserver\"}],\"selector\":{\"linkerd.io/control-plane-component\":\"tap\"},\"type\":\"ClusterIP\"}}\n","linkerd.io/created-by":"linkerd/cli git-474b0839"}},"spec":{"ports":[{"name":"grpc","protocol":"TCP","port":8088,"targetPort":8088},{"name":"apiserver","protocol":"TCP","port":443,"targetPort":"apiserver"}],"selector":{"linkerd.io/control-plane-component":"tap"},"clusterIP":"10.0.3.216","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}]}
I0721 13:51:38.366892       1 round_trippers.go:423] curl -k -v -XGET  -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdC10b2tlbi0yeDVoZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjJlY2M1NGIzLWNiNTAtMTFlYS04OWQ1LTQyMDEwYThlMDEwMiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpsaW5rZXJkLW11bHRpY2x1c3RlcjpsaW5rZXJkLXNlcnZpY2UtbWlycm9yLXJlbW90ZS1hY2Nlc3MtZGVmYXVsdCJ9.xUXNFotRPnKCYW-a3JNYzF5KSl0zxEtdwRDr7ZxC-CVfj0kkbhcD8_gTtZE7qnIflOuijNMDbUFPIplMlCZ_B7deQM8jz41kybrcFWXBQXniFP2Nmnxk7umxD-UpIc2sXyszWu7MZFN1b_ML4Qe1jQG3uwjZDFhX-PniGqTY1eia1c1PawNRkV1MOHu5jvKKqahI4z0ZWOG8HtJYl0a-Dbtv4ATpwLH5pJ7B1v7PtFEpugElSsesPhjlRw4pEU9EfyzjOy8Hm7LndmwdnZ0-WHdKSEgB6AYIua6GRCEMzM1bncEts2qcKy21EIv0nb2IANcgPoGHpnWHfqOtB_NrXA" -H "Accept: application/json, */*" 'https://34.73.95.193/api/v1/services?allowWatchBookmarks=true&resourceVersion=51971&timeout=7m11s&timeoutSeconds=431&watch=true'
I0721 13:51:38.423940       1 shared_informer.go:227] caches populated
time="2020-07-21T13:51:38Z" level=info msg="caches synced"
time="2020-07-21T13:51:38Z" level=info msg="Received: OprhanedServicesGcTriggered: {}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: RepairEndpoints" apiAddress="https://34.73.95.193" cluster=remote
I0721 13:51:38.424466       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east'
I0721 13:51:38.427854       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east 200 OK in 3 milliseconds
I0721 13:51:38.427872       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.427876       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.427880       1 round_trippers.go:452]     Content-Length: 616
I0721 13:51:38.427884       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.427887       1 round_trippers.go:452]     Audit-Id: 9cc024cf-9303-4c95-8574-cd9fed0d7e2d
I0721 13:51:38.428072       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east","uid":"3a6dd1ab-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"44508","creationTimestamp":"2020-07-21T12:53:52Z","labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:51:38.428309       1 request.go:1017] Request Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","creationTimestamp":null,"labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:51:38.428398       1 round_trippers.go:423] curl -k -v -XPUT  -H "Accept: application/json, */*" -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east'
I0721 13:51:38.432761       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east 200 OK in 4 milliseconds
I0721 13:51:38.432786       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.432793       1 round_trippers.go:452]     Audit-Id: 610d9336-658f-4b69-8bee-80c2f5ffc968
I0721 13:51:38.432798       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.432803       1 round_trippers.go:452]     Content-Length: 616
I0721 13:51:38.432808       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.432856       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east","uid":"3a6dd1ab-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"44508","creationTimestamp":"2020-07-21T12:53:52Z","labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:51:38.433229       1 request.go:1017] Request Body: {"kind":"Service","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo-east","uid":"8a013a75-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46631","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-resource-version":"46644","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"clusterIP":"10.126.11.85","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}
I0721 13:51:38.433358       1 round_trippers.go:423] curl -k -v -XPUT  -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "Accept: application/json, */*" -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" 'https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east'
I0721 13:51:38.434869       1 round_trippers.go:443] GET https://34.73.95.193/api/v1/services?allowWatchBookmarks=true&resourceVersion=51971&timeout=7m11s&timeoutSeconds=431&watch=true 200 OK in 67 milliseconds
I0721 13:51:38.434890       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.434897       1 round_trippers.go:452]     Audit-Id: 2dab73d2-04f0-4d98-a00b-9d0a66015208
I0721 13:51:38.434905       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.434910       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.436939       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east 200 OK in 3 milliseconds
I0721 13:51:38.436960       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.436966       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.436973       1 round_trippers.go:452]     Audit-Id: bbf15f1d-20cb-421e-b2ec-ac2af408f394
I0721 13:51:38.436979       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.436983       1 round_trippers.go:452]     Content-Length: 748
I0721 13:51:38.437010       1 request.go:1017] Response Body: {"kind":"Service","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo-east","uid":"8a013a75-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46631","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-resource-version":"46644","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"clusterIP":"10.126.11.85","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}
I0721 13:51:38.437960       1 request.go:1017] Request Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
I0721 13:51:38.438065       1 round_trippers.go:423] curl -k -v -XPUT  -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "Accept: application/json, */*" 'https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east'
I0721 13:51:38.442023       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east 200 OK in 3 milliseconds
I0721 13:51:38.442051       1 round_trippers.go:449] Response Headers:
I0721 13:51:38.442056       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:51:38 GMT
I0721 13:51:38.442062       1 round_trippers.go:452]     Audit-Id: 86c825fc-be9c-4264-8b87-057fa6fcb84c
I0721 13:51:38.442066       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:51:38.442072       1 round_trippers.go:452]     Content-Length: 729
I0721 13:51:38.442106       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-controller-api, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=controller,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: frontend, namespace: test, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-dst, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=destination,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kube-dns, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-prometheus, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-ns=linkerd,linkerd.io/control-plane-component=prometheus]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kubernetes, namespace: default, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-web, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=web,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-grafana, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=grafana,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-tap, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=tap,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-identity, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=identity,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-sp-validator, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=sp-validator,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-gateway, namespace: linkerd-multicluster, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839,mirror.linkerd.io/gateway-identity=local,mirror.linkerd.io/multicluster-gateway=true,mirror.linkerd.io/probe-path=/health,mirror.linkerd.io/probe-period=3]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: podinfo, namespace: test, annotations: [[mirror.linkerd.io/gateway-name=linkerd-gateway,mirror.linkerd.io/gateway-ns=linkerd-multicluster]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: default-http-backend, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: heapster, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-proxy-injector, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-474b0839]], labels [[linkerd.io/control-plane-component=proxy-injector,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:38Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: metrics-server, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://34.73.95.193" cluster=remote
time="2020-07-21T13:51:41Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:51:44Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:51:47Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:51:51Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:51:54Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:51:57Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:00Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:03Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:06Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:09Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:12Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:16Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:19Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:22Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:25Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:28Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:31Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:34Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:37Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:38Z" level=info msg="Received: RepairEndpoints" apiAddress="https://34.73.95.193" cluster=remote
I0721 13:52:38.425176       1 round_trippers.go:423] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east'
I0721 13:52:38.428656       1 round_trippers.go:443] GET https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east 200 OK in 3 milliseconds
I0721 13:52:38.428691       1 round_trippers.go:449] Response Headers:
I0721 13:52:38.428698       1 round_trippers.go:452]     Content-Length: 616
I0721 13:52:38.428704       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:52:38 GMT
I0721 13:52:38.428708       1 round_trippers.go:452]     Audit-Id: 3da60645-7dcf-41e7-9985-9161eaaedda0
I0721 13:52:38.428713       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:52:38.428751       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east","uid":"3a6dd1ab-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"44508","creationTimestamp":"2020-07-21T12:53:52Z","labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:52:38.428985       1 request.go:1017] Request Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","creationTimestamp":null,"labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:52:38.429118       1 round_trippers.go:423] curl -k -v -XPUT  -H "Accept: application/json, */*" -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east'
I0721 13:52:38.432843       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east 200 OK in 3 milliseconds
I0721 13:52:38.432874       1 round_trippers.go:449] Response Headers:
I0721 13:52:38.432881       1 round_trippers.go:452]     Audit-Id: 0785ce80-ac02-4955-8bad-d48e656a05b5
I0721 13:52:38.432887       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:52:38.432895       1 round_trippers.go:452]     Content-Length: 616
I0721 13:52:38.432899       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:52:38 GMT
I0721 13:52:38.432942       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"probe-gateway-east","namespace":"linkerd-multicluster","selfLink":"/api/v1/namespaces/linkerd-multicluster/endpoints/probe-gateway-east","uid":"3a6dd1ab-cb51-11ea-b4bb-42010a8a01c1","resourceVersion":"44508","creationTimestamp":"2020-07-21T12:53:52Z","labels":{"mirror.linkerd.io/cluster-name":"east"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"mc-probe","port":4181,"protocol":"TCP"}]}]}
I0721 13:52:38.433290       1 request.go:1017] Request Body: {"kind":"Service","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo-east","uid":"8a013a75-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46631","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-resource-version":"46644","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"clusterIP":"10.126.11.85","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}
I0721 13:52:38.433604       1 round_trippers.go:423] curl -k -v -XPUT  -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Accept: application/json, */*" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" -H "Content-Type: application/json" 'https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east'
I0721 13:52:38.437339       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/test/services/podinfo-east 200 OK in 3 milliseconds
I0721 13:52:38.437502       1 round_trippers.go:449] Response Headers:
I0721 13:52:38.437534       1 round_trippers.go:452]     Audit-Id: 0b3c1a48-ea08-4bb2-a603-9993457e71be
I0721 13:52:38.437625       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:52:38.437668       1 round_trippers.go:452]     Content-Length: 748
I0721 13:52:38.437717       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:52:38 GMT
I0721 13:52:38.437873       1 request.go:1017] Response Body: {"kind":"Service","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/services/podinfo-east","uid":"8a013a75-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46631","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-resource-version":"46644","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"spec":{"ports":[{"name":"http","protocol":"TCP","port":9898,"targetPort":"http"},{"name":"grpc","protocol":"TCP","port":9999,"targetPort":"grpc"}],"clusterIP":"10.126.11.85","type":"ClusterIP","sessionAffinity":"None"},"status":{"loadBalancer":{}}}
I0721 13:52:38.438206       1 request.go:1017] Request Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
I0721 13:52:38.438430       1 round_trippers.go:423] curl -k -v -XPUT  -H "Accept: application/json, */*" -H "Content-Type: application/json" -H "User-Agent: controller/v0.0.0 (linux/amd64) kubernetes/$Format" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJsaW5rZXJkLW11bHRpY2x1c3RlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJsaW5rZXJkLXNlcnZpY2UtbWlycm9yLWVhc3QtdG9rZW4ta3c0Y3IiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoibGlua2VyZC1zZXJ2aWNlLW1pcnJvci1lYXN0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYzgwNjVhZTItY2I1MC0xMWVhLWI0YmItNDIwMTBhOGEwMWMxIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmxpbmtlcmQtbXVsdGljbHVzdGVyOmxpbmtlcmQtc2VydmljZS1taXJyb3ItZWFzdCJ9.p8iCxREnASCI_ElIRkRgy4ULxt23zHot7Ekq-xdT-RieNC12VVEaz8DaZYstCwwhDACIAtAD4TTRpkh0fRTaBUCReXW5khWkeOR9klOR67vjwY7cBQ4hd_Ld5GtAHTCgFdV8TiGucQHHR1gD78k7q3sD8QRsOyS_NHce1I5njTv9_hTD34CmvB6-FEfCajfU49gUkPpAa1PKTSZoGUSpcPSCWs1VUmUYqWsYgXQJpGfPlx0_OETV0u6Qh52Tg70i4qfsUocatqY4TKfPpc8YwktjOt3xqi6BQfq46czS8YBMbRwFIfgylBzicCRMGGngUdoFIyeyX-Tg_KqM3aTBcw" 'https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east'
I0721 13:52:38.441359       1 round_trippers.go:443] PUT https://10.126.0.1:443/api/v1/namespaces/test/endpoints/podinfo-east 200 OK in 2 milliseconds
I0721 13:52:38.441408       1 round_trippers.go:449] Response Headers:
I0721 13:52:38.441415       1 round_trippers.go:452]     Audit-Id: 66c3357d-1981-432f-96c0-8d21442785e3
I0721 13:52:38.441421       1 round_trippers.go:452]     Content-Type: application/json
I0721 13:52:38.441444       1 round_trippers.go:452]     Content-Length: 729
I0721 13:52:38.441788       1 round_trippers.go:452]     Date: Tue, 21 Jul 2020 13:52:38 GMT
I0721 13:52:38.443284       1 request.go:1017] Response Body: {"kind":"Endpoints","apiVersion":"v1","metadata":{"name":"podinfo-east","namespace":"test","selfLink":"/api/v1/namespaces/test/endpoints/podinfo-east","uid":"8a04c295-cb52-11ea-b4bb-42010a8a01c1","resourceVersion":"46632","creationTimestamp":"2020-07-21T13:03:15Z","labels":{"mirror.linkerd.io/cluster-name":"east","mirror.linkerd.io/mirrored-service":"true"},"annotations":{"mirror.linkerd.io/remote-gateway-identity":"linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local","mirror.linkerd.io/remote-svc-fq-name":"podinfo.test.svc.cluster.local"}},"subsets":[{"addresses":[{"ip":"34.74.94.207"}],"ports":[{"name":"http","port":4143,"protocol":"TCP"},{"name":"grpc","port":4143,"protocol":"TCP"}]}]}
time="2020-07-21T13:52:40Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:44Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:47Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:50Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:53Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:56Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:52:59Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:53:03Z" level=debug msg="Gateway is healthy" probe-key=east
time="2020-07-21T13:53:06Z" level=debug msg="Gateway is healthy" probe-key=east

and

$ kgp;date
NAME                                           READY   STATUS             RESTARTS   AGE
linkerd-gateway-7b7fd866d6-b4p9j               2/2     Running            0          73m
linkerd-service-mirror-east-67f76bcf84-mmrcz   1/2     CrashLoopBackOff   9          36m
Tue Jul 21 15:00:12 BST 2020

@adleong
Copy link
Member Author

adleong commented Jul 21, 2020

I've managed to trigger a crash in the service mirror controller:

panic: assignment to entry in nil map

goroutine 140 [running]:
github.com/linkerd/linkerd2/controller/cmd/service-mirror.(*RemoteClusterServiceWatcher).repairEndpoints(0xc0008d7260)
	/linkerd-build/controller/cmd/service-mirror/cluster_watcher.go:741 +0x83c
github.com/linkerd/linkerd2/controller/cmd/service-mirror.(*RemoteClusterServiceWatcher).processNextEvent(0xc0008d7260, 0x1869c40, 0x2bde8a8, 0x2bde8a8, 0x0, 0x0)
	/linkerd-build/controller/cmd/service-mirror/cluster_watcher.go:557 +0xb6
github.com/linkerd/linkerd2/controller/cmd/service-mirror.(*RemoteClusterServiceWatcher).processEvents(0xc0008d7260)
	/linkerd-build/controller/cmd/service-mirror/cluster_watcher.go:572 +0x40
created by github.com/linkerd/linkerd2/controller/cmd/service-mirror.(*RemoteClusterServiceWatcher).Start
	/linkerd-build/controller/cmd/service-mirror/cluster_watcher.go:634 +0x1d6

I triggered this by manually editing a mirror service endpoints resource (Endpoints/voting-svc-gke) and deleting the annotations section. Then I edited the exported service in the target cluster to trigger an update which crashed the service mirror controller.

I have no idea if this is the same issue that @Matei207 is seeing, but I'll put together a fix for this.

Signed-off-by: Alex Leong <[email protected]>
Comment on lines 624 to 631
cmd.Flags().StringVar(&opts.clusterName, "cluster-name", "", "Cluster name")
cmd.Flags().StringVar(&opts.apiServerAddress, "api-server-address", "", "The api server address of the target cluster")
cmd.Flags().StringVar(&opts.serviceAccountName, "service-account-name", defaultServiceAccountName, "The name of the service account associated with the credentials")
cmd.Flags().StringVar(&opts.controlPlaneVersion, "control-plane-version", opts.controlPlaneVersion, "(Development) Tag to be used for the control plane component images")
cmd.Flags().StringVar(&opts.gatewayName, "gateway-name", defaultGatewayName, "The name of the gateway service")
cmd.Flags().StringVar(&opts.gatewayNamespace, "gateway-namespace", defaultMulticlusterNamespace, "The namespace of the gateway service")
cmd.Flags().Uint32Var(&opts.serviceMirrorRetryLimit, "service-mirror-retry-limit", opts.serviceMirrorRetryLimit, "The number of times a failed update from the target cluster is allowed to be retried")
cmd.Flags().StringVar(&opts.logLevel, "log-level", opts.logLevel, "Log level for the Multicluster components")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want to include dockerRegistry as well

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second this, simply because in my tests I had to manually edit the deployment to include my own registry (install command ships with --registry.

@zaharidichev
Copy link
Member

I tried to replicate the problem that @Matei207 is hitting. Could not. I wonder whether this has anything to do with changing the deployment of the mirror to have a different image. This seems highly unlikely though... @Matei207 are you seeing any k8s events that are useful on the deployment/pod once it goes into a crash loop?

Also it seems this happens while the repairEndpoints is running.

@mateiidavid
Copy link
Member

@adleong @zaharidichev no events other than the crash loopback, I have built the latest commit and my service mirror controller is still crashing. It does seem to happen when repairEndpoints is running as pointed out. I've included the logs for the service mirror and the events below:

target/cli/darwin/linkerd version
Client version: git-f4f62e79
Server version: git-f4f62e79
# $k logs -p service-mirror
WARNING: Package "github.com/golang/protobuf/protoc-gen-go/generator" is deprecated.
	A future release of golang/protobuf will delete this package,
	which has long been excluded from the compatibility promise.

time="2020-07-22T13:33:44Z" level=info msg="running version git-f4f62e79"
time="2020-07-22T13:33:44Z" level=info msg="waiting for caches to sync"
time="2020-07-22T13:33:44Z" level=info msg="starting admin server on :9999"
time="2020-07-22T13:33:44Z" level=info msg="caches synced"
time="2020-07-22T13:33:44Z" level=info msg="Got updated link east: {Name:east Namespace:linkerd-multicluster TargetClusterName:east TargetClusterDomain:cluster.local TargetClusterLinkerdNamespace:linkerd ClusterCredentialsSecret:cluster-credentials-east GatewayAddress:35.231.6.9 GatewayPort:4143 GatewayIdentity:linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local ProbeSpec:ProbeSpec: {path: /health, port: 4181, period: 3s}}"
time="2020-07-22T13:33:44Z" level=info msg="waiting for caches to sync"
time="2020-07-22T13:33:45Z" level=info msg="caches synced"
time="2020-07-22T13:33:45Z" level=info msg="Received: OprhanedServicesGcTriggered: {}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: RepairEndpoints" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: heapster, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-controller-api, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=controller,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-identity, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=identity,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-gateway, namespace: linkerd-multicluster, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79,mirror.linkerd.io/gateway-identity=linkerd-gateway.linkerd-multicluster.serviceaccount.identity.linkerd.cluster.local,mirror.linkerd.io/multicluster-gateway=true,mirror.linkerd.io/probe-path=/health,mirror.linkerd.io/probe-period=3]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kube-dns, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-web, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=web,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-dst, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=destination,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: default-http-backend, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-sp-validator, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=sp-validator,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-tap, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-ns=linkerd,linkerd.io/control-plane-component=tap]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-proxy-injector, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=proxy-injector,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: metrics-server, namespace: kube-system, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-grafana, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=grafana,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: kubernetes, namespace: default, annotations: [[]], labels [[]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:33:45Z" level=info msg="Received: OnAddCalled: {svc: Service: {name: linkerd-prometheus, namespace: linkerd, annotations: [[linkerd.io/created-by=linkerd/cli git-f4f62e79]], labels [[linkerd.io/control-plane-component=prometheus,linkerd.io/control-plane-ns=linkerd]]}}" apiAddress="https://35.231.67.196" cluster=remote
time="2020-07-22T13:34:45Z" level=info msg="Received: RepairEndpoints" apiAddress="https://35.231.67.196" cluster=remote
LAST SEEN   TYPE      REASON                 OBJECT                                              MESSAGE
14m         Normal    Scheduled              pod/linkerd-gateway-6dbb7b74db-kvdtj                Successfully assigned linkerd-multicluster/linkerd-gateway-6dbb7b74db-kvdtj to gke-west-1-default-pool-2bb2c312-nbj6
14m         Normal    Pulled                 pod/linkerd-gateway-6dbb7b74db-kvdtj                Container image "docker.io/matei207/proxy-init:v1.3.3" already present on machine
14m         Normal    Created                pod/linkerd-gateway-6dbb7b74db-kvdtj                Created container linkerd-init
14m         Normal    Started                pod/linkerd-gateway-6dbb7b74db-kvdtj                Started container linkerd-init
14m         Normal    Pulling                pod/linkerd-gateway-6dbb7b74db-kvdtj                Pulling image "nginx:1.17"
14m         Normal    Pulled                 pod/linkerd-gateway-6dbb7b74db-kvdtj                Successfully pulled image "nginx:1.17"
14m         Normal    Created                pod/linkerd-gateway-6dbb7b74db-kvdtj                Created container nginx
14m         Normal    Started                pod/linkerd-gateway-6dbb7b74db-kvdtj                Started container nginx
14m         Normal    Pulled                 pod/linkerd-gateway-6dbb7b74db-kvdtj                Container image "docker.io/matei207/proxy:git-f4f62e79" already present on machine
14m         Normal    Created                pod/linkerd-gateway-6dbb7b74db-kvdtj                Created container linkerd-proxy
14m         Normal    Started                pod/linkerd-gateway-6dbb7b74db-kvdtj                Started container linkerd-proxy
14m         Warning   FailedCreate           replicaset/linkerd-gateway-6dbb7b74db               Error creating: pods "linkerd-gateway-6dbb7b74db-" is forbidden: error looking up service account linkerd-multicluster/linkerd-gateway: serviceaccount "linkerd-gateway" not found
14m         Normal    SuccessfulCreate       replicaset/linkerd-gateway-6dbb7b74db               Created pod: linkerd-gateway-6dbb7b74db-kvdtj
14m         Normal    ScalingReplicaSet      deployment/linkerd-gateway                          Scaled up replica set linkerd-gateway-6dbb7b74db to 1
14m         Normal    EnsuringLoadBalancer   service/linkerd-gateway                             Ensuring load balancer
14m         Normal    Injected               deployment/linkerd-gateway                          Linkerd sidecar proxy injected
13m         Normal    EnsuredLoadBalancer    service/linkerd-gateway                             Ensured load balancer
9m8s        Normal    Scheduled              pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Successfully assigned linkerd-multicluster/linkerd-service-mirror-east-5fbb55d8b8-542ns to gke-west-1-default-pool-2bb2c312-v8l3
9m7s        Normal    Pulled                 pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Container image "docker.io/matei207/proxy-init:v1.3.3" already present on machine
9m7s        Normal    Created                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Created container linkerd-init
9m7s        Normal    Started                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Started container linkerd-init
49s         Normal    Pulled                 pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Container image "docker.io/matei207/controller:git-f4f62e79" already present on machine
3m36s       Normal    Created                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Created container service-mirror
3m36s       Normal    Started                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Started container service-mirror
9m6s        Normal    Pulled                 pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Container image "docker.io/matei207/proxy:git-f4f62e79" already present on machine
9m6s        Normal    Created                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Created container linkerd-proxy
9m5s        Normal    Started                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Started container linkerd-proxy
60s         Warning   BackOff                pod/linkerd-service-mirror-east-5fbb55d8b8-542ns    Back-off restarting failed container
9m8s        Normal    SuccessfulCreate       replicaset/linkerd-service-mirror-east-5fbb55d8b8   Created pod: linkerd-service-mirror-east-5fbb55d8b8-542ns
10m         Normal    Scheduled              pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Successfully assigned linkerd-multicluster/linkerd-service-mirror-east-795f98d45c-rtxmf to gke-west-1-default-pool-2bb2c312-t0jj
10m         Normal    Pulled                 pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Container image "docker.io/matei207/proxy-init:v1.3.3" already present on machine
10m         Normal    Created                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Created container linkerd-init
10m         Normal    Started                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Started container linkerd-init
10m         Normal    Pulling                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Pulling image "gcr.io/linkerd-io/controller:git-f4f62e79"
10m         Warning   Failed                 pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Failed to pull image "gcr.io/linkerd-io/controller:git-f4f62e79": rpc error: code = Unknown desc = Error response from daemon: manifest for gcr.io/linkerd-io/controller:git-f4f62e79 not found
10m         Warning   Failed                 pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Error: ErrImagePull
10m         Normal    Pulled                 pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Container image "docker.io/matei207/proxy:git-f4f62e79" already present on machine
10m         Normal    Created                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Created container linkerd-proxy
10m         Normal    Started                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Started container linkerd-proxy
9m39s       Normal    BackOff                pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Back-off pulling image "gcr.io/linkerd-io/controller:git-f4f62e79"
9m39s       Warning   Failed                 pod/linkerd-service-mirror-east-795f98d45c-rtxmf    Error: ImagePullBackOff
10m         Normal    SuccessfulCreate       replicaset/linkerd-service-mirror-east-795f98d45c   Created pod: linkerd-service-mirror-east-795f98d45c-rtxmf
8m57s       Normal    SuccessfulDelete       replicaset/linkerd-service-mirror-east-795f98d45c   Deleted pod: linkerd-service-mirror-east-795f98d45c-rtxmf
10m         Normal    ScalingReplicaSet      deployment/linkerd-service-mirror-east              Scaled up replica set linkerd-service-mirror-east-795f98d45c to 1
9m8s        Normal    Injected               deployment/linkerd-service-mirror-east              Linkerd sidecar proxy injected
9m8s        Normal    ScalingReplicaSet      deployment/linkerd-service-mirror-east              Scaled up replica set linkerd-service-mirror-east-5fbb55d8b8 to 1
8m57s       Normal    ScalingReplicaSet      deployment/linkerd-service-mirror-east              Scaled down replica set linkerd-service-mirror-east-795f98d45c to 0

Copy link
Contributor

@kleimkuhler kleimkuhler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't reproduced the error talked about above, but this otherwise looks good to me

Comment on lines +639 to +642
// We need to issue a RepairEndpoints immediately to populate the gateway
// mirror endpoints.
ev := RepairEndpoints{}
rcsw.eventsQueue.Add(&ev)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixes the issue of 503s that I was seeing 👍

Signed-off-by: Alex Leong <[email protected]>
@adleong
Copy link
Member Author

adleong commented Jul 22, 2020

I talked to @Matei207 and it seems like my latest commit which restarts watches that have completed fixes the crashes. 🎉

Copy link
Member

@zaharidichev zaharidichev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@adleong adleong merged commit d540e16 into main Jul 23, 2020
@adleong adleong deleted the alex/link-to-the-past branch July 23, 2020 21:32
han-so1omon pushed a commit to han-so1omon/linkerd2 that referenced this pull request Jul 28, 2020
This PR removes the service mirror controller from `linkerd mc install` to `linkerd mc link`, as described in linkerd/rfc#31.  For fuller context, please see that RFC.

Basic multicluster functionality works here including:
* `linkerd mc install` installs the Link CRD but not any service mirror controllers
* `linkerd mc link` creates a Link resource and installs a service mirror controller which uses that Link
* The service mirror controller creates and manages mirror services, a gateway mirror, and their endpoints.
* The `linkerd mc gateways` command lists all linked target clusters, their liveliness, and probe latences.
* The `linkerd check` multicluster checks have been updated for the new architecture.  Several checks have been rendered obsolete by the new architecture and have been removed.

The following are known issues requiring further work:
* the service mirror controller uses the existing `mirror.linkerd.io/gateway-name` and `mirror.linkerd.io/gateway-ns` annotations to select which services to mirror.  it does not yet support configuring a label selector.
* an unlink command is needed for removing multicluster links: see linkerd#4707
* an mc uninstall command is needed for uninstalling the multicluster addon: see linkerd#4708

Signed-off-by: Alex Leong <[email protected]>
han-so1omon pushed a commit to han-so1omon/linkerd2 that referenced this pull request Jul 28, 2020
This PR removes the service mirror controller from `linkerd mc install` to `linkerd mc link`, as described in linkerd/rfc#31.  For fuller context, please see that RFC.

Basic multicluster functionality works here including:
* `linkerd mc install` installs the Link CRD but not any service mirror controllers
* `linkerd mc link` creates a Link resource and installs a service mirror controller which uses that Link
* The service mirror controller creates and manages mirror services, a gateway mirror, and their endpoints.
* The `linkerd mc gateways` command lists all linked target clusters, their liveliness, and probe latences.
* The `linkerd check` multicluster checks have been updated for the new architecture.  Several checks have been rendered obsolete by the new architecture and have been removed.

The following are known issues requiring further work:
* the service mirror controller uses the existing `mirror.linkerd.io/gateway-name` and `mirror.linkerd.io/gateway-ns` annotations to select which services to mirror.  it does not yet support configuring a label selector.
* an unlink command is needed for removing multicluster links: see linkerd#4707
* an mc uninstall command is needed for uninstalling the multicluster addon: see linkerd#4708

Signed-off-by: Alex Leong <[email protected]>
Signed-off-by: Eric Solomon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants