Hi Yang, after looking at the source code I tried this other env and this
time it worked! It's not failing because of a missing jar but I can add it
manually.


*export KUBERNETES_CERTS_CLIENT_KEY_ALGO=EC*

[ec2-user@ip-10-150-120-176 ~]$ export KUBERNETES_CERTS_CLIENT_KEY_ALGO=EC
>
> [ec2-user@ip-10-150-120-176 ~]$ /storage/flink-1.14.0/bin/flink
> run-application ... --target kubernetes-application
> -Dkubernetes.config.file=/home/ec2-user/.poddy/credentials/k3s
> -Dkubernetes.context=default -Dkubernetes.namespace=default
> -Dkubernetes.service-account=default ...
>
> 2021-11-17 13:09:40,427 INFO  
> org.apache.flink.kubernetes.kubeclient.FlinkKubeClientFactory
> [] - Configuring kubernetes client to use context default.
>
>
> ------------------------------------------------------------
>
>  The program finished with the following exception:
>
>
> io.fabric8.kubernetes.client.KubernetesClientException: JcaPEMKeyConverter
> is provided by BouncyCastle, an optional dependency. To use support for EC
> Keys you must explicitly add this dependency to classpath.
>
> at
> io.fabric8.kubernetes.client.internal.CertUtils.handleECKey(CertUtils.java:167)
>
> at
> io.fabric8.kubernetes.client.internal.CertUtils.loadKey(CertUtils.java:137)
>
> at
> io.fabric8.kubernetes.client.internal.CertUtils.createKeyStore(CertUtils.java:115)
>
> at
> io.fabric8.kubernetes.client.internal.CertUtils.createKeyStore(CertUtils.java:251)
>
> at
> io.fabric8.kubernetes.client.internal.SSLUtils.keyManagers(SSLUtils.java:128)
>
> at
> io.fabric8.kubernetes.client.internal.SSLUtils.keyManagers(SSLUtils.java:122)
>
> at
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:129)
>
> at
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:66)
>
> at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:51)
>
> at
> io.fabric8.kubernetes.client.BaseKubernetesClient.<init>(BaseKubernetesClient.java:145)
>
> at
> io.fabric8.kubernetes.client.DefaultKubernetesClient.<init>(DefaultKubernetesClient.java:40)
>
> at
> org.apache.flink.kubernetes.kubeclient.FlinkKubeClientFactory.fromConfiguration(FlinkKubeClientFactory.java:95)
>
> at
> org.apache.flink.kubernetes.KubernetesClusterClientFactory.createClusterDescriptor(KubernetesClusterClientFactory.java:61)
>
> at
> org.apache.flink.kubernetes.KubernetesClusterClientFactory.createClusterDescriptor(KubernetesClusterClientFactory.java:39)
>
> at
> org.apache.flink.client.deployment.application.cli.ApplicationClusterDeployer.run(ApplicationClusterDeployer.java:63)
>
> at
> org.apache.flink.client.cli.CliFrontend.runApplication(CliFrontend.java:213)
>
> at
> org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1057)
>
> at
> org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1132)
>
> at
> org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28)
>
> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1132)
>

It would be great if we could add this to the official documentation.

For anyone else that is dealing with this issue:
https://stackoverflow.com/questions/68761409/jcapemkeyconverter-is-provided-by-bouncycastle-an-optional-dependency-to-use-s

Thanks for your help!

On Tue, Nov 16, 2021 at 11:31 PM Yang Wang <danrtsey...@gmail.com> wrote:

> If you are using the following command to submit the job, I am afraid the
> dynamic properties could not take effect on the client side.
>
> /flink-1.14.0/bin/flink run-application ... -D
> kubernetes.certs.client.key.algo=EC
>
> Could you please export the environment
> KUBERNETES_CLIENT_KEY_ALGO_SYSTEM_PROPERTY and have a try?
>
> Best,
> Yang
>
> Nicolás Ferrario <nferrari...@gmail.com> 于2021年11月16日周二 上午1:58写道:
>
>> Hi Yang, I tried that and *-Dkubernetes.certs.client.key.algo=EC* (
>> https://github.com/fabric8io/kubernetes-client/blob/278ca235dc4ab5653e82dbe2960004ab62f021e4/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/Config.java#L79)
>> but none seems to work :(
>>
>> I'm launching flink with this: /flink-1.14.0/bin/flink run-application
>> ...
>>
>> Thanks!
>>
>> On Mon, Nov 15, 2021 at 4:08 AM Yang Wang <danrtsey...@gmail.com> wrote:
>>
>>> It seems that "EC"[1] is already supported in Kubernetes client v5.5.0.
>>> However, the default value is "RSA". Could you please export the
>>> following environment first and have a try again?
>>>
>>> export KUBERNETES_CLIENT_KEY_ALGO_SYSTEM_PROPERTY=EC
>>>
>>> [1].
>>> https://github.com/fabric8io/kubernetes-client/blob/v5.5.0/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/internal/CertUtils.java#L136
>>>
>>> Best,
>>> Yang
>>>
>>> Nicolás Ferrario <nferrari...@gmail.com> 于2021年11月12日周五 下午11:05写道:
>>>
>>>> Hi all, I am trying to run Flink on a K3s cluster and I'm getting this
>>>> exception:
>>>>
>>>> io.fabric8.kubernetes.client.KubernetesClientException: An error has
>>>>> occurred.
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:64)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.KubernetesClientException.launderThrowable(KubernetesClientException.java:53)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:234)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:66)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:51)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.BaseKubernetesClient.<init>(BaseKubernetesClient.java:145)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.DefaultKubernetesClient.<init>(DefaultKubernetesClient.java:40)
>>>>>
>>>>>         at
>>>>> org.apache.flink.kubernetes.kubeclient.FlinkKubeClientFactory.fromConfiguration(FlinkKubeClientFactory.java:95)
>>>>>
>>>>>         at
>>>>> org.apache.flink.kubernetes.KubernetesClusterClientFactory.createClusterDescriptor(KubernetesClusterClientFactory.java:61)
>>>>>
>>>>>         at
>>>>> org.apache.flink.kubernetes.KubernetesClusterClientFactory.createClusterDescriptor(KubernetesClusterClientFactory.java:39)
>>>>>
>>>>>         at
>>>>> org.apache.flink.client.deployment.application.cli.ApplicationClusterDeployer.run(ApplicationClusterDeployer.java:63)
>>>>>
>>>>>         at
>>>>> org.apache.flink.client.cli.CliFrontend.runApplication(CliFrontend.java:213)
>>>>>
>>>>>         at
>>>>> org.apache.flink.client.cli.CliFrontend.parseAndRun(CliFrontend.java:1057)
>>>>>
>>>>>         at
>>>>> org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:1132)
>>>>>
>>>>>         at
>>>>> org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:28)
>>>>>
>>>>>         at
>>>>> org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1132)
>>>>>
>>>>> Caused by: java.io.IOException: Invalid DER: object is not integer
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.PKCS1Util$Asn1Object.getInteger(PKCS1Util.java:125)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.PKCS1Util.next(PKCS1Util.java:55)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.PKCS1Util.decodePKCS1(PKCS1Util.java:46)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.CertUtils.handleOtherKeys(CertUtils.java:179)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.CertUtils.loadKey(CertUtils.java:139)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.CertUtils.createKeyStore(CertUtils.java:115)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.CertUtils.createKeyStore(CertUtils.java:251)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.SSLUtils.keyManagers(SSLUtils.java:128)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.internal.SSLUtils.keyManagers(SSLUtils.java:122)
>>>>>
>>>>>         at
>>>>> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:129)
>>>>>
>>>>
>>>> This seems to be an old issue with Fabric8 Kubernetes Client that I
>>>> guess should be fixed in newer releases. You can find more information here
>>>> https://issues.jenkins.io/browse/JENKINS-64322.
>>>>
>>>> My K3s cluster is running on version 1.21.6+k3s1, and Flink 1.14.0
>>>>
>>>> Does anyone know a workaround that does not involve replacing the
>>>> certificate with a token?
>>>>
>>>> Thanks
>>>>
>>>

Reply via email to