官网例子[1]没有改动之前,是可以正常启动的
原来的配置文件内容如下
...
"volumes": [
  {
        "name": "flink-config-volume",
        "configMap": {
          "name": "flink-config",
          "items": [
                {
                  "key": "flink-conf.yaml",
                  "path": "flink-conf.yaml"
                },
                {
                  "key": "log4j-console.properties",
                  "path": "log4j-console.properties"
                }
          ],
          "defaultMode": 420
        }
  }
],
...
"volumeMounts": [
  {
        "name": "flink-config-volume",
        "mountPath": "/opt/flink/conf"
  }
],
...

后面在k8s上修改了yaml文件,就是增加了其他volumes
然后增加uploadjar, completed-jobs和lib的挂载,如下
...
"volumes": [
  {
        "name": "flink-config-volume",
        "configMap": {
          "name": "flink-config",
          "items": [
                {
                  "key": "flink-conf.yaml",
                  "path": "flink-conf.yaml"
                },
                {
                  "key": "log4j-console.properties",
                  "path": "log4j-console.properties"
                }
          ],
          "defaultMode": 420
        }
  },
  {
        "name": "flink-uploadjar-volume",
        "hostPath": {
          "path": "/data/volumes/flink/jobmanager/uploadjar",
          "type": ""
        }
  },
  {
        "name": "flink-completejobs-volume",
        "hostPath": {
          "path": "/data/volumes/flink/jobmanager/completed-jobs/",
          "type": ""
        }
  },
  {
        "name": "libs-volume",
        "hostPath": {
          "path": "/data/volumes/flink/jobmanager/lib",
          "type": ""
        }
  }
],
...
"volumeMounts": [
  {
        "name": "flink-config-volume",
        "mountPath": "/opt/flink/conf"
  },
  {
        "name": "flink-uploadjar-volume",
        "mountPath": "/opt/flink/flink-uploadjar"
  },
  {
        "name": "flink-completejobs-volume",
        "mountPath": "/opt/flink/completed-jobs/"
  },
  {
        "name": "libs-volume",
        "mountPath": "/opt/flink/lib"
  }
],
...
增加了volume之后就报了错误
2020-09-29T12:09:33.055804861Z Starting Job Manager
2020-09-29T12:09:33.061359237Z sed: couldn't open temporary file
/opt/flink/conf/sedVef7YR: Read-only file system
2020-09-29T12:09:33.06561576Z sed: couldn't open temporary file
/opt/flink/conf/sed4a7zGR: Read-only file system
2020-09-29T12:09:33.068683501Z /docker-entrypoint.sh: 72:
/docker-entrypoint.sh: cannot create /opt/flink/conf/flink-conf.yaml:
Permission denied
2020-09-29T12:09:33.068700999Z /docker-entrypoint.sh: 91:
/docker-entrypoint.sh: cannot create /opt/flink/conf/flink-conf.yaml.tmp:
Read-only file system
2020-09-29T12:09:33.919147511Z Starting standalonesession as a console
application on host flink-jobmanager-6d5bc45dbb-jjs4f.
2020-09-29T12:09:34.154740531Z log4j:WARN No appenders could be found for
logger (org.apache.flink.runtime.entrypoint.ClusterEntrypoint).
2020-09-29T12:09:34.154769537Z log4j:WARN Please initialize the log4j system
properly.
2020-09-29T12:09:34.154776198Z log4j:WARN See
http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

经过排查,发现是在挂载了/opt/flink/lib之后就会出错,挂载其他目录是可以正常运行的/opt/flink/flink-uploadjar,/opt/flink/completed-jobs/

就是增加了下面这个配置出现的错误
"volumeMounts": [
  ...
  {
        "name": "libs-volume",
        "mountPath": "/opt/flink/lib"
  }
  ...
],



[1]:https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/deployment/kubernetes.html#session-cluster-resource-definitions




--
Sent from: http://apache-flink.147419.n8.nabble.com/

回复