0

在我的 DO 服务器上,我试图在 中运行kubectl get deployments -o=jsonshell_exec但它要么返回,要么返回null一个空列表:

{
    "apiVersion": "v1",
    "items": [],
    "kind": "List",
    "metadata": {
        "resourceVersion": "",
        "selfLink": ""
    }
}

但是当我在本地运行它时,它可以工作:

{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "apps/v1",
            "kind": "Deployment",
            "metadata": {
                "annotations": {
                    "deployment.kubernetes.io/revision": "1",
                    "kubectl.kubernetes.io/last-applied-configuration": "..."
                },
                "creationTimestamp": "2021-09-23T11:41:11Z",
                "generation": 1,
                "name": "database-1911797883",
                "namespace": "default",
                "resourceVersion": "...",
                "uid": "..."
            },
            "spec": {
                ...
                "replicas": 1,
                "revisionHistoryLimit": 10,
                "selector": {
                    "matchLabels": {
                        "app": "database-1911797883"
                    }
                },
                "template": {
                    "metadata": {
                        "creationTimestamp": null,
                        "labels": {
                            "app": "database-1911797883"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "image": "...",
                                "imagePullPolicy": "Always",
                                "name": "database-1911797883",
                                "resources": {},
                                "terminationMessagePath": "/dev/termination-log",
                                "terminationMessagePolicy": "File"
                            }
                        ],
                        "dnsPolicy": "ClusterFirst",
                        "restartPolicy": "Always",
                        "schedulerName": "default-scheduler",
                        "securityContext": {},
                        "terminationGracePeriodSeconds": 30
                    }
                }
            },
            "status": {
                "availableReplicas": 1,
                "conditions": [
                    ...
                ],
                "observedGeneration": 1,
                "readyReplicas": 1,
                "replicas": 1,
                "updatedReplicas": 1
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": "",
        "selfLink": ""
    }
}

我知道这shell_exec在 php-fpm 中没有被禁用,并且在cli 和 clikubectl config view中都打印了相同的值。shell_exec

我配置为以通过 cli 执行命令的同一用户身份运行 php-fpm。

4

1 回答 1

0

打开您的/etc/php-fpm.d/www.conf(或conf您用于网络的任何文件)并取消注释clear_env = no.

从文档

 clear_env bool

    Clear environment in FPM workers. Prevents arbitrary environment
variables from reaching FPM worker processes by clearing the environment
in workers before env vars specified in this pool configuration are added.
Default value: Yes.

因此,将其设置为no将允许工作人员使用导致预期输出的环境信息。

于 2021-09-23T20:11:41.650 回答