# Installation and Deployment
# 1. What if it goes to the error page when registering an account and logging in for the first time after deployment based on Docker Compose?
The address of this page is sysAdmin/orgs
, that is, the organization administrator page, which is not open source yet (coming soon). Erda takes the account registered for the first time as the organization administrator by default, so it automatically turns to this page.
You can log out of this account and register a new one. Log in with your new account and go to the personal dashboard, then click Create Organization at the top left of the page to start.
# 2. What if the error of invalid IP address in add-host: "host-gateway"
occurs when executing the installation script in CenOS environment after deploying based on Docker Compose?
host-gateway
requires Docker version 20.10.0 and later.
Please upgrade Docker by running the command sudo yum install docker-ce docker-ce-cli containerd.io
.
# 3. What if the initialization fails when installing Erda?
- Please check the
erda-init-image
log first for errors such as MySQL disconnection. If so, please check whether the network between the cluster and MySQL is available. - If an error
Table xxx already exists
occurs, it is possible that the initialization is interrupted during the Erda installation. Please check the database and clean up the residual data, and reinstall.
# 4. Is it mandatory to mount NFS per node for Helm-based deployment of Erda?
If you want to use the Kubernetes node for pipeline execution, it is mandatory to mount NFS on the nodes. For details, see Preparations.
You can set Node Tags for node scheduling of Erda.
# 5. What if the added cluster is not displayed in the cluster overview after Erda installation?
Tips
The added cluster here refers to the Kubernetes cluster where Erda is deployed.
Normally, you can view the data list of machines on the cluster overview page about 3 minutes after importing the cluster. If the data is empty, check from the following two aspects:
- Go to Org Center > Settings > Org Info to view the organization identifier, for example,
erda
in this case.
Then check whether the dice/org-<organization identifier>=true
tag is correct in the Kubernetes node.
kubectl get no --show-labels | grep org
After confirming that the tag exists, go to Cloud Management > Cluster Resource > Clusters to check if the imported cluster identifier matches the
erda.clusterName
specified during the Erda installation. If not, you need to get the cluster offline and add it again.If no data is displayed after the first two steps, check the
erda-telegraf
component log.
# 6. What if Erda forces to redirect to HTTPS?
Erda is configured with HTTP by default. To enable HTTPS, see How to configure HTTPS for Erda.
As an example, ingress-nginx
in the community forces to redirect to HTTPS by default, and you can modify the ingress-nginx
configuration to disable:
kubectl edit cm ingress-nginx-controller -n <ingress-namespace>
Tips
The ingress-nginx configuration file varies from version to version. Please check the Configmap Name
according to your ingress-nginx version.
data:
ssl-redirect: "false"
# 7. How to configure HTTPS for Erda?
You can enable HTTPS by configuring erda.clusterConfig.protocol
when installing Erda. See Configurable Parameter for High-Availability Deployment for details. After installation, you can configure the certificate according to the deployment scenario.
# 8. What if an 404 error occurs when accessing Erda after installation?
Please check whether the Ingress Controller is deployed according to the
Installation Requirements
. TakeIngress-Nginx
as an example.Check the
Ingress-Controller
log, and the error message is as follows:"ingress does not contain a valid IngressClass"
Change the
Ingress-Nginx
configuration by adding--watch-ingress-without-class=true
to the startup parameter.
# 9. What if registry scheduling fails when installing Erda?
Please check whether the registry is installed and configured correctly. Registry can enable host
by registry.custom.nodeIP
and registry.custom.nodeName
parameters in Erda installation and configuration. nodeIP
and nodeName
are the Kubernetes node IP and name you specify, which should from the same node.
# 10. What if there is no resource available when creating a project after importing a cluster?
Erda collects the available resources of the scheduling node by the node tag. If the tag is not set correctly, the available resources of the project will be 0. Follow the steps below:
- Please check if the imported cluster is displayed in the cluster overview. If not, see What if the added cluster is not displayed in the cluster overview.
- The environment tag (
workspace-*
),stateless-service
andpack-job
are required to ensure that the application is built and released properly. For other tags, see Node Tags. You can go to Cloud Management > Cluster Overview > Set Tags to set or view tags.
# 11. What if fail to push the image when building pipeline for packaging?
Error message for server gave HTTP response to HTTPS client
The registry deployed by Erda needs to set up Docker as described in Preparations.
Error message for registry address not found
Please check whether the registry.custom.nodeIP
and registry.custom.nodeName
parameters are specified when installing Erda.
- If not, ensure that the Kubernetes node can access the registry via the internal domain name (for example, kubernetes.default.svc.cluster.local).
- If specified, check whether the network between pipeline node and registry node is available.
See Installation Operations for details.
# 12. Erda imports a created Kubernetes cluster. Does the cluster also need to have Erda installed?
No, the Kubernetes cluster to be imported just needs to meet the Installation Requirements. After it is imported, Erda will automatically initialize the target cluster and install Erda components and dependencies.
Tips
If you want to use pipeline in the imported cluster, set the target cluster as required in the Preparations, and ensure that the cluster node can perform DNS resolution on the Kubernetes service.
# 13. What requirements should Alibaba Cloud Container Service for Kubernetes (ACK) meet to deploy Erda?
Erda supports deployment of dedicated and managed Kubernetes cluster. When using the managed Kubernetes cluster, just deploy Erda according to the documentation at any work node with kubectl
available.
# 14. How to configure SMTP mail server during deployment?
Configure the following environment variables in the EventBox component of CR erda:
NOTICE_CUSTOM_EMAIL_SENDER_HOST
NOTICE_CUSTOM_EMAIL_SENDER_PASSWORD
NOTICE_CUSTOM_EMAIL_SENDER_USERNAME
# 15. The Kubernetes cluster version is 1.16. What if an error must include at least one of v1beta1
occurs when installing with Helm?
If your Kubernetes cluster version is 1.16, the following error will occur when installing with Helm:
Error: ValidatingWebhookConfiguration.admissionregistration.k8s.io "elastic-webhook.k8s.elastic.co" is invalid: webhooks[0].admissionReviewVersions: Invalid value: []string{"v1"}: must include at least one of v1beta1
Please see the Kubernetes Documentation (opens new window) and enable API of Kubernetes admissionregistration.
# 16. Does the open source version only support Kubernetes 1.16 ~ 1.20, CentOS 7.4 and later versions?
The above version have been tested, while others not. More environments will be covered later.
# 17. Does Erda support clusters such as Openshift and Rancher?
Erda has not yet tested the adaptation of Openshift, Rancher and other Kubernetes releases, and plans to adapt common Kubernetes releases and Kubernetes-based container orchestration services of cloud vendors.
If you have tested for the above environment, welcome to make contributions (opens new window).
# 18. How to reinstall Erda if the installation fails?
See Uninstall to clean up the residual data and then install again.
# 19. What if the component container reports an error dial tcp x.x.x.x:3306: connect: connection refused
when using Docker Compose to start Erda?
3306
is the MySQL port and the error indicates that it cannot connect to MySQL.
Please check whether the MySQL container is running properly:
- If it is not running properly, check the MySQL container log for the reason of database failure.
- If it is running properly, find the corresponding component, try
docker rm ${container-id}
and then usedocker-compose up -d
to start the component again.
Currently this issue occurs mostly with Windows users, so it is likely that there is a problem with Docker Compose's depends-on in the Windows systems.
# 20. What if an 404 error occurs when accessing Erda after the Ingress Controller is deployed?
It indicates that the request does not follow the Ingress rules configured by Erda to access the corresponding back-end service, so you need to check the ingress-controller logs for troubleshooting.
A common reason is that the nginx-ingress-controller error ingress does not contain a valid IngressClass
makes the Ingress rule not effective.
Get the deployed nginx-ingress-controller with the following command, which can be deployed via DaemonSet or Deployment.
kubectl get ds / deploy --all-namespaces | grep nginx
Add startup parameters:
args:
- /nginx-ingress-controller
...
- --watch-ingress-without-class=true # Add the parameter
Access Erda again.
# 21. What if a "request error" occurs when first accessing Erda with its components working properly?
Please first check whether the Erda components are running by the following command. Take the deployment under erda-system as an example:
kubectl get erda erda -n erda-system
Then check the DNS resolution rules you configured. For the domain erda.io, for example, you need to configure the following resolution rules:
*.erda.io A record resolution to LB address, such as 10.0.0.1
erda.io A record resolution LB address, 10.0.0.1
Access the platform with erda.io. The problem will occur if using xxx.erda.io to access the platform and create organizations.
# 22. What if a 502 error occurs when accessing Erda after installation based on Docker Compose?
Use docker ps | grep openapi to get the image ID, and view the logs of the OpenAPI container through the image ID.
If OpenAPI reports an error log level=error msg="fail to run provider openapi: dial tcp xx.xx.xx.xx:6379: connect: connection refused"
, and then restarts continuously, you can check whether the erda-redis container is up.
If Redis fails to run, it is probably due to network problems that make the image failed to be pulled, port conflicts or problems with the mounted local files. Download the docker-compose file, modify the docker-compose.yml file for Redis, and then run docker-compose down and up to restart the components.