Ensure you have followed the setup instructions for your local OS here. Memory requirements for running Docker/Kubernetes locally can often catch people out.
If you have an existing DNS service running on port 53 on your machine, that can conflict when trying to set up the local DNS resolution for your development Rack. Disabling the service during installation and forwarding traffic for *.convox
domains should help.
If you have a process running on port 80 or 443 on your machine, that can conflict when trying to set up the Load Balancer for your development Rack. Disabling the service or using a different port will fix the problem.
The error message is usually quite informative. If you have existing resources running in your cloud provider and you are near your account limits, a Rack install can sometimes breach those limits, requiring you to request an increase in the appropriate resource (IP addresses, CPU allowances etc). Once your limit has been increased, the Rack should install successfully.
Sometimes the Cloud providers will have internal issues which can prevent certain actions. It’s always worth checking the status pages and reporting for your provider and retrying an install once the issue has been resolved.
A failed Rack install should either be able to continued with, or be uninstalled successfully as required. You can retry the installation by simply running convox rack update -r <rackname>
.
If your Rack consistently fails to install into your Cloud provider and there are no relevant issues reported then please raise a support ticket for us to investigate.
Sometimes the errors that come back from Kubernetes and/or the cloud providers are useful, sometimes they’re more obtuse.
You can check your Application logs with the convox logs
command. Use the --filter
and --since
flags to help narrow down your output if needed!
You can view the logs from your App build process with convox builds logs <build>
if you are having issues at that stage.
Finally you can view the underlying Rack logs with convox rack logs
to look for information around scaling or other external events.
When you know there is an issue and want to stop a deployment, you can run the convox apps cancel
command. This will trigger an immediate rollback so you can fix the problem and try another deployment.
Convox uses LetsEncrypt to automatically and seamlessly provision SSL certificates for your App’s domains if needed. In order for the provisioning to be successful, the DNS records for all the domains you list in your convox.yml
for your App must resolve to the router address for your Rack. If you get a certificate warning and see the certificate is listed as a “Kubernetes Ingress Controller Fake Certificate”, this means the provisioning has failed, most likely because of DNS resolution issues. Check these and try again!
Any Services within your App that expose a port will require a passing health check before receiving traffic. Deploying a Release of your App that does not pass the health checks will result in a rollback to the previous release. If this is your first release of a new App, a failing health check will result in a failed deployment. Failing health checks will be reported when promoting your Release:
Promoting RABCDEFGHIJ...
2020-02-15T21:16:50Z system/k8s/atom/app Status: Running => Pending
2020-02-15T21:16:53Z system/k8s/atom/app Status: Pending => Updating
2020-02-15T21:16:53Z system/k8s/web-56f5d77d7 Created pod: web-56f5d77d7-6gx8z
2020-02-15T21:16:53Z system/k8s/web Scaled up replica set web-56f5d77d7 to 1
2020-02-15T21:16:53Z system/k8s/web-56f5d77d7-6gx8z Successfully assigned abcde-myapp/web-56f5d77d7-6gx8z to gke-abcde-abcde-nodes-n1-highcpu-8-90530fd3-p77q
2020-02-15T21:16:54Z system/k8s/web-56f5d77d7-6gx8z Pulling image "gcr.io/abcde-123456/myapp:web.BABCDEFGHIJ"
2020-02-15T21:17:06Z system/k8s/web-56f5d77d7-6gx8z Successfully pulled image "gcr.io/abcde-123456/myapp:web.BABCDEFGHIJ"
2020-02-15T21:17:09Z system/k8s/web-56f5d77d7-6gx8z Started container main
2020-02-15T21:17:09Z system/k8s/web-56f5d77d7-6gx8z Created container main
2020-02-15T21:17:17Z system/k8s/web-56f5d77d7-6gx8z Readiness probe failed: HTTP probe failed with statuscode: 404
You should ensure that your App is able to respond to the health check probes to faciliate a successful deployment.
Run convox services
to find the load balancer endpoints for your application.
Run convox ps
to determine if your application is booting successfully.
Run convox logs
to inspect your application logs and cluster events for problems placing your container, starting your app, or registering with the load balancer.
You can perform a remote restart of an entire App (all running processes) from the CLI with:
$ convox restart -a app1
Or alternatively to just restart the web
service processes, you can perform:
$ convox services restart web -a app1
If your local Kubernetes setup does not point to a valid cluster, that can slow down your Convox CLI operations as it tries to interrogate the invalid endpoint. In this case, you can set a local env var $ export CONVOX_LOCAL=disable
to stop the CLI from doing this and speed up your commands.
Some good places to search are:
If you still need help, feel free to:
convox
tag.