Mention resource limits in documentation (#141)

This commit is contained in:
iko 2021-10-15 14:30:15 +03:00 committed by GitHub
parent 37208871ca
commit 19efa702b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 4 deletions

View File

@ -25,18 +25,18 @@ After ensuring that your cluster satisfies the requirements you can follow [the
You must consider several things before running Octopod in production and onboarding your team.
##### DNS records
#### DNS records
Octopod will create a lot of on-demand environments and they must be reachable for your team. Usually it implies creating a lot of DNS records, pointing to Octopod managed environments. This process must be automated.
We highly recommend you to use [ExternalDNS](https://github.com/kubernetes-sigs/external-dns) as a very versatile solution for DNS records automation.
We highly recommend you to use [ExternalDNS](https://github.com/kubernetes-sigs/external-dns) as a very versatile solution for DNS records automation.
In certain cases, however, it isn't possible to use ExternalDNS. In this case you can use a wildcard DNS record, pointing to the service endpoint of your ingress controller. We do not recommend using wildcard DNS records. Even though they are much easier to implement, they could lead to hard-to-trace errors and they are also implementation-dependent.
##### Certificates
#### Certificates
If you want to request SSL certificates dynamically from Let's Encrypt you must be aware of their [limits](https://letsencrypt.org/docs/rate-limits/). Because of these limits we recommend you to use a wildcard certificate for all Octopod deployments. The wildcard certificate has its limitations, like being valid only for one subdomain. This implies a need for planning your deployments DNS naming.
##### Resources
#### Resources
This is the most obvious one of the three, but you need to plan your cluster capacity based on your team needs. Setting [resource limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for your workloads is one of the best practices of using Kubernetes, and you probably have done this already.
Also consider using autoscaling since it really helps to reduce costs in highly dynamic environments.
@ -52,6 +52,11 @@ Before running the script make sure that you have following tools installed:
- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)
- [helm 3](https://helm.sh/docs/intro/quickstart/#install-helm)
> ** NOTE:** using Octopod involves deploying many instances of some service (many instances of Wordpress in our example). This means, it will use up a lot of resources. Many local installations of Docker and Kubenetes have resource limits set quite low by default. If you experience performance issues you should try increasing the resource limits. Here are some useful links:
> - Docker resource limits in Docker Desktop for Mac [docs.docker.com/desktop/mac/#resources](https://docs.docker.com/desktop/mac/#resources)
> - Docker resource limits in Docker Desktop for Windows [docs.docker.com/desktop/windows/#resources](https://docs.docker.com/desktop/windows/#resources)
> - General Docker resource constraint documentation [docs.docker.com/config/containers/resource_constraints](https://docs.docker.com/config/containers/resource_constraints/)
After you have all of the necessary tools installed, you can run the script:
```bash

View File

@ -8,6 +8,9 @@ echo
echo " 🔖 If you encounter any issues during the installation please open an issue:"
echo " https://github.com/typeable/octopod/issues/new"
echo
echo " Please note that you might experience performance issues if you have low resouce limits:"
echo " https://github.com/typeable/octopod/blob/master/docs/en/Octopod_deployment_guide.md#if-you-want-to-try-it-locally"
echo
for cmd in kind kubectl helm; do
if ! command -v $cmd &> /dev/null; then