NYC's Blog - Flink快速了解(4)——NativeKubernetes&HA 的评论 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html zh-CN Flink的1.12.0版本前段时间发布了,又带来了很多新特性,其中有两个跟容器化相关的特性:Native Kubernetes部署方式由之前的实验性(experimental)变为正式特性,也... Sun, 27 Dec 2020 23:10:08 +0800 Sun, 27 Dec 2020 23:10:08 +0800 NYC http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-654 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-654 Sun, 27 Dec 2020 23:10:08 +0800 NYC 我大概知道问题了,之前没注意看,你用的是minikube。你用docker images命令是在你的mac上执行的,而不是在minikube创建的虚机(即k8s的node)里面执行的对吧?如果是这样的话,那也是不行的,pod是运行在node上的,所以它是检查node上面有没有这个镜像,而不是你的mac主机。如果是这个问题,

  • 方法一:你可以登录到node上面去打镜像;
  • 方法二:把你打的镜像推送到某个registry去,然后从这里拉取。
]]>
http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-654#comments
蟋蟀 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-653 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-653 Sun, 27 Dec 2020 22:36:12 +0800 蟋蟀 只是在本地测试,我生成的镜像名称叫flink:1.12.0-scala_2.12-java8,启动flink集群的命令是
./bin/kubernetes-session.sh \

-Dkubernetes.container.image=flink:1.12.0-scala_2.12-java8 \
-Dkubernetes.rest-service.exposed.type=NodePort \
-Dtaskmanager.numberOfTaskSlots=2 \
-Dkubernetes.cluster-id=flink-session-cluster

结果显示 Create flink session cluster flink-session-cluster successfully, JobManager Web Interface: http://192.168.99.100:32247
但用kubectl get pods命令查看显示pod一直处理ContainerCreating状态长达数分钟。再通过kubectl describe pod xxx查看,显示有两处error:
MountVolume.SetUp failed for volume "flink-config-volume" : configmap "flink-config-flink-session-cluster" not found
MountVolume.SetUp failed for volume "hadoop-config-volume" : configmap "hadoop-config-flink-session-cluster" not found
Failed to pull image "flink:1.12.0-scala_2.12-java8": rpc error: code = Unknown desc = Error response from daemon: manifest for flink:1.12.0-scala_2.12-java8 not found: manifest unknown: manifest unknown
Error: ImagePullBackOff
Error: ErrImagePull
然而通过docker images命令查看该镜像的确是存在的
REPOSITORY TAG IMAGE ID CREATED SIZE
flink 1.12.0-scala_2.12-java8 f7dd9b9e020b 12 hours ago 642MB
还请看看是哪里出了问题?谢谢!

]]>
http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-653#comments
NYC http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-651 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-651 Sun, 27 Dec 2020 13:32:29 +0800 NYC docker build构建的镜像是在你本地的(就跟你docker pull下来的镜像一样)。你并没有把他docker push到某个仓库里面去,所以用docker pull是拉不下来的(因为远程仓库就是没有这个镜像),也就会报你说的错误。现在是这样:

  1. 如果你只是本地测试,那么这个镜像你本地已经有了,不需要docker pull,直接使用即可。flink提交任务时默认的拉取镜像策略是IfNotPresent,你本地已经有了,它会直接使用,不会docker pull。也就是默认你就直接提交任务就行。
  2. 如果你要在其它环境/机器上面测试,那你就要把这个镜像push到一个registry去,比如docker hub,然后在其它机器上面才能docker pull拉取。
]]>
http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-651#comments
蟋蟀 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-650 http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-650 Sun, 27 Dec 2020 13:14:48 +0800 蟋蟀 我在mac机器上安装好了minikube,并按照上述步骤成功构建了flink 1.12版本的docker image,使用docker images命令能够列出新构建的镜像,

REPOSITORY TAG IMAGE ID CREATED SIZE
flink 1.12.0-scala_2.12-java8 f7dd9b9e020b 3 hours ago 642MB

然而在执行命令 docker pull flink:1.12.0-scala_2.12-java8 时报如下错误:
Error response from daemon: manifest for flink:1.12.0-scala_2.12-java8 not found: manifest unknown: manifest unknown
导致后面用kubernetes session部署flink作业失败。请问该错误应该如何解决?谢谢!

]]>
http://niyanchun.com/flink-quick-learning-4-native-kubernetes-ha.html/comment-page-1#comment-650#comments