Bash Kubernetes部署:preStop不执行aws命令
我正试图在pod终止之前将日志转移到S3。为此,我们需要Bash Kubernetes部署:preStop不执行aws命令,bash,amazon-web-services,kubernetes,minikube,kubernetes-deployment,Bash,Amazon Web Services,Kubernetes,Minikube,Kubernetes Deployment,我正试图在pod终止之前将日志转移到S3。为此,我们需要 将容器配置为具有AWS-CLI。我成功地做到了这一点 在postStart钩子中使用脚本 执行AWS S3命令将文件从主机路径传输到S3 水桶差点就有了这个 以下是我的Kube部署(在minikube上运行): apiVersion:extensions/v1beta1 种类:部署 元数据: 名称:logtransfer poc 规格: 副本:1份 模板: 元数据: 标签: 应用程序:日志 规格: 卷数: -名称:秘密资源 秘密: 秘籍
apiVersion:extensions/v1beta1
种类:部署
元数据:
名称:logtransfer poc
规格:
副本:1份
模板:
元数据:
标签:
应用程序:日志
规格:
卷数:
-名称:秘密资源
秘密:
秘籍名称:地方秘密
-名称:testdata
主机路径:
路径:/data/testdata
容器:
-名称:logtransfer poc
图像:someImage
端口:
-名称:https端口
集装箱港口:8443
命令:[“/bin/bash”、“-c”、“--”]
args:[“当为true时;执行睡眠30;完成;”]
体积数量:
-名称:秘密资源
装载路径:“/data/apache-tomcat/tomcat/resources”
-名称:testdata
装载路径:“/data/testdata”
生命周期:
启动后:
执行官:
命令:[“/bin/sh”、“-c”、“cd/data/testdata/&&chmod u+x installS3Script.sh&./installS3Script.sh>postInstall.logs”]
预停止:
执行官:
命令:[“/bin/sh”、“-c”、“cd/data/testdata/&&chmod u+x transferFilesToS3.sh&./transferFilesToS3.sh>postTransfer.logs”]
terminationMessagePath:/data/testdata/终止日志
终止时间:30秒
你的秘密:
-姓名:我的docker凭证
也许使用起来会更方便
Skbn是一种用于在Kubernetes和云存储提供商之间复制文件和目录的工具。它是以1981年的电子游戏命名的。Skbn在复制过程中使用内存缓冲区,以避免过度内存消耗。Skbn目前支持以下提供商:
-AWS S3
-迷你S3
-Azure Blob存储
您可以使用:
skbn cp \
--src k8s://<namespace>/<podName>/<containerName>/<path> \
--dst s3://<bucket>/<path>
skbn-cp\
--src k8s://\
--dst s3:///
您应该查看使用情况,因为它需要设置ClusterRole、ClusterRoleBinding和ServiceAccount。我不确定skbn如何与我要实现的目标相匹配?!仅供参考,我将installScript添加到transferScript中,以便在preStop钩子中设置aws cli并执行aws命令,这样就可以了!!仍然不确定为什么我不能同时使用postStart和preStop!?!?