开发者社区> 问答> 正文

native kubernetes在不同kubernetes版本下,为什么会出现不同的构建结果?

在两个kubernetes版本下进行一样的操作,结果如下:

v1.17.4 失败 v1.15.1 成功

步骤如下:

创建rbac

rbac.yaml

apiVersion: v1 kind: ServiceAccount metadata: name: flink namespace: flink

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: flink-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: edit subjects: - kind: ServiceAccount name: flink namespace: flink

然后运行如下语句:

/usr/local/flink/flink-1.10.1/bin/kubernetes-session.sh
-Dkubernetes.cluster-id=flink
-Dkubernetes.jobmanager.service-account=flink
-Dtaskmanager.memory.process.size=4096m
-Dkubernetes.taskmanager.cpu=2
-Dtaskmanager.numberOfTaskSlots=4
-Dkubernetes.namespace=flink
-Dkubernetes.rest-service.exposed.type=NodePort
-Dakka.framesize=104857600b
-Dkubernetes.container.image=flink:1.10.1

在1.15可以正常构建出集群,在1.17版本会出现Back-off restarting failed container,查看日志除了如下日志无其他输出

Start command : /bin/bash -c $JAVA_HOME/bin/java -classpath $FLINK_CLASSPATH -Xms424m -Xmx424m -Dlog.file=/opt/flink/log/jobmanager.log -Dlogback.configurationFile=file:/opt/flink/conf/logback.xml -Dlog4j.configuration=file:/opt/flink/conf/log4j.properties org.apache.flink.kubernetes.entrypoint.KubernetesSessionClusterEntrypoint 1> /opt/flink/log/jobmanager.out 2> /opt/flink/log/jobmanager.err

尝试过通过job的方式提交,yaml如下:

apiVersion: batch/v1 kind: Job metadata: name: boot-flink namespace: flink spec: template: spec: serviceAccount: flink restartPolicy: OnFailure containers: - name: start image: flink:1.10.1 workingDir: /opt/flink command: ["bash", "-c", "$FLINK_HOME/bin/kubernetes-session.sh
-Dkubernetes.cluster-id=roc
-Dkubernetes.jobmanager.service-account=flink
-Dtaskmanager.memory.process.size=1024m
-Dkubernetes.taskmanager.cpu=1
-Dtaskmanager.numberOfTaskSlots=1
-Dkubernetes.container.image=flink:1.10
-Dkubernetes.namespace=flink"]

在1.15版本正常,在1.17版本,无法构建出对应的service,失败的现象不一样。

我的操作是否是有其他疏漏的地方?目前我遭遇到的使用场景说明如上,希望得到一些回复和解答说明,非常感谢。

来自志愿者整理的flink邮件归档来自志愿者整理的FLINK邮件归档

展开
收起
小阿怪 2021-12-04 17:24:00 735 0
1 条回答
写回答
取消 提交回答
  • 很高兴尝试native K8s,默认情况下Pod的log是没有输出到console的,所以 会导致kubectl logs查看不了,可以参考这个文档[1]进行配置,然后看到具体报错。

    当然,需要首先确认的是service、deployment、ConfigMap已经创建成功,如果失败 的话,Flink client端应该会有报错信息的

    [1]. https://ci.apache.org/projects/flink/flink-docs-master/ops/deployment/native_kubernetes.html#log-files

    来自志愿者整理的flink邮件归档来自志愿者整理的FLINK邮件归档

    2021-12-04 22:17:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像