Prerequisites
- A project in Orchard
- A Docker image accessible from the cluster (public or with credentials)
Creating a Deployment
Configure the deployment
Fill in the required fields:
| Field | Description | Example |
|---|---|---|
| Name | Unique name for this deployment | api-server |
| Image | Full Docker image URL with tag | nginx:latest |
| Port | Primary port your app listens on | 8080 |
| Replicas | Number of instances to run | 2 |
Image Sources
Orchard can pull images from various sources:- Docker Hub
- GitHub Container Registry
- Custom Registry
For public Docker Hub images, use the simple format:For official images, you don’t need a registry prefix.
Image Tags
Always specify an image tag to ensure consistent deployments:| Tag Type | Example | Use Case |
|---|---|---|
| Specific version | nginx:1.25.3 | Production deployments |
| Minor version | nginx:1.25 | Auto-update patch versions |
| Latest | nginx:latest | Development only |
| Git SHA | myapp:abc123f | CI/CD pipelines |
Port Configuration
Single Port
For applications with one port:Multiple Ports
For applications with multiple ports (e.g., HTTP and gRPC):| Name | Container Port | Service Port | Protocol |
|---|---|---|---|
| http | 8080 | 80 | TCP |
| grpc | 9090 | 9090 | TCP |
Updating the Image
To deploy a new version of your image:Rolling Updates
When you update an image, Orchard performs a rolling update by default:- New pods with the updated image are created
- Once new pods are healthy, old pods are terminated
- This ensures zero downtime during updates
Example: Deploying nginx
Here’s a complete example of deploying nginx:
After creation, you’ll get an external IP or can create an ingress for a custom domain.
Troubleshooting
Image pull errors
Image pull errors
If your deployment fails with an image pull error:
- Verify the image name and tag are correct
- Check if the image exists in the registry
- For private registries, ensure pull secrets are configured
Container crashes immediately
Container crashes immediately
If pods keep restarting:
- Check the container logs for error messages
- Verify environment variables are correct
- Ensure the port configuration matches your application
Application not responding
Application not responding
If the deployment is running but not responding:
- Verify the port matches what your application listens on
- Check if a service has been created
- Review network policies that might block traffic