Pau*_*lMB 2 docker kubernetes kubectl
我成功运行了 kubernetes、gcloud 和 postgres,但我想在 pod 启动后进行一些修改,我试图移动一些文件,所以我尝试了这 3 个选项
1
image: paunin/postgresql-cluster-pgsql
lifecycle:
postStart:
exec:
command: [/bin/cp /var/lib/postgres/data /tmpdatavolume/]
Run Code Online (Sandbox Code Playgroud)
2
image: paunin/postgresql-cluster-pgsql
lifecycle:
postStart:
exec:
command:
- "cp"
- "/var/lib/postgres/data"
- "/tmpdatavolume/"
Run Code Online (Sandbox Code Playgroud)
3
image: paunin/postgresql-cluster-pgsql
lifecycle:
postStart:
exec:
command: ["/bin/cp "]
args: ["/var/lib/postgres/data","/tmpdatavolume/"]
Run Code Online (Sandbox Code Playgroud)
在选项 1 和 2 上,我收到相同的错误(来自 kubectl get events)
Killing container with docker id f436e40f5df2: PostStart handler: Error ex
ecuting in Docker Container: -1
Run Code Online (Sandbox Code Playgroud)
在选项 3 中,它甚至不会让我上传给我这个错误的 yaml 文件
error validating "postgres-master.yaml": error validating data: found invalid field args for v1.ExecAction; if you choose to ignore these errors, turn validation off with --validate=false
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!谢谢。pd:我只是粘贴了我的 yaml 文件的一部分,因为自从我添加了那些新行后我没有收到任何错误
您的选项 1 不起作用,应该给您您看到的错误,而应该是["/bin/cp","/var/lib/postgres/data","/tmpdatavolume/"]。选项 2 也是指定它的正确方法。您可以kubectl exec进入您的 Pod 并输入这些命令以查看生成的错误消息吗?做类似的事情kubectl exec <pod-name> -i -t -- bash -il
选项 3 中显示的错误消息意味着您没有将有效的配置传递给 API 服务器。要了解 API 定义,请参阅v1.Lifecycle并单击几下进入其子字段后,您会发现args在下面无效lifecycle.postStart.exec。
或者,您可以使用 找到那些 API 定义kubectl explain,例如kubectl explain pods.spec.containers.lifecycle.postStart.exec在这种情况下。
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |