Closed
Description
Hello,
I'm benchmarking some kapp deploy
commands on a big manifest file with 6 containers and some wait-rules, without kapp-controller, and i'm facing 403 errors from the APIServer if i do multiple concurrent kapp deploy
. Looks like these 403 make kapp stop with :
kapp: Error: waiting on reconcile job/job-template-kapp1-1-32ylei-db-hasura-create-secret-672rpn (batch/v1) namespace: fabrique-ci:
Errored:
Listing schema.GroupVersionResource{Group:"", Version:"v1", Resource:"pods"}, namespaced: true:
Fetching all namespaces: an error on the server ("error trying to reach service: dial tcp 10.0.0.1:443: connect: connection refused") has prevented the request from succeeding (get namespaces)
I've done various tests and set kapp-api-qps
to 10 and kapp-api-burst
to 10 and have no more ideas so i'd like to share this with you, maybe you'll have some 😉
Looks like most of 403 are related to cluster-wide API calls (namespaces, pods...)
Have anyone experiences this kind of behaviour ? we're using AKS with Rancher.
Some numbers for a multiple deploy (3) with the below manifests (stripped) :
In this graph you can see APIServer responses to kapp
:
- green : 200 or 201
- blue: 404
- red: >201 and !=404 (mostly 403)
Samples errors :
Sample manifests :
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: app
application: template
name: app
namespace: template-kapp1
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/nonce: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.app: kontinuous/app.template-kapp1
kapp.k14s.io/change-rule.build-app: upsert after upserting kontinuous/build-app.template-kapp1
kapp.k14s.io/change-rule.keycloakx: upsert after upserting kontinuous/keycloakx.template-kapp1
kapp.k14s.io/change-rule.hasura: upsert after upserting kontinuous/hasura.template-kapp1
spec:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: hasura
application: template
name: hasura
namespace: template-kapp1
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/nonce: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.hasura: kontinuous/hasura.template-kapp1
kapp.k14s.io/change-rule.build-hasura: upsert after upserting kontinuous/build-hasura.template-kapp1
kapp.k14s.io/change-rule.db-hasura: upsert after upserting kontinuous/db-hasura.template-kapp1
kapp.k14s.io/change-rule.keycloakx: upsert after upserting kontinuous/keycloakx.template-kapp1
spec:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: maildev
application: template
name: maildev
namespace: template-kapp1
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/nonce: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.maildev: kontinuous/maildev.template-kapp1
spec:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: metabase
application: template
name: metabase
namespace: template-kapp1
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/nonce: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.metabase: kontinuous/metabase.template-kapp1
kapp.k14s.io/change-rule.db-metabase: upsert after upserting kontinuous/db-metabase.template-kapp1
spec:
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: pgweb
application: template
name: pgweb
namespace: template-kapp1
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/nonce: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.pgweb: kontinuous/pgweb.template-kapp1
kapp.k14s.io/change-rule.db-hasura: upsert after upserting kontinuous/db-hasura.template-kapp1
spec:
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: keycloakx
annotations:
kapp.k14s.io/disable-original: ""
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.keycloakx: kontinuous/keycloakx.template-kapp1
kapp.k14s.io/change-rule.db-keycloak: upsert after upserting kontinuous/db-keycloak.template-kapp1
namespace: template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-build-app-kaniko-3zekn9
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.build-app: kontinuous/build-app.template-kapp1
kapp.k14s.io/change-group.build-app.kaniko: kontinuous/build-app.kaniko.template-kapp1
kapp.k14s.io/change-group.build-app..kaniko: kontinuous/build-app..kaniko.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-build-hasura-kaniko-3d6853
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.build-hasura: kontinuous/build-hasura.template-kapp1
kapp.k14s.io/change-group.build-hasura.kaniko: kontinuous/build-hasura.kaniko.template-kapp1
kapp.k14s.io/change-group.build-hasura..kaniko: kontinuous/build-hasura..kaniko.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-hasura-create-db-1dtpbq
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-hasura: kontinuous/db-hasura.template-kapp1
kapp.k14s.io/change-group.db-hasura.create-db: kontinuous/db-hasura.create-db.template-kapp1
kapp.k14s.io/change-group.db-hasura..create-db: kontinuous/db-hasura..create-db.template-kapp1
kapp.k14s.io/change-rule.db-hasura..create-secret: upsert after upserting kontinuous/db-hasura..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-hasura-create-secret-672rpn
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-hasura: kontinuous/db-hasura.template-kapp1
kapp.k14s.io/change-group.db-hasura.create-secret: kontinuous/db-hasura.create-secret.template-kapp1
kapp.k14s.io/change-group.db-hasura..create-secret: kontinuous/db-hasura..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-keycloak-create-db-3dxq1g
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-keycloak: kontinuous/db-keycloak.template-kapp1
kapp.k14s.io/change-group.db-keycloak.create-db: kontinuous/db-keycloak.create-db.template-kapp1
kapp.k14s.io/change-group.db-keycloak..create-db: kontinuous/db-keycloak..create-db.template-kapp1
kapp.k14s.io/change-rule.db-keycloak..create-secret: >-
upsert after upserting
kontinuous/db-keycloak..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-keycloak-create-secret-39r2rj
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-keycloak: kontinuous/db-keycloak.template-kapp1
kapp.k14s.io/change-group.db-keycloak.create-secret: kontinuous/db-keycloak.create-secret.template-kapp1
kapp.k14s.io/change-group.db-keycloak..create-secret: kontinuous/db-keycloak..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-metabase-create-db-xgit30
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-metabase: kontinuous/db-metabase.template-kapp1
kapp.k14s.io/change-group.db-metabase.create-db: kontinuous/db-metabase.create-db.template-kapp1
kapp.k14s.io/change-group.db-metabase..create-db: kontinuous/db-metabase..create-db.template-kapp1
kapp.k14s.io/change-rule.db-metabase..create-secret: >-
upsert after upserting
kontinuous/db-metabase..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-db-metabase-create-secret-2bu7x4
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.db-metabase: kontinuous/db-metabase.template-kapp1
kapp.k14s.io/change-group.db-metabase.create-secret: kontinuous/db-metabase.create-secret.template-kapp1
kapp.k14s.io/change-group.db-metabase..create-secret: kontinuous/db-metabase..create-secret.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-seed-hasura-import-secret-3h5a4u
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.seed-hasura: kontinuous/seed-hasura.template-kapp1
kapp.k14s.io/change-group.seed-hasura.import-secret: kontinuous/seed-hasura.import-secret.template-kapp1
kapp.k14s.io/change-group.seed-hasura..import-secret: kontinuous/seed-hasura..import-secret.template-kapp1
kapp.k14s.io/change-rule.hasura: upsert after upserting kontinuous/hasura.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec:
---
apiVersion: batch/v1
kind: Job
metadata:
name: job-template-kapp1-seed-hasura-seed-db-59hfdf
namespace: fabrique-ci
annotations:
kapp.k14s.io/nonce: ""
kapp.k14s.io/update-strategy: fallback-on-replace
kapp.k14s.io/change-group: kontinuous/template-kapp1
kapp.k14s.io/change-group.seed-hasura: kontinuous/seed-hasura.template-kapp1
kapp.k14s.io/change-group.seed-hasura.seed-db: kontinuous/seed-hasura.seed-db.template-kapp1
kapp.k14s.io/change-group.seed-hasura..seed-db: kontinuous/seed-hasura..seed-db.template-kapp1
kapp.k14s.io/change-rule.seed-hasura..import-secret: >-
upsert after upserting
kontinuous/seed-hasura..import-secret.template-kapp1
kapp.k14s.io/change-rule.hasura: upsert after upserting kontinuous/hasura.template-kapp1
kapp.k14s.io/disable-original: ""
kapp.k14s.io/create-strategy: fallback-on-update
kapp.k14s.io/change-group.jobs: kontinuous/jobs.template-kapp1
spec: