我正在尝试与服务一起创建部署,然后在部署完成后立即立即访问服务:
> kubectl create -f my-deployment.yaml
> kubectl create -f my-service.yaml
> kubectl rollout status deployment/my-deployment --watch --timeout 10m # This usually takes ~30 seconds
deployment "my-deployment" successfully rolled out
> curl "my-service" # This happens inside a pod,so the service DNS name should be available
有时这是可行的,但是似乎存在竞争情况-如果curl
命令执行得太快,则似乎套接字无法连接,并且我得到了连接超时。
根据以下问题,这似乎是如果没有准备好的豆荚时我会得到的行为:What happens when a service receives a request but has no ready pods?
我期望推出的完成意味着可以保证该服务已经准备就绪。不是这样吗?是否有一些Kubernetes命令“等待”服务可用? (我注意到服务没有条件,所以您不能kubectl wait
...)