I think what we need in the Native Kubernetis Config is to mount custom
ConfigMap, Secrets, and Volumes

I see that in the upcoming release, Secrets are able to get mounted

https://github.com/apache/flink/pull/14005 <- also can maintainers look
into this PR so we can mount other custom K8S resources?

On Fri, Nov 20, 2020 at 9:23 PM Kevin Kwon <fsw0...@gmail.com> wrote:

> Hi I am using MinIO as a S3 mock backend for Native K8S
>
> Everything seems to be fine except that it cannot connect to S3 since
> self-signed certificates' trusted store are not cloned in Deployment
> resources
>
> Below is in order, how I add the trusted keystore by using keytools and
> how I run my app with the built image
>
> FROM registry.local/mde/my-flink-app:0.0.1
> COPY s3/certs/public.crt $FLINK_HOME/s3-e2e-public.crt
> RUN keytool \
>   -noprompt \
>   -alias s3-e2e-public \
>   -importcert \
>   -trustcacerts \
>   -keystore $JAVA_HOME/lib/security/cacerts \
>   -storepass changeit \
>   -file $FLINK_HOME/s3-e2e-public.crt
>
> $FLINK_HOME/bin/flink run-application \
>   -t kubernetes-application \
>     -Denv.java.opts="-Dkafka.brokers=kafka-external:9092 
> -Dkafka.schema-registry.url=kafka-schemaregistry:8081" \
>     -Dkubernetes.container-start-command-template="%java% %classpath% 
> %jvmmem% %jvmopts% %logging% %class% %args%" \
>     -Dkubernetes.cluster-id=${K8S_CLUSTERID} \
>     
> -Dkubernetes.container.image=${DOCKER_REPO}/${ORGANISATION}/${APP_NAME}:${APP_VERSION}
>  \
>     -Dkubernetes.namespace=${K8S_NAMESPACE} \
>     -Dkubernetes.rest-service.exposed.type=${K8S_RESTSERVICE_EXPOSED_TYPE} \
>     -Dkubernetes.taskmanager.cpu=${K8S_TASKMANAGER_CPU} \
>     -Dresourcemanager.taskmanager-timeout=3600000 \
>     -Dtaskmanager.memory.process.size=${TASKMANAGER_MEMORY_PROCESS_SIZE} \
>     -Dtaskmanager.numberOfTaskSlots=${TASKMANAGER_NUMBEROFTASKSLOTS} \
>     -Ds3.endpoint=s3:443 \
>     -Ds3.access-key=${S3_ACCESSKEY} \
>     -Ds3.secret-key=${S3_SECRETKEY} \
>     -Ds3.path.style.access=true \
>     -Dstate.backend=filesystem \
>     -Dstate.checkpoints.dir=s3://${ORGANISATION}/${APP_NAME}/checkpoint \
>     -Dstate.savepoints.dir=s3://${ORGANISATION}/${APP_NAME}/savepoint \
>     local://${FLINK_HOME}/usrlib/${APP_NAME}-assembly-${APP_VERSION}.jar
>
> However, I get the following error and I don't see my trusted key in keytools 
> when I login to the pod (seems the trustedstore is not cloned)
>
> Caused by: org.apache.flink.util.FlinkRuntimeException: Failed to create 
> checkpoint storage at checkpoint coordinator side.
>         at 
> org.apache.flink.runtime.checkpoint.CheckpointCoordinator.<init>(CheckpointCoordinator.java:305)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.checkpoint.CheckpointCoordinator.<init>(CheckpointCoordinator.java:224)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.executiongraph.ExecutionGraph.enableCheckpointing(ExecutionGraph.java:483)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.executiongraph.ExecutionGraphBuilder.buildGraph(ExecutionGraphBuilder.java:338)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.scheduler.SchedulerBase.createExecutionGraph(SchedulerBase.java:269)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.scheduler.SchedulerBase.createAndRestoreExecutionGraph(SchedulerBase.java:242)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.scheduler.SchedulerBase.<init>(SchedulerBase.java:229)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.scheduler.DefaultScheduler.<init>(DefaultScheduler.java:119)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.scheduler.DefaultSchedulerFactory.createInstance(DefaultSchedulerFactory.java:103)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobMaster.createScheduler(JobMaster.java:284)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobMaster.<init>(JobMaster.java:272) 
> ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:98)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.jobmaster.factories.DefaultJobMasterServiceFactory.createJobMasterService(DefaultJobMasterServiceFactory.java:40)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.jobmaster.JobManagerRunnerImpl.<init>(JobManagerRunnerImpl.java:140)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.dispatcher.DefaultJobManagerRunnerFactory.createJobManagerRunner(DefaultJobManagerRunnerFactory.java:84)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> org.apache.flink.runtime.dispatcher.Dispatcher.lambda$createJobManagerRunner$6(Dispatcher.java:388)
>  ~[flink-dist_2.12-1.11.2.jar:1.11.2]
>         at 
> java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
>  ~[?:1.8.0_265]
>         ... 6 more
> Caused by: org.apache.hadoop.fs.s3a.AWSClientIOException: doesBucketExist on 
> mde: com.amazonaws.SdkClientException: Unable to execute HTTP request: 
> Unrecognized SSL message, plaintext connection?: Unable to execute HTTP 
> request: Unrecognized SSL message, plaintext connection?
>
>

Reply via email to