部署后,我会在Pod的开头进行一些操作。但是不想这样做来扩大规模。如果是新部署或扩展/重新创建事件,是否有办法识别Pod的创建时间
答案 0 :(得分:0)
因此,您要在部署后的第一个可用pod上运行一些数据库脚本。
如果在创建部署期间执行以下步骤,它将对您有用:
$ kubectl apply -f app-deployment.yml
// This will give some time for the pod to start.
$ WAIT_BEFORE_DATABASE_SETUP="${WAIT_BEFORE_DATABASE_SETUP-120}"
$ sleep $WAIT_BEFORE_DATABASE_SETUP
// Pick any one pod which is in Running State
$ APP_POD_NAME=$(kubectl get pods --field-selector=status.phase=Running -o=custom-columns=NAME:.metadata.name | grep <deployment-name> | head -1)
$ kubectl exec -it $APP_POD_NAME -- bash -c "/scripts/run_db_updates.sh"
答案 1 :(得分:0)
一种可能的解决方案是更新数据库中的标志,并让脚本检查该标志的值。