Skip to content

In get or create service function, get needs to happen before create.#1312

Merged
Sindica merged 1 commit intoCentaurusInfra:poc-2022-01-30from
Sindica:poc-2022-01-30
Jan 27, 2022
Merged

In get or create service function, get needs to happen before create.#1312
Sindica merged 1 commit intoCentaurusInfra:poc-2022-01-30from
Sindica:poc-2022-01-30

Conversation

@Sindica
Copy link
Collaborator

@Sindica Sindica commented Jan 27, 2022

This fix arktos network controller performance issue described in #1311

Before fix:

ubuntu@ip-172-30-0-14:~/go/src/k8s.io/arktos$  cat /tmp/kube-apiserver0.log | grep POST | grep services | grep arktos
I0127 16:52:36.951206    4138 wrap.go:47] POST /api/v1/tenants/system/namespaces/kube-system/services: (3.471347ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:59192]
I0127 16:52:36.986211    4138 wrap.go:47] POST /api/v1/tenants/system/namespaces/default/services: (3.345558ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:59192]
I0127 16:52:37.156791    4138 wrap.go:47] POST /api/v1/tenants/system/namespaces/default/services: (9.035043ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:59192]
I0127 16:56:41.441635    4138 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/kube-system/services: (4.905183ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 16:56:41.468252    4138 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/default/services: (5.531762ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 16:56:41.644633    4138 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/default/services: (8.006033ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 16:56:45.734805    4138 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/kube-system/services: (8.10969ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 16:56:45.766926    4138 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/default/services: (6.358942ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 16:56:45.933055    4138 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/default/services: (6.186387ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:39494]
I0127 17:02:23.475055    4138 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/default/services: (8.002445ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:43808]
I0127 17:02:23.663511    4138 wrap.go:47] POST /api/v1/tenants/system/namespaces/default/services: (7.887821ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:43814]
I0127 17:02:23.863241    4138 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/default/services: (7.580824ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:43814]
I0127 17:12:23.473870    4138 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/default/services: (6.479712ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:47244]
I0127 17:12:23.664382    4138 wrap.go:47] POST /api/v1/tenants/system/namespaces/default/services: (8.530021ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:47238]
I0127 17:12:23.864132    4138 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/default/services: (8.227883ms) 409 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:47238]

After fix (POST 409 is gone):

ubuntu@ip-172-30-0-14:~/go/src/k8s.io/arktos$ cat /tmp/kube-apiserver0.log | grep POST | grep services | grep arktos
I0127 17:24:42.508128   17416 wrap.go:47] POST /api/v1/tenants/system/namespaces/kube-system/services: (3.45088ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:51064]
I0127 17:24:42.542691   17416 wrap.go:47] POST /api/v1/tenants/system/namespaces/default/services: (3.29039ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:51064]
I0127 17:26:50.635496   17416 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/kube-system/services: (5.858942ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60946]
I0127 17:26:50.664777   17416 wrap.go:47] POST /api/v1/tenants/bbb/namespaces/default/services: (4.47364ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60946]
I0127 17:26:53.104735   17416 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/kube-system/services: (5.226597ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]
I0127 17:26:53.138088   17416 wrap.go:47] POST /api/v1/tenants/aaa/namespaces/default/services: (8.594217ms) 201 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]

ubuntu@ip-172-30-0-14:~/go/src/k8s.io/arktos$ cat /tmp/kube-apiserver0.log | grep GET | grep services | grep arktos
I0127 17:24:42.503668   17416 wrap.go:47] GET /api/v1/tenants/system/namespaces/kube-system/services/kube-dns-default: (899.75µs) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:51064]
I0127 17:24:42.539004   17416 wrap.go:47] GET /api/v1/tenants/system/namespaces/default/services/kubernetes-default: (847.072µs) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:51064]
I0127 17:24:43.103781   17416 wrap.go:47] GET /api/v1/tenants/system/namespaces/default/services/kubernetes-default: (1.151145ms) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:51066]
I0127 17:26:50.629219   17416 wrap.go:47] GET /api/v1/tenants/bbb/namespaces/kube-system/services/kube-dns-default: (1.348926ms) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60946]
I0127 17:26:50.659848   17416 wrap.go:47] GET /api/v1/tenants/bbb/namespaces/default/services/kubernetes-default: (897.922µs) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60946]
I0127 17:26:51.228147   17416 wrap.go:47] GET /api/v1/tenants/bbb/namespaces/default/services/kubernetes-default: (997.755µs) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]
I0127 17:26:53.098841   17416 wrap.go:47] GET /api/v1/tenants/aaa/namespaces/kube-system/services/kube-dns-default: (2.285334ms) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]
I0127 17:26:53.128954   17416 wrap.go:47] GET /api/v1/tenants/aaa/namespaces/default/services/kubernetes-default: (804.554µs) 404 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]
I0127 17:26:54.028352   17416 wrap.go:47] GET /api/v1/tenants/aaa/namespaces/default/services/kubernetes-default: (1.266764ms) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:60958]
I0127 17:34:29.496005   17416 wrap.go:47] GET /api/v1/tenants/system/namespaces/default/services/kubernetes-default: (979.084µs) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:56352]
I0127 17:34:29.685333   17416 wrap.go:47] GET /api/v1/tenants/aaa/namespaces/default/services/kubernetes-default: (1.30257ms) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:56348]
I0127 17:34:29.885318   17416 wrap.go:47] GET /api/v1/tenants/bbb/namespaces/default/services/kubernetes-default: (1.326806ms) 200 [arktos-network-controller/v0.9.0 (linux/amd64) kubernetes/$Format 127.0.0.1:56348]

Copy link
Collaborator

@h-w-chen h-w-chen left a comment

Choose a reason for hiding this comment

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

lgtm

@centaurus-cloud-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: h-w-chen
To complete the pull request process, please assign zmn223
You can assign the PR to them by writing /assign @zmn223 in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Sindica Sindica merged commit adcf6ae into CentaurusInfra:poc-2022-01-30 Jan 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants