Sed 无法在aks中启动apache nifi

Sed 无法在aks中启动apache nifi,sed,apache-nifi,azure-aks,Sed,Apache Nifi,Azure Aks,大家好,我正在Nifi上工作,我正在尝试将其安装在AKS(Azure kubernetes服务)中。 使用nifi 1.9.2版本。在AKS中安装它时,给了我一个错误 replacing target file /opt/nifi/nifi-current/conf/nifi.properties sed: preserving permissions for ‘/opt/nifi/nifi-current/conf/sedSFiVwC’: Operation not permitted re

大家好,我正在Nifi上工作,我正在尝试将其安装在AKS(Azure kubernetes服务)中。 使用nifi 1.9.2版本。在AKS中安装它时,给了我一个错误

replacing target file  /opt/nifi/nifi-current/conf/nifi.properties
sed: preserving permissions for ‘/opt/nifi/nifi-current/conf/sedSFiVwC’: Operation not permitted
replacing target file  /opt/nifi/nifi-current/conf/nifi.properties
sed: preserving permissions for ‘/opt/nifi/nifi-current/conf/sedK3S1JJ’: Operation not permitted
replacing target file  /opt/nifi/nifi-current/conf/nifi.properties
sed: preserving permissions for ‘/opt/nifi/nifi-current/conf/sedbcm91T’: Operation not permitted
replacing target file  /opt/nifi/nifi-current/conf/nifi.properties
sed: preserving permissions for ‘/opt/nifi/nifi-current/conf/sedIuYSe1’: Operation not permitted
NiFi running with PID 28.
The specified run.as user nifi
 does not exist. Exiting.
Received trapped signal, beginning shutdown...
下面是我的nifi.yml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nifi-core
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nifi-core
  template:
    metadata:
      labels:
        app: nifi-core
    spec:
      containers:
        - name: nifi-core
          image: my-azurecr.io/nifi-core-prod:1.9.2
          env:
            - name: NIFI_WEB_HTTP_PORT
              value: "8080"
            - name: NIFI_VARIABLE_REGISTRY_PROPERTIES
              value: "./conf/custom.properties"
          resources:
            requests:
              cpu: "6"
              memory: 12Gi
            limits:
              cpu: "6"
              memory: 12Gi
          ports:
            - containerPort: 8080
          volumeMounts:
            - name: my-nifi-core-conf
              mountPath: /opt/nifi/nifi-current/conf
      volumes:
        - name: my-nifi-core-conf
          azureFile:
            shareName: my-file-nifi-core/nifi/conf
            secretName: my-nifi-secret
            readOnly: false
我在nifi
Dockerfile
中进行了一些定制,它复制了一些与我的配置相关的配置文件。当我在本地运行我的azurecr.io/nifi core产品:1.9.2docker映像时,它会按预期工作 但当我试图在AKS上运行它时,它给出了上面的错误。由于它与权限相关,我在Dockerfile中尝试了用户
nifi
root

在同一资源组中运行的卷
my nifi core conf
中提供了所有必需的配置文件。 由于我正在使用docker启动nifi,我的例外是,无论环境如何,它的行为都是一样的。无论是在我的本地还是在AKS。 但错误也表示用户nifi不存在。官方设置了用户需求


有人能帮忙吗,我不能在交互模式下启动容器,因为pods处于非运行模式。提前感谢。

我认为您缺少Kubernetes吊舱的安全上下文定义。Nifi在Docker中运行的用户有一个特定的UID和GID,如果您收到错误消息,我会怀疑,因为该用户没有在Pod的安全上下文中定义,所以它没有按预期启动

请看一下Kubernetes文档中有关安全上下文的部分,这应该足以让您开始学习

在测试Kubernetes部署时,我还会考虑使用Minikube之类的工具,因为Kubernetes在Docker这样的容器引擎周围添加了大量控件

安全上下文文档:
Minikube:

是的。。。我读过securityContext,并怀疑同样的问题。不知何故,我能够找出文件的所有者及其
root:nifi
,它应该是
nifi:nifi
securityContext
只允许整数值。您是否在本地将卷装载到容器内的同一路径,并且效果良好?也许你走错了路。我看到
conf
路径是
/opt/nifi/conf
。请参见图像nifi。你使用这个图像吗?conf路径是
/opt/nifi/nifi current
ENV nifi_BASE_DIR=/opt/nifi
ENV nifi_HOME${nifi_BASE_DIR}/nifi current
最后是`mkdir-p${nifi HOME}/conf`好的,我犯了错误。您是否在本地成功装载卷?是。。。问题在于修改文件的权限
/opt/nifi/nifi current/conf
只是您要修改的文件?它不是一个目录?