Vai al contenuto principale

Nucleo di Ilum

Configurazione della carta del timone Ilum Core.

TL; DR

$ helm repo Aggiungere ilum https://charts.ilum.cloud
$ helm install ilum-core ilum/ilum-core

Installazione del grafico

Per installare il grafico con il nome della versione ilum-core:

$ helm install ilum-core ilum/ilum-core

Il comando distribuisce ilum-core nel cluster Kubernetes nella configurazione predefinita. Le Parametri elenca i parametri che possono essere configurati durante l'installazione.

Disinstallazione del grafico

Per disinstallare/eliminare il file ilum-core spiegamento:

$ helm delete ilum-core

Il comando rimuove tutti i componenti Kubernetes associati al grafico ed elimina la versione.

Parametri

Parametri comuni

NomeDescrizioneValore
nameOverrideStringa per sovrascrivere parzialmente il modello ilum-core.fullname (manterrà il nome della versione)""
replicaCountNumero di repliche ilum-core1
fullnameOverrideStringa per sovrascrivere completamente il modello ilum-core.fullname""
nodeSelectorVincolo di selezione del nodo ilum-core
tolleranzeTolleranze dei pod ilum-core[]
affinitàAffinità del nodo ilum-core

Parametri di distribuzione ilum-core

NomeDescrizioneValore
immagineimmagine ilum-coreilum/nucleo:6.2.0
pullPolicyPolitica di pull delle immagini ilum-coreIfNotPresent
imagePullSecretsSegreti di estrazione dell'immagine ilum-core[]

Parametri di comunicazione ilum-core

NomeDescrizioneValore
comunicazione.tipoTipo di comunicazione ilum-core con lavori Spark, opzioni disponibili: grpc, Kafkagrpc

Parametri del servizio ilum-core

NomeDescrizioneValore
servizio.tipoTipo di servizio ilum-coreClusterIP
servizio.portaPorta di servizio ilum-core9888
servizio.nodePortPorta del nodo di servizio ilum-core - richiesta quando digitare è Bilanciatore di carico o Porta nodo""
servizio.clusterIPIP del cluster di servizi ilum-core - richiesto quando digitare è ClusterIP""
service.loadBalancerIPIP del bilanciatore di carico del servizio ilum-core - richiesto quando digitare è Bilanciatore di carico""
servizio.annotazioniAnnotazioni del servizio ilum-core{}

Parametri di ingresso ilum-core

NomeDescrizioneValore
ingress.enabledFlag ilum-core ingress enabledfalso
ingress.versionVersione in entrata ilum-corev1
ingress.classNameNome della classe di ingresso ilum-core""
ingress.hostHost di ingresso ilum-coreospite
ingress.tlsConfigurazione TLS in ingresso ilum-core[]
ingress.tls[x].secretNameNome segreto in entrata ilum-core da applicare a una singola voce di configurazione TLS
ingress.tls[x].hostsElenco degli host in entrata ilum-core da applicare per una singola voce di configurazione TLS
ingress.annotationsAnnotazioni in ingresso ilum-core in formato YAMLnginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/proxy-body-size: "600m"
nginx.org/client-max-body-size: "600m"
ingress.pathPercorso di ingresso ilum-core/(.*)
ingress.pathTypepercorso di ingresso ilum-coreTypePrefisso

ilum-core livenessProbe/repronessParametri della sonda

NomeDescrizioneValore
prontezzaSondailum-core readinessConfigurazione della sonda
readinessProbe:
failureThreshold: 3
httpGet:
Percorso: /api/dev/reactive/health
Porta: HTTP
schema: HTTP
initialDelaySeconds: 60
periodoSecondi: 10
successoSoglia: 1
timeoutSeconds: 1
livenessSondailum-core livenessConfigurazione della sonda
livenessProbe:
failureThreshold: 3
httpGet:
Percorso: /api/dev/reactive/health
Porta: HTTP
schema: HTTP
initialDelaySeconds: 60
periodoSecondi: 10
successoSoglia: 1
timeoutSeconds: 1

Parametri ilum-core mongo

NomeDescrizioneValore
mongo.instancesistanze mongo ilum-core a cui connettersimongo:27017
mongo.replicaSetNamenome del set di repliche mongo ilum-coreRS0
mongo.statusProbe.enanbledFlag ilum-core mongo healthcheckvero
mongo.statusProbe.imageImmagine ilum-core mongo healthcheckilum/mongodb:6.0.5

Parametri di ilum-core kafka

NomeDescrizioneValore
kafka.indirizzoIndirizzo ilum-core kafka a cui connettersikafka:9092
kafka.requestSizeilum-core kafka max.request.size parametro per i lavori ilum produttori kafka20000000
kafka.maxPollRecordsilum-core kafka max.poll.records parametro per i processi ilum kafka consumatori500
kafka.maxPollIntervalParametro di max.poll.interval.ms ilum-core kafka per i consumatori di ilum-jobs kafka60000
kafka.statusProbe.enanbledFlag di controllo dello stato di salute di ilum-core kafkavero
kafka.statusProbe.imageImmagine ilum-core kafka healthcheckBitnami/Kafka:3.4.1

Parametri del servizio ilum-core grpc

NomeDescrizioneValore
grpc.servizio.typeTipo di servizio ilum-core grpcClusterIP
grpc.servizio.portaPorta di servizio ilum-core grpc9999
grpc.service.nodePortPorta del nodo di servizio ilum-core grpc - richiesta quando digitare è Bilanciatore di carico o Porta nodo""
grpc.service.clusterIPIP del cluster del servizio ilum-core grpc - richiesto quando digitare è ClusterIP""
grpc.service.loadBalancerIPIP del bilanciatore di carico del servizio ilum-core grpc - richiesto quando digitare è Bilanciatore di carico""
grpc.servizio.annotazioniAnnotazioni del servizio ilum-core grpc{}

Parametri GRPC ilum-core per il lavoro Spark

NomeDescrizioneValore
grpc.job.hostHost grpc ilum-core per la connessione del lavoro sparkilum-grpc
grpc.job.portPorta grpc ilum-core per la connessione del lavoro Spark9999

Parametri dell'inizializzatore del cluster ilum-core Kubernetes

NomeDescrizioneValore
kubernetes.initClusterOnStartupFlag di inizializzazione del cluster Kubernetes predefinito ilum-corevero
kubernetes.upgradeClusterOnStartupAggiornamento del cluster Kubernetes predefinito ilum-core dai valori nel flag della mappa di configurazionefalso
kubernetes.api.urlURL predefinito dell'API del cluster Kubernetes ilum-corehttps://kubernetes.default.svc
kubernetes.container.imageImmagine del contenitore del cluster Kubernetes predefinita ilum-coreILUM / Scintilla: 3.5.2-Delta
kubernetes.sparkNamespaceSpazio dei nomi del cluster Kubernetes predefinito ilum-core per archiviare le risorse Spark{{ . Release.Namespace }}
kubernetes.storage.typeTipo di archiviazione del cluster Kubernetes predefinito ilum-core, opzioni disponibili: S3, Gcs, Vespe, HDFSS3

Default cluster reconciliation

The two flags above govern how the bundled default Spark cluster is reconciled from chart values. The default cluster is bootstrap-once. When kubernetes.initClusterOnStartup è vero (the default), the cluster is created on first startup if it does not already exist. When a cluster named default is already present, its stored specification is re-synced from chart values only if kubernetes.upgradeClusterOnStartup è vero. That flag defaults to falso, so a routine Aggiornamento dell'elmo followed by a pod rollout does not push changed kubernetes.* values onto an existing default cluster. This preserves edits made through the UI or the dev API, at the cost of chart values no longer being authoritative once the cluster exists.

When kubernetes.upgradeClusterOnStartup is enabled, the reconciliation is partial:

Re-synced from chart valuesNever chart-driven on an existing cluster
sparkImage, defaultApplicationConfig, environment variables, Namespace, serviceAccountName, attached presetsscalaVersion, TLS certificates, credentials, cluster Id e descrizione

The fields in the right-hand column are always preserved from the stored cluster, even with the flag enabled. They can only be changed by editing the cluster through the UI or the dev API.

Metastore is reconciled independently

The bundled default metastore row (metastore.type and the corresponding metastore..config) is reconciled unconditionally on every startup, independent of kubernetes.upgradeClusterOnStartup. A alveare A Nessie switch therefore takes effect on a plain pod rollout.

To apply changed default-cluster values, either enable reconciliation:

ilum-core:
kubernetes:
upgradeClusterOnStartup: "vero"

and run Aggiornamento dell'elmo followed by kubectl rollout restart deploy/ilum-core, or delete the existing cluster and re-bootstrap it from current chart values.

After the default cluster is deleted from the Ammassi list under Carichi, it can be rebuilt from chart values without restarting ilum-core: while no clusters remain, the Ammassi list shows a Restore Default Cluster button that re-creates it from chart values. The button is offered only when no default cluster exists; it never overwrites a cluster that is still present.

Restarting ilum-core after the delete has the equivalent effect, since the startup initializer recreates the missing cluster:

kubectl -n ilum rollout restart deploy/ilum-core

Enabling kubernetes.upgradeClusterOnStartup re-applies chart values on every boot, which overwrites subsequent UI or dev-API edits to the default cluster, and still does not migrate scalaVersion, certificates, or credentials.

Parametri di archiviazione Kubernetes S3

NomeDescrizioneValore
kubernetes.s3.hostilum-core host di archiviazione S3 del cluster kubernetes predefinito per archiviare le risorse sparkS3
kubernetes.s3.portporta di archiviazione S3 del cluster kubernetes predefinita ilum-core per archiviare le risorse spark7000
kubernetes.s3.sparkBucketBucket di archiviazione S3 del cluster kubernetes predefinito ilum-core per archiviare le risorse sparkilum-files
kubernetes.s3.dataBucketBucket di archiviazione S3 del cluster kubernetes predefinito ilum-core per archiviare le tabelle ilumilum-tabelle
kubernetes.s3.accessKeyChiave di accesso all'archiviazione S3 del cluster kubernetes predefinita ilum-core per archiviare le risorse spark""
kubernetes.s3.secretKeychiave segreta di archiviazione S3 del cluster kubernetes predefinito ilum-core per archiviare le risorse spark""

Parametri di archiviazione GCS Kubernetes

NomeDescrizioneValore
kubernetes.gcs.clientEmaililum-core default kubernetes cluster GCS storage client email""
kubernetes.gcs.sparkBucketBucket di archiviazione GCS del cluster Kubernetes predefinito ilum-core per archiviare le risorse Spark"ilum-files"
kubernetes.gcs.dataBucketilum-core default kubernetes cluster GCS storage bucket per archiviare le tabelle ilum"Tavoli-ilum"
kubernetes.gcs.privateKeyilum-core default kubernetes cluster GCS storage chiave privata per archiviare le risorse spark""
kubernetes.gcs.privateKeyIdilum-core default kubernetes cluster GCS storage private key id per archiviare le risorse spark""

Parametri di archiviazione WASBS Kubernetes

NomeDescrizioneValore
kubernetes.wasbs.accountNameilum-core default kubernetes cluster WASBS nome dell'account di archiviazione""
kubernetes.wasbs.accessKeyilum-core default kubernetes cluster WASBS storage access key per archiviare le risorse spark""
kubernetes.wasbs.sparkContainerilum-core default kubernetes cluster WASBS storage container name per archiviare le risorse spark"ilum-files"
kubernetes.wasbs.dataContainerilum-core default kubernetes cluster WASBS storage container name per memorizzare le tabelle ilum"Tavoli-ilum"

Parametri di archiviazione di HDFS Kubernetes

NomeDescrizioneValore
kubernetes.hdfs.hadoopUsernameilum-core default kubernetes cluster HDFS storage hadoop username""
kubernetes.hdfs.configilum-core default kubernetes cluster HDFS storage dict dei file di configurazione con nome come chiave e contenuto codificato base64 come valore""
kubernetes.hdfs.sparkCatalogilum-core predefinito kubernetes cluster HDFS storage catalog per archiviare le risorse spark"ilum-files"
kubernetes.hdfs.dataCatalogilum-core predefinito kubernetes cluster HDFS storage catalog per archiviare ilum-tables"Tavoli-ilum"
kubernetes.hdfs.keyTabilum-core default kubernetes cluster HDFS storage keytab file base64 contenuto codificato""
kubernetes.hdfs.principalilum-core default kubernetes cluster HDFS storage principal name""
kubernetes.hdfs.krb5ilum-core default kubernetes cluster HDFS storage krb5 file base64 contenuto codificato""
kubernetes.hdfs.trustStoreilum-core default kubernetes cluster HDFS storage trustStore file base64 contenuto codificato""
kubernetes.hdfs.logDirectoryilum-core default kubernetes cluster HDFS percorso della directory di archiviazione per memorizzare eventLog per il server della cronologia""

Importante! Assicurati che i bucket S3/GCS o i container WASBS siano già creati e raggiungibili! Importante! Assicurati che HDFS logDirectory sia il percorso assoluto di sparkCatalog configurato con il suffisso /ilum/logs! Ad esempio hdfs://name-node/user/username/spark-catalog/ilum/logs

Parametri di sicurezza ilum-core

NomeDescrizioneValore
sicurezza.tipoTipo di autenticazione ilum-core, opzioni disponibili: interno, LDAP, oauth2interno
security.jwt.issuerUrlURI frontend ilum-core utilizzato nell'attestazione jwt isshttps://ilum.cloud
sicurezza.jwt.timeToLiveilum-core jwt tempo di vita in unità di tempo specificate8h
sicurezza.jwt.publicKeyilum-core base64 stringa codificata contenente il Chiave pubblica X.509 RSA a 2048 bit""
sicurezza.jwt.privateKeyilum-core base64 stringa codificata contenente il Chiave privata PKCS8 RSA a 2048 bit""
sicurezza.autoritàconfigurazione delle regole di mappatura delle autorità ilum-core. Utilizzato quando l'autorizzazione è LDAP o oauth2. Consente di tradurre i gruppi e gli ambiti dei provider di autenticazione esterni in ruoli ilum
autorità:
Ruoli:
Prefisso: ROLE_
Nome attestazione: Gruppi
Ambiti:
Prefisso: SCOPE__
Nome attestazione: SCP
sicurezza.autorità.roles.prefissoPrefisso del ruolo di autenticazione ilum-coreRUOLO_
security.authorities.roles.claimNameID del provider di autenticazione esterno ilum-core dell'attestazione JWT che contiene l'elenco di ruoli/gruppiGruppi
sicurezza.autorità.ruoli.mappatureDefinizioni di mappatura dei ruoli ilum-core sotto forma di mappa external_role: ilum_role{}
security.authorities.scopes.prefixPrefisso dell'ambito di autenticazione ilum-corePORTATA_
security.authorities.scopes.claimNameID del provider di autenticazione esterno ilum-core dell'attestazione jwt che contiene l'elenco degli ambitiScp
sicurezza.autorità.scopes.mappingsDefinizioni di mappatura dell'ambito ilum-core sotto forma di mappa external_scope: ilum_scope{}

Parametri di autenticazione interni basati su mappa di configurazione

NomeDescrizioneValore
sicurezza.internal.usersConfigurazione utenti interni ilum-core
Gli utenti:
- Nome utente: "admin"
Password: "admin"
Ruoli:
- "AMMINISTRATORE"
sicurezza.internal.users[].usernameNome utente ilum-core""
security.internal.users[].passwordPassword semplice dell'utente ilum-core""
security.internal.users[].rolesRuoli utente ilum-core, opzioni disponibili: ADMIN, UTENTE, SPETTATORE[]

Parametri di autenticazione basati su LDAP

NomeDescrizioneValore
sicurezza.ldap.urlsURL LDAP ilum-core del server[]
sicurezza.ldap.basesuffisso di base LDAP ilum-core da cui dovrebbero provenire tutte le operazioni""
sicurezza.ldap.usernamenome utente di accesso LDAP ilum-core del server""
sicurezza.ldap.passwordPassword di accesso LDAP ilum-core del server""
sicurezza.ldap.passwordEncoderCodificatore di password LDAP ilum-core. Il server LDAP autentica gli utenti (operazioni di binding) se vuoto, opzioni disponibili:
adattativo - codificatore di password che delega a un altro codificatore in base a un identificatore con prefisso
bcrypt
MD5
sha256
""
sicurezza.ldap.userSearch.baseDN di base LDAP ilum-core da cui deve essere eseguita la ricerca di un utente""
sicurezza.ldap.userSearch.filtermodello LDAP ilum-core da utilizzare per la ricerca dell'utente. 0 è il nome utenteuid={0}
sicurezza.ldap.userSearch.passwordAttrilum-core LDAP ID dell'attributo che contiene la password di un utenteuserPassword
sicurezza.ldap.groupSearch.baseDN di base LDAP ilum-core da cui deve essere eseguita la ricerca dell'appartenenza al gruppo""
sicurezza.ldap.groupSearch.filtermodello LDAP ilum-core da utilizzare per la ricerca di gruppo. 0 è il DN dell'utente(membro={0})
sicurezza.ldap.groupSearch.roleAttrID LDAP ilum-core dell'attributo che contiene il nome del ruolo per un gruppoCn

Parametri di autenticazione basati su OAuth2

NomeDescrizioneValore
sicurezza.oauth2.clientIdID client ilum-core oauth2""
sicurezza.oauth2.clientSecretilum-core oauth2 Client SEGRETO""
security.oauth2.issuerUriURI OAuth2 ilum-core che può essere un endpoint di rilevamento OpenID Connect o un endpoint di metadati del server di autorizzazione OAuth 2.0 definito da RFC 8414.""

Parametri della licenza ilum-core

NomeDescrizioneValore
licenza.chiaveprivataChiave di licenza ILUM""

Parametri di invio della scintilla esterna ilum-core

NomeDescrizioneValore
externalSparkSubmit.enabledflag di invio della scintilla esterna ilum-corefalso
externalSparkSubmit.imageilum-core external spark-submit immagini di baseilum/lancia-scintille:scintilla-3.5.1
externalSparkSubmit.resourcesilum-core external spark-submit pod kubernetes resources
limiti:
memoria: "500Mi"
richieste:
memoria: "300Mi"

Parametri del server della cronologia delle scintilla ilum-core

NomeDescrizioneValore
historyServer.enabledFlag del server della cronologia di ilum-core sparkvero
historyServer.imageImmagine del server della cronologia di ilum-core sparkilum/lancia-scintille:scintilla-3.5.1
historyServer.addressIndirizzo del server della cronologia di ilum-core sparkhttp://ilum-history-server:9666
historyServer.pullPolicyCriteri di pull dell'immagine del server della cronologia di Spark ilum-coreIfNotPresent
historyServer.imagePullSecretsilum-core spark history server image pull secrets[]
historyServer.parametersParametri personalizzati della scintilla del server della cronologia delle scintilla ilum-core
spark.history.fs.cleaner.enabled: vero
spark.history.fs.cleaner.interval: 1d
spark.history.fs.cleaner.maxEtà: 7d
historyServer.resourcesRisorse del pod del server della cronologia di ilum-core spark
Limiti:
memoria: "500Mi"
Richieste:
memoria: "300Mi"
historyServer.service.typeTipo di servizio ilum-core spark history serverClusterIP
historyServer.service.portilum-core porta di servizio del server della cronologia di spark9666
historyServer.service.nodePortilum-core spark history server service nodePort""
historyServer.service.clusterIPilum-core spark history server service clusterIP""
historyServer.service.loadBalancerIPilum-core spark history server service loadbalancerIP""
historyServer.service.annotationsAnnotazioni del servizio ilum-core history server{}
historyServer.ingress.enabledFlag di ingresso del server della cronologia di ilum-core sparkfalso
historyServer.ingress.versionilum-core spark cronologia server in entrata versione"v1"
historyServer.ingress.classNameilum-core spark cronologia server in entrata className""
historyServer.ingress.hostilum-core spark cronologia server in entrata host"ospite"
historyServer.ingress.pathPercorso di ingresso del server della cronologia delle scintilla ilum-core"/(.*)"
historyServer.ingress.pathTypeilum-core cronologia delle scintille server in entrata pathTypePrefisso
historyServer.ingress.annotationsAnnotazioni del server della cronologia di ilum-core sparknginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/proxy-body-size: "600m"
nginx.org/client-max-body-size: "600m"
historyServer.statusProbe.enabledilum-core spark history server ilum-core healthcheck flagvero
historyServer.statusProbe.imageilum-core spark history server ilum-core healthcheck immaginecurlimages/curl:8.5.0
historyServer.nodeSelectorilum-core spark storico server nodeSelector
historyServer.tolerationsTolleranze del server ilum-core spark history[]
historyServer.affinityilum-core spark cronologia server affinità

Parametri del lavoro ilum-core

NomeDescrizioneValore
lavoro.retain.hoursLimite di ore di conservazione dei processi ilum-core spark168
lavoro.prometeo.enabledilum-core spark jobs prometheus abilitato flagvero
lavoro.healthcheck.enabledFlag abilitato per i processi Spark ilum-corevero
lavoro.healthcheck.intervalIntervallo di controllo dello stato dei lavori Spark ilum-core in secondi300
lavoro.controllo integrità.tolleranzailum-core spark jobs healthcheck Tolleranza del tempo di risposta in secondi120
job.memorysettings.executorsConteggio dell'esecutore dei processi Spark ilum-core2
job.memorysettings.executorMemoryilum-core spark jobs executor allocazione della memoria1 grammo
job.memorysettings.driverMemoryilum-core spark jobs allocazione della memoria del driver1 grammo
job.memorysettings.executorCoresilum-core spark jobs conteggio dei core dell'executor1
job.memorysettings.driverCoresilum-core spark jobs conteggio dei core del driver1
job.memorysettings.dynamicAllocationEnabledFlag di allocazione dinamica abilitata per i processi di Spark ilum-corefalso
job.memorysettings.minExecutorsNumero minimo di esecutori per i lavori di Spark ilum-core0
job.memorysettings.initialExecutorsilum-core spark jobs numero iniziale di esecutori0
job.memorysettings.maxExecutorsilum-core spark jobs numero massimo di esecutori20

Parametri predefiniti del metastore ilum-core

NomeDescrizioneValore
metastore.enabledFlag ilum-core predefinito del metastore Hive abilitatofalso
metastore.hive.addressIndirizzo del metastore Hive predefinito ilum-corethrift://ilum-hive-metastore:9083
metastore.hive.versionilum-core versione predefinita del metastore hive3.1.3

Impostazioni di pausa automatica ilum-core

NomeDescrizioneValore
lavoro.autoPause.enabledFlag di pausa automatica del gruppo ilum-corevero
lavoro.autoPause.idleTimeilum-core Auto Pausa: Tempo minimo di inattività del gruppo in secondi3600
lavoro.autoPause.periodTempo di intersezione tra i controlli dell'ozio del gruppo in secondi180

Generazione di chiavi private e pubbliche RSA

Per creare chiavi RSA a 2048 bit in un formato PEM PKCS#8 Base64 non crittografato per la configurazione dell'autenticazione, è stato utilizzato openssl.

Generare la chiave privata

openssl genpkey -algoritmo RSA \
-pkeyopt rsa_keygen_bits:2048 \
-pkeyopt rsa_keygen_pubexp:65537 | \
openssl pkcs8 -topk8 -nocrypt -outform pem > chiave-privata.p8

Il contenuto della chiave privata dovrebbe essere simile al seguente:

-----INIZIA LA CHIAVE PRIVATA-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsRnE83rm6BJya
nTyzVqX0SG+D4zBjkyWsOmGG+CoDdgQ6Z8AaocmnjP1SbRykQsQSMf6SeW+fdpH+
ccmzuHe7pZIa2o2Mg8xbk/UszJDaPztwoQbUt/2gHi/rZP8cIVkquzhnN/yxrMls
...
-----TERMINA LA CHIAVE PRIVATA-----

Per utilizzare la chiave privata come impostazione sicurezza.jwt.privateKey, rimuovere l'intestazione e il piè di pagina dalla chiave.

Estrarre la chiave pubblica

openssl pkey -pubout -inform pem -outform pem -in private-key.p8 -out public-key.spki

Il contenuto della chiave pubblica dovrebbe essere simile al seguente:

-----INIZIA LA CHIAVE PUBBLICA-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArEZxPN65ugScmp08s1al
9Ehvg+MwY5MlrDphhvgqA3YEOmfAGqHJp4z9Um0cpELEEjH+knlvn3aR/nHJs7h3
u6WSGtqNjIPMW5P1LMyQ2j87cKEG1Lf9oB4v62T/HCFZKrs4Zzf8sazJbMN3E/mJ
...
-----FINE CHIAVE PUBBLICA-----

Per utilizzare la chiave pubblica come impostazione sicurezza.jwt.publicKey, rimuovere l'intestazione e il piè di pagina dalla chiave.