Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 库伯内特斯讲述了秘密以及如何在豆荚中消费它们_Kubernetes_Google Kubernetes Engine_Kubectl - Fatal编程技术网

Kubernetes 库伯内特斯讲述了秘密以及如何在豆荚中消费它们

Kubernetes 库伯内特斯讲述了秘密以及如何在豆荚中消费它们,kubernetes,google-kubernetes-engine,kubectl,Kubernetes,Google Kubernetes Engine,Kubectl,我在我的项目中使用GCP容器引擎,现在我面临一些问题,我不知道是否可以通过秘密解决 我的一个部署是node js app server,在那里我使用一些npm模块,这些模块需要我的GCP服务帐户密钥(.json文件)作为输入。 输入是这个json文件所在的路径。目前,我通过将此文件作为docker映像的一部分提供,并在代码中输入此文件的路径,使其正常工作。问题是,我认为这不是一个好的解决方案,因为我想将我的nodejs映像与服务帐户键解耦,因为服务帐户键可能会更改(例如dev、test、prod

我在我的项目中使用GCP容器引擎,现在我面临一些问题,我不知道是否可以通过秘密解决

我的一个部署是node js app server,在那里我使用一些npm模块,这些模块需要我的GCP服务帐户密钥(.json文件)作为输入。 输入是这个json文件所在的路径。目前,我通过将此文件作为docker映像的一部分提供,并在代码中输入此文件的路径,使其正常工作。问题是,我认为这不是一个好的解决方案,因为我想将我的nodejs映像与服务帐户键解耦,因为服务帐户键可能会更改(例如dev、test、prod),并且我将无法重用现有映像(除非我将构建并将其推送到另一个注册表) 所以我想知道是否有可能将这个服务帐户json文件作为机密上传,然后在我的pod中使用它。我看到可以从文件中创建机密,但我不知道是否可以指定存储此json文件的位置的路径。如果不可能使用机密(因为机密可能未保存在文件中…),那么如何(如果)实现


提前感谢

我认为你部署在GKE/GCE上,你不需要钥匙,它会很好地工作

我只测试过谷歌云日志,但其他服务可能也是如此

在gke/gce上部署应用程序时,我只需要以下信息

var loggingClient = logging({
    projectId: 'grape-spaceship-123'
});

您可以将json文件保密,并在pod中使用。请参阅以下链接了解机密(),但我将在下面进行总结:

首先从json文件创建一个秘密:

kubectl create secret generic nodejs-key --from-file=./key.json 
现在您已经创建了秘密,您可以在pod中消费(在本例中为卷):


因此,当你的pod旋转起来时,文件将被放入/etc/foo/key.json中的“文件系统”中,我知道,但我的问题更一般。。不管怎样,我设法自己解决了这个问题。非常感谢你的回答!嗨,说实话。。。昨天我自己设法解决了这个问题,但这正是我所做的。非常感谢您的详细回答!
{
 "apiVersion": "v1",
 "kind": "Pod",
  "metadata": {
    "name": "nodejs"
  },
  "spec": {
    "containers": [{
      "name": "nodejs",
      "image": "node",
      "volumeMounts": [{
        "name": "foo",
        "mountPath": "/etc/foo",
        "readOnly": true
      }]
    }],
    "volumes": [{
      "name": "foo",
      "secret": {
        "secretName": "nodejs-key"
      }
    }]
  }
}