k8s serviceAccountName填写后应用没有进行挂载问题处理

k8s机制:

使用yaml文件创建应用时,填写serviceAccountName后,pod会自动挂载serviceAccount所创建的密钥。pod默认挂载default密钥.

问题:

使用Java方式创建应用,填写serviceAccountName后,pod密钥无法挂载。

问题定位与解决:

经过创建日志查到json确实填写了serviceAccountName。

后来经过资料查询,pod里有个字段automountServiceAccountToken

在这里插入图片描述

该字段作用决定serviceAccountName,是否自动挂载相应密钥。

k8s默认该字段为true.

但是使用编译语言java或者类似语言,该字段定义为boolean类型

在这里插入图片描述

在类型Java语言中,boolean的默认值都是false.

所以导致填写serviceAccountName也无法自动挂载密钥。

解决:将类似k8s机制为true的字段,在定义实体类对象时设置默认值true。
防止因语言差异造成时间浪费

你可能感兴趣的:(日常随笔,java,k8s)