将文件传递到kubernetes Pod中的docker容器



我是Kubernetes的初学者,我想实现的是:

  • 将用户的ssh私钥/公钥传递到Pod,然后传递到Docker容器(有一个shell脚本将使用该密钥(

所以我想知道是否可以在Kuectl应用程序中做到这一点?

我的pod.yaml看起来像:

apiVersion: v1
kind: Pod
metadata:
generateName: testing
labels:
type: testing
namespace: ns-test
name: testing-config
spec:
restartPolicy: OnFailure
hostNetwork: true
containers:
- name: mycontainer
image: ".../mycontainer:latest"

您必须将私钥/公钥存储在kubernetes秘密对象中

apiVersion: v1
kind: Secret
metadata:
name: mysshkey
namespace: ns-test
data:
id_rsa: {{ value }}
id_rsa.pub: {{ value }}

现在你可以在你的容器中装载这个秘密文件:

containers:
- image: "my-image:latest"
name: my-app
...
volumeMounts:
- mountPath: "/var/my-app"
name: ssh-key
readOnly: true
volumes:
- name: ssh-key
secret:
secretName: mysshkey

kuberentes的文档还提供了一章"使用Pod 中的机密文件">

它没有经过测试,但我希望它能起作用。

首先,使用密钥创建一个秘密:kubectl create secret generic mysecret-keys --from-file=privatekey=</path/to/the/key/file/on/your/host> --from-file=publickey=</path/to/the/key/file/on/your/host>

然后你使用你的吊舱中的秘密参考关键文件:

apiVersion: v1
kind: Pod
metadata:
...
spec:
...
containers:
- name: mycontainer
image: ".../mycontainer:latest"
volumeMounts:
- name: mysecret-keys
mountPath: /path/in/the/container  # <-- privatekey & publickey will be mounted as file in this directory where your shell script can access
volumes:
- name: mysecret-keys
secret:
secretName: mysecret-keys  # <-- mount the secret resource you created above

您可以使用kubectl get secret mysecret-keys --output yaml检查机密。您可以使用kubectl describe pod testing-config检查吊舱及其安装。

相关内容

  • 没有找到相关文章

最新更新