My onprem jupyterhub runs just fine as a single user. When someone else signs in the singleuser pod for my account terminates and my page fails with a 503 error. When I spin up my server again it causes their page to error at a 503 and their pod to crash.
I’ve been looking through the documentation and can’t seem to find anything to change in the config.yaml. The only thing I can think of is a resource issue now or a culling issue. The cull.enabled is false.
Here is the config.yaml
cull:
adminUsers: true
concurrency: 10
enabled: false
every: 600
maxAge: 0
removeNamedServers: false
timeout: 3600
users: false
custom: {}
debug:
enabled: true
fullnameOverride: ''
global:
safeToShowValues: false
cattle:
systemProjectId: p-jfn2c
hub:
activeServerLimit: null
allowNamedServers: false
annotations: {}
args: []
authenticatePrometheus: null
baseUrl: /
command: []
concurrentSpawnLimit: 64
config:
JupyterHub:
admin_access: true
authenticator_class: dummy
admin_users:
- user1
- user2
consecutiveFailureLimit: 5
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 1000
runAsUser: 1000
cookieSecret: null
db:
password: null
pvc:
accessModes:
- ReadWriteOnce
annotations: {}
selector: {}
storage: 1Gi
storageClassName: null
subPath: null
type: sqlite-pvc
upgrade: null
url: null
deploymentStrategy:
type: Recreate
existingSecret: null
extraConfig: {}
extraContainers: []
extraEnv: {}
extraFiles: {}
extraPodSpec: {}
extraVolumeMounts: []
extraVolumes: []
image:
name: jupyterhub/k8s-hub
pullPolicy: null
pullSecrets: []
tag: 2.0.0
initContainers: []
labels: {}
lifecycle: {}
livenessProbe:
enabled: true
failureThreshold: 30
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 3
loadRoles: {}
namedServerLimitPerUser: null
networkPolicy:
allowedIngressPorts: []
egress: []
egressAllowRules:
cloudMetadataServer: true
dnsPortsPrivateIPs: true
nonPrivateIPs: true
privateIPs: true
enabled: true
ingress: []
interNamespaceAccessLabels: ignore
nodeSelector: {}
pdb:
enabled: false
maxUnavailable: null
minAvailable: 1
podSecurityContext:
fsGroup: 1000
readinessProbe:
enabled: true
failureThreshold: 1000
initialDelaySeconds: 0
periodSeconds: 2
timeoutSeconds: 1
redirectToServer: null
resources: {}
revisionHistoryLimit: null
service:
annotations: {}
extraPorts: []
loadBalancerIP: null
ports:
nodePort: null
type: ClusterIP
serviceAccount:
annotations: {}
create: true
name: null
services: {}
shutdownOnLogout: null
templatePaths: []
templateVars: {}
tolerations: []
imagePullSecret:
automaticReferenceInjection: true
create: false
email: null
password: null
registry: null
username: null
imagePullSecrets: []
ingress:
annotations: {}
enabled: true
hosts:
- jupyterhub.companyname.io
ingressClassName: null
pathSuffix: null
pathType: Prefix
tls:
- hosts:
- jupyterhub.companyname.io
secretName: companyname.io
nameOverride: null
prePuller:
annotations: {}
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
continuous:
enabled: true
extraImages: {}
extraTolerations: []
hook:
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
enabled: true
image:
name: jupyterhub/k8s-image-awaiter
pullPolicy: null
pullSecrets: []
tag: 2.0.0
nodeSelector: {}
podSchedulingWaitDuration: 10
pullOnlyOnChanges: true
resources: {}
serviceAccount:
annotations: {}
create: true
name: null
tolerations: []
labels: {}
pause:
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
image:
name: k8s.gcr.io/pause
pullPolicy: null
pullSecrets: []
tag: '3.8'
pullProfileListImages: true
resources: {}
revisionHistoryLimit: null
proxy:
annotations: {}
chp:
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
defaultTarget: null
errorTarget: null
extraCommandLineFlags: []
extraEnv: {}
extraPodSpec: {}
image:
name: jupyterhub/configurable-http-proxy
pullPolicy: null
pullSecrets: []
tag: 4.5.3
livenessProbe:
enabled: true
failureThreshold: 30
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 3
networkPolicy:
allowedIngressPorts:
- http
- https
egress: []
egressAllowRules:
cloudMetadataServer: true
dnsPortsPrivateIPs: true
nonPrivateIPs: true
privateIPs: true
enabled: true
ingress: []
interNamespaceAccessLabels: ignore
nodeSelector: {}
pdb:
enabled: false
maxUnavailable: null
minAvailable: 1
readinessProbe:
enabled: true
failureThreshold: 1000
initialDelaySeconds: 0
periodSeconds: 2
timeoutSeconds: 1
resources: {}
revisionHistoryLimit: null
tolerations: []
deploymentStrategy:
rollingUpdate: null
type: Recreate
https:
enabled: false
hosts: []
letsencrypt:
acmeServer: https://acme-v02.api.letsencrypt.org/directory
contactEmail: null
manual:
cert: null
key: null
secret:
crt: tls.crt
key: tls.key
name: null
type: letsencrypt
labels: {}
secretSync:
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
image:
name: jupyterhub/k8s-secret-sync
pullPolicy: null
pullSecrets: []
tag: 2.0.0
resources: {}
secretToken: null
service:
annotations: {}
disableHttpPort: false
extraPorts: []
labels: {}
loadBalancerIP: null
loadBalancerSourceRanges: []
nodePorts:
http: null
https: null
type: ClusterIP
traefik:
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
extraDynamicConfig: {}
extraEnv: {}
extraInitContainers: []
extraPodSpec: {}
extraPorts: []
extraStaticConfig: {}
extraVolumeMounts: []
extraVolumes: []
hsts:
includeSubdomains: false
maxAge: 15724800
preload: false
image:
name: traefik
pullPolicy: null
pullSecrets: []
tag: v2.8.4
labels: {}
networkPolicy:
allowedIngressPorts:
- http
- https
egress: []
egressAllowRules:
cloudMetadataServer: true
dnsPortsPrivateIPs: true
nonPrivateIPs: true
privateIPs: true
enabled: true
ingress: []
interNamespaceAccessLabels: ignore
nodeSelector: {}
pdb:
enabled: true
maxUnavailable: null
minAvailable: 1
resources: {}
revisionHistoryLimit: null
serviceAccount:
annotations: {}
create: true
name: jupyterhubaccount
tolerations: []
rbac:
create: true
scheduling:
corePods:
nodeAffinity:
matchNodePurpose: prefer
tolerations:
- effect: NoSchedule
key: hub.jupyter.org/dedicated
operator: Equal
value: core
- effect: NoSchedule
key: hub.jupyter.org_dedicated
operator: Equal
value: core
podPriority:
defaultPriority: 0
enabled: false
globalDefault: false
imagePullerPriority: -5
userPlaceholderPriority: -10
userPlaceholder:
annotations: {}
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
enabled: true
image:
name: k8s.gcr.io/pause
pullPolicy: null
pullSecrets: []
tag: '3.8'
labels: {}
replicas: 0
resources: {}
revisionHistoryLimit: null
userPods:
nodeAffinity:
matchNodePurpose: prefer
tolerations:
- effect: NoSchedule
key: hub.jupyter.org/dedicated
operator: Equal
value: user
- effect: NoSchedule
key: hub.jupyter.org_dedicated
operator: Equal
value: user
userScheduler:
annotations: {}
containerSecurityContext:
allowPrivilegeEscalation: false
runAsGroup: 65534
runAsUser: 65534
enabled: true
extraPodSpec: {}
image:
name: k8s.gcr.io/kube-scheduler
pullPolicy: null
pullSecrets: []
tag: v1.23.10
labels: {}
logLevel: 4
nodeSelector: {}
pdb:
enabled: true
maxUnavailable: 1
minAvailable: null
pluginConfig:
- args:
scoringStrategy:
resources:
- name: cpu
weight: 1
- name: memory
weight: 1
type: MostAllocated
name: NodeResourcesFit
plugins:
score:
disabled:
- name: NodeResourcesBalancedAllocation
- name: NodeAffinity
- name: InterPodAffinity
- name: NodeResourcesFit
- name: ImageLocality
enabled:
- name: NodeAffinity
weight: 14631
- name: InterPodAffinity
weight: 1331
- name: NodeResourcesFit
weight: 121
- name: ImageLocality
weight: 11
replicas: 2
resources: {}
revisionHistoryLimit: null
serviceAccount:
annotations: {}
create: true
name: null
tolerations: []
singleuser:
allowPrivilegeEscalation: true
cloudMetadata:
blockWithIptables: true
ip: 169.254.169.254
cmd: jupyterhub-singleuser
cpu:
guarantee: null
limit: null
defaultUrl: null
events: true
extraAnnotations: {}
extraContainers: []
extraEnv: {}
extraFiles: {}
extraLabels:
hub.jupyter.org/network-access-hub: 'true'
extraNodeAffinity:
preferred: []
required: []
extraPodAffinity:
preferred: []
required: []
extraPodAntiAffinity:
preferred: []
required: []
extraPodConfig: {}
extraResource:
guarantees: {}
limits: {}
extraTolerations: []
fsGid: 100
image:
name: ourimagename
pullPolicy: Always
pullSecrets:
- name: repo
tag: v1
initContainers: []
lifecycleHooks: {}
memory:
guarantee: 1G
limit: null
networkPolicy:
allowedIngressPorts: []
egress: []
egressAllowRules:
cloudMetadataServer: false
dnsPortsPrivateIPs: true
nonPrivateIPs: true
privateIPs: false
enabled: true
ingress: []
interNamespaceAccessLabels: ignore
networkTools:
image:
name: jupyterhub/k8s-network-tools
pullPolicy: null
pullSecrets: []
tag: 2.0.0
resources: {}
nodeSelector: {}
podNameTemplate: null
profileList: []
serviceAccountName: null
startTimeout: 300
storage:
capacity: 10Gi
dynamic:
pvcNameTemplate: claim-{username}{servername}
storageAccessModes:
- ReadWriteOnce
storageClass: null
volumeNameTemplate: volume-{username}{servername}
extraLabels: {}
extraVolumeMounts: []
extraVolumes: []
homeMountPath: /home/jovyan
static:
pvcName: null
subPath: '{username}'
type: dynamic
uid: 1000