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
Elixir Kubernetes群集和Phoenix-自动执行“mix-exto.migrate”?_Elixir_Kubernetes_Gitlab_Phoenix Framework - Fatal编程技术网

Elixir Kubernetes群集和Phoenix-自动执行“mix-exto.migrate”?

Elixir Kubernetes群集和Phoenix-自动执行“mix-exto.migrate”?,elixir,kubernetes,gitlab,phoenix-framework,Elixir,Kubernetes,Gitlab,Phoenix Framework,我正在把我的Phoenix应用程序推到Kubernetes集群进行审查。我使用GitLab为web服务器创建一个服务,为临时postgres pod创建另一个服务 我想做的是自动化mixexto.create和mixexto.migrate。然而,有一个时间问题——postgres服务器还没有准备好的时间很短 在创建web应用程序服务之前,我可以在部署脚本中轮询postgres服务。但是,这是最实用的方法吗?库伯内特斯有一种方法,可以帮助你 根据文档,这里是一个等待dB容器的应用程序容器的示例

我正在把我的Phoenix应用程序推到Kubernetes集群进行审查。我使用GitLab为web服务器创建一个服务,为临时postgres pod创建另一个服务

我想做的是自动化
mixexto.create
mixexto.migrate
。然而,有一个时间问题——postgres服务器还没有准备好的时间很短


在创建web应用程序服务之前,我可以在部署脚本中轮询postgres服务。但是,这是最实用的方法吗?

库伯内特斯有一种方法,可以帮助你

根据文档,这里是一个等待dB容器的应用程序容器的示例

apiVersion: v1 
kind: Pod 
metadata: 
  name: myapp-pod 
  labels: 
    app: myapp 
spec: 
  containers: 
  - name: myapp-container 
    image: busybox 
    command: ['sh', '-c', 'echo The app is running! && sleep 3600'] 
  initContainers: 
  - name: init-myservice 
    image: busybox 
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;'] 
  - name: init-mydb 
    image: busybox 
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;'] 

谢谢我会查的这太棒了!与我最初的建议相比,init containers机制是一个优雅/健壮的解决方案。你知道有没有办法通过部署来实现这一点吗?事实证明,我的集群是在v1.5上。升级到v1.6解决了我的问题-您可以在部署yaml中包含
initContainers