Enterprise Distributed Application Service (EDAS) manages resources across Elastic Compute Service (ECS), Container Service for Kubernetes (ACK), Server Load Balancer (SLB), and Container Registry (ACR). Modifying these managed resources outside of EDAS can break application deployment, scaling, and monitoring.
Governing principle: Only modify EDAS-managed resources through the EDAS console. Changes made through other consoles, kubectl, or third-party tools may not persist and can cause unexpected failures.
How to identify EDAS-managed resources: In Kubernetes clusters, resources created by EDAS carry the edas-domain: edas-admin or edas-domain label. Do not modify or delete any resource with this label.
Constraint overview
| Cluster type | Resource | Key constraint |
|---|---|---|
| ECS | ECS instances (scale-out) | Do not delete the ESS label on instances purchased by EDAS |
| ECS | System configuration | Do not delete the admin user, critical processes, or crontab entries |
| ECS | Security group | Do not delete or modify security rules created by EDAS |
| ECS | SLB | Do not disable session persistence for HTTP listeners |
| Kubernetes | ACR | Configure aliyun-acr-credential-helper for cross-account or cross-region image access |
| Kubernetes | Security group | Do not delete default ACK security group rules |
| Kubernetes | Nodes | Reserve enough CPU, memory, and Pods for EDAS management components |
| Kubernetes | API Server SLB | Do not block 100.104.0.0/16 or reuse port 6443 |
| Kubernetes | Helm charts | Do not uninstall EDAS-deployed charts or install conflicting open source components |
| Kubernetes | RBAC | Do not modify EDAS ClusterRoles or ClusterRoleBindings |
| Kubernetes | CRDs and CRs | Do not directly manage EDAS-owned CRDs or CRs |
| Kubernetes | Ingress, ConfigMap, Secret | Do not modify resources with the edas-domain label |
| Kubernetes | SLB binding | Do not modify Service resources or SLB instances purchased by EDAS |
| Kubernetes | Deployment YAML | Specific fields, labels, and environment variables are reserved; some modifications are allowed |
| Kubernetes | HPA | Configure auto scaling only through the EDAS console |
ECS cluster constraints
ECS instances purchased during scale-out
Do not delete the ESS label on ECS instances that EDAS purchases during a scale-out. Removing this label prevents EDAS from tracking and managing the instance lifecycle.
System configuration
After you create an application and log on to an ECS instance, follow these rules to keep EDAS agents and system services running:
Do not delete the admin user.
Do not delete the
/home/adminconfiguration.Do not stop the following processes:
/home/staragent/bin/staragentdcom.alibaba.edas.agent.AgentDaemon
Do not delete the following crontab entries:
bash /home/admin/edas-agent/bin/monitor.shcrontab file of the root userbash /home/admin/edas-agent/bin/rotator.shcrontab file of the admin user
Reserve enough free space in the root disk partition.
If you use CentOS, make sure that yum repositories are configured correctly.
If the ECS instance has multiple network interface controllers (NICs) -- for example, when Docker is installed -- and the application uses the High-Speed Service Framework (HSF), specify the
-Dhsf.server.ipparameter so that the registered IP address works as expected. For more information, see Set JVM -D startup parameters.Keep the system clock accurate within 15 seconds. A larger drift disrupts communication with the EDAS registry.
If you use an ECS advanced security group, enable UDP port 123 for outbound traffic so that Network Time Protocol (NTP) can synchronize the clock.
Security group
Do not delete or modify security rules that EDAS creates. Removing these rules can block communication between EDAS and your application instances.
SLB
Do not disable session persistence on HTTP listeners that EDAS enables. Disabling session persistence can cause routing issues for your applications.
Kubernetes cluster constraints
ACR image access
To pull images from ACR across accounts or across regions, complete both of the following steps:
Configure the
aliyun-acr-credential-helpercomponent.Add the virtual private cloud (VPC) of the cluster to the access control list (ACL) of the target repository.
Importing a Kubernetes cluster
Security group
All nodes in the cluster must be in, or able to connect to, the security group of the cluster. For more information, see Why do containers fail to communicate with each other?
Do not delete the default rules that ACK sets for the security group.
Node configuration
Reserve enough CPU, memory, and Pods for the EDAS management components to run in the cluster.
Do not delete the
KubernetesWorkerRole-*RAM role that ACK assigns to nodes.
SLB for API Server
Do not block access requests from the
100.104.0.0/16internal address range.Do not delete the built-in labels that ACK adds to the SLB instance.
Do not reuse port 6443 on the SLB instance. This port is reserved for the API Server.
Helm charts
Do not uninstall the following Helm charts installed by EDAS, or delete any resources they manage:
ahas-sentinel-pilotarms-eventerarms-pilotarms-prom
Do not install the open source versions of
oam-runtime,kubevela,keda, orflagger. These conflict with the versions that EDAS manages and can cause deployment failures.Do not delete or modify any Kubernetes resources in the
edas-oam-systemnamespace.
ClusterRole
Do not use the ACK console, kubectl, or third-party tools to delete or modify edas-default-cluster-role.
ClusterRoleBinding
Do not use the ACK console, kubectl, or third-party tools to delete or modify the following ClusterRoleBindings:
edas-default-cluster-role-bindingedas-oam-cluster-role-bindingkeda-hpa-controller-external-metrics
Custom resource definitions (CRDs) and custom resources (CRs)
Do not directly manage the following CRDs or CRs. EDAS owns their lifecycle, and manual changes are overwritten during application updates:
alertproviders.flagger.appapplicationconfigurations.core.oam.devapplications.oam-domain.alibabacloud.comapplicationscopes.core.oam.devautoscalings.edas.aliyun.oam.combasecomponents.oam-domain.alibabacloud.comcanaries.flagger.appcomponentschematics.core.oam.devcrdreleases.clm.cloudnativeapp.iodynamiclabels.extension.oam.devimagebuilders.edas.aliyun.oam.comlogcollectors.edas.aliyun.oam.commeshtraits.edas.aliyun.oam.commetrictemplates.flagger.appmseruletraits.edas.aliyun.oam.compackageversions.oam-domain.alibabacloud.comrollouts.edas.aliyun.oam.comscaledobjects.keda.k8s.ioscalingrules.oam-domain.alibabacloud.comserviceregistrytraits.edas.aliyun.oam.comservicetraits.edas.aliyun.oam.comsources.clm.cloudnativeapp.iotraits.core.oam.devtriggerauthentications.keda.k8s.ioworkloadtypes.core.oam.dev
Do not modify the aliyunlogconfigs.log.alibabacloud.com resource created by EDAS. This resource has the edas-domain: edas-admincode label.
Ingress resources
Do not modify Ingress resources that EDAS creates. These resources carry the edas-domain: edas-admin or edas-domain label.
ConfigMap and Secret resources
Do not modify ConfigMap or Secret resources that EDAS creates. These resources carry the edas-domain: edas-admin or edas-domain label.
SLB binding
Do not use the ACK console, kubectl, or third-party tools to delete or modify Service resources that EDAS creates. These resources carry the
edas-domain: edas-adminlabel. For more information, see Service FAQ.Do not use the SLB console to delete or modify SLB instances purchased by EDAS.
Do not use the SLB console to delete or modify HTTP listeners on SLB instances purchased by EDAS.
Deployment YAML
When you edit the YAML of a Deployment that EDAS manages, only the operations listed under Allowed operations are safe. All other modifications may be overwritten or may cause deployment failures.
Forbidden operations
Do not use the ACK console, kubectl, or third-party tools to delete or modify Deployment resources that EDAS creates. These resources carry the
edas-domain: edas-adminlabel.Do not modify the following Deployment metadata and spec fields:
apiVersion,kind,name,namespace,uid,resourceVersion,selfLink,generation,creationTimestamp,ownerReferences,managedFields,selector,strategy,revisionHistoryLimit,progressDeadlineSeconds,StatusDo not delete or modify the following EDAS-specific labels and annotations in a Deployment or its Pod template:
edas-domainedas.aliyun.oam.com/rollout-nameedas.aliyun.oam.com/rollout-namespaceedas.aliyun.oam.com/rollout-revisionedas.appidedas.controlplaneedas.oam.acnameedas.oam.acversionedas.oam.basecomponentdeployment.kubernetes.io/revisionARMSApmAppIdARMSApmLicenseKeyappedas.componentedas.groupidversionedas.revisionsidecar.istio.io/inject
Do not modify the HostPath volume that stores disk mounting configurations. To change disk mounting, use the deployment feature in the EDAS console.
Do not rename the
group-1container.Do not modify the following reserved environment variables:
POD_IP,HOST_IP,EDAS_APP_ID,EDAS_PROJECT_NAME,EDAS_GROUP_ID,EDAS_APP_NAME,EDAS_AC_NAME,EDAS_ECC_ID,EDAS_JM_CONTAINER_ID,EDAS_PACKAGE_VERSION,EDAS_AHAS_APPNAME,EDAS_DPATH_OPTS,EDAS_GRAY_OPTS,ALIBABA_ALIWARE_NAMESPACE,ALIBABA_ALIWARE_ENDPOINT_URL,ALIBABA_ALIWARE_ENDPOINT_PORT,ALIBABA_DEPLOY_VERSION,profiler.micro.service.canary.enable,profiler.micro.service.metadata.report.enable,profiler.micro.service.auth.enableDo not modify the
volume-edas-certsvolume.Do not modify the
restartPolicy,schedulerName, orruntimeClassNamefield.
Allowed operations
Modify the
replicasfield to scale applications in or out.Modify emptyDir volumes to share files across containers.
Add sidecar containers. Keep the
group-1container at the top of the container list.Modify the
hostAliasfield to resolve custom domain names.Modify
nodeAffinity,podAffinity, andpodAntiAffinityto control Pod scheduling.Modify the
tolerationfield to manage node scheduling.Add custom labels and annotations to enable specific features.
Horizontal Pod Autoscaling (HPA)
Configure HPA only through the auto scaling feature in the EDAS console. Do not use the ACK console, kubectl, or third-party tools to configure HPA resources for EDAS applications.
Do not delete HPA resources created by EDAS. The
ownerReferencesof these resources is set to ScaledObject.After you enable auto scaling, do not directly modify the
replicasfield of a Deployment. The HPA controller manages replicas automatically.