All Products
Search
Document Center

Enterprise Distributed Application Service:Constraints on operations across services

Last Updated:Mar 05, 2024

This topic describes the constraints on using services such as Container Service for Kubernetes (ACK) and Alibaba Cloud Container Registry (ACR) in Enterprise Distributed Application Service (EDAS).

Constraints on managing Elastic Compute Service (ECS) instances that are purchased by EDAS during a scale-out in an ECS cluster

You cannot delete the ESS label of the ECS instances that are purchased by EDAS during a scale-out.

Constraints on configuring ECS instances when you create an application

When you create an application, you may need to configure a security group for and bind a Server Load Balancer (SLB) instance to the ECS instances of the application. After the ECS instances are created, you may need to log on to the ECS instances. This section describes the constraints on configuring ECS instances.

  • Constraints on modifying system configurations in an ECS cluster: After an application is created, you may need to log on to an ECS instance of the application to configure the system. You must conform with the following constraints:

    • You cannot delete the admin user.

    • You cannot delete the /home/admin configuration.

    • You cannot stop the following processes on the ECS instance:

      • /home/staragent/bin/staragentd

      • com.alibaba.edas.agent.AgentDaemon

    • You cannot delete the following crontab files on the ECS instance:

      • bash /home/admin/edas-agent/bin/monitor.sh crontab file of the root user

      • bash /home/admin/edas-agent/bin/rotator.sh crontab file of the admin user

    • You must reserve enough free space in the root disk partition.

    • If you use the CentOS operating system, make sure that you correctly configure yum repositories.

    • If the ECS instance has multiple network interface controllers (NICs) and the application that you use is a High-Speed Service Framework (HSF) application, you must specify the -Dhsf.server.ip parameter for the application to ensure that the registered IP address works as expected. For example, the ECS instance has multiple NICs if Docker is installed. For more information, see Set JVM -D startup parameters.

    • The time clock of the ECS instance must be accurate. The maximum error cannot exceed 15 seconds. Otherwise, the access from the application to the EDAS registry will be affected.

      • If you use an ECS advanced security group, make sure that the UDP-based port 123 of the security group is enabled for outbound traffic. This ensures that the NTP (Network Time Protocol) protocol of the operating system works properly.

  • Constraints on configuring the security group in an ECS cluster: You cannot delete or modify the security rules that are created by EDAS.

  • Constraints on configuring an SLB instance in an ECS cluster: You must not disable the session persistence feature enabled for HTTP listeners by EDAS.

  • Constraints on using ACR in a Kubernetes cluster:

    • To use images in ACR across accounts or across regions, you must configure the aliyun-acr-credential-helper component for ACR.

    • You must also add the virtual private cloud (VPC) in which the cluster resides to the access control list (ACL) of the corresponding repository.

Constraints on importing a Kubernetes cluster

  • Constraints on configuring the security group of the Kubernetes cluster:

    • You must ensure that all the nodes in the Kubernetes cluster are in or can connect to the security group of the cluster. For more information, see Why do containers fail to communicate with each other?

    • You cannot delete the default rules that are set by ACK for the security group.

  • Constraints on configuring nodes in a Kubernetes cluster:

    • To ensure that the management component of EDAS properly runs in the cluster, you must reserve sufficient CPUs, memory, and pods that can be allocated.

    • You cannot delete the KubernetesWorkerRole-* RAM role that ACK configures for a node.

  • Constraints on configuring an SLB instance for API Server of the Kubernetes cluster:

    • You cannot block access requests from the 100.104.0.0/16 internal addresses.

    • You cannot delete the built-in labels added to the SLB instance by ACK.

    • You cannot reuse port 6443 on the SLB instance.

  • Constraints on managing Helm charts in a Kubernetes cluster:

    • You cannot delete the ahas-sentinel-pilot, arms-eventer, arms-pilot, or arms-prom component installed by EDAS and all resources installed by these Helm charts.

    • You cannot install open source oam-runtime, kubevela, keda, or flagger.

    • You cannot delete or modify Kubernetes resources within the edas-oam-system namespace.

  • Constraints on managing ClusterRole:

    You cannot use the ACK console, kubectl, or third-party tools to delete or modify edas-default-cluster-role.

  • Constraints on managing ClusterRoleBinding:

    You cannot use the ACK console, kubectl, or third-party tools to delete or modify edas-default-cluster-role-binding, edas-oam-cluster-role-binding, or keda-hpa-controller-external-metrics.

  • Constraints on managing custom resource definitions (CRDs) and custom resources (CRs):

    • You cannot directly manage the following CRDs or CRs:

      • alertproviders.flagger.app

      • applicationconfigurations.core.oam.dev

      • applications.oam-domain.alibabacloud.com

      • applicationscopes.core.oam.dev

      • autoscalings.edas.aliyun.oam.com

      • basecomponents.oam-domain.alibabacloud.com

      • canaries.flagger.app

      • componentschematics.core.oam.dev

      • crdreleases.clm.cloudnativeapp.io

      • dynamiclabels.extension.oam.dev

      • imagebuilders.edas.aliyun.oam.com

      • logcollectors.edas.aliyun.oam.com

      • meshtraits.edas.aliyun.oam.com

      • metrictemplates.flagger.app

      • mseruletraits.edas.aliyun.oam.com

      • packageversions.oam-domain.alibabacloud.com

      • rollouts.edas.aliyun.oam.com

      • scaledobjects.keda.k8s.io

      • scalingrules.oam-domain.alibabacloud.com

      • serviceregistrytraits.edas.aliyun.oam.com

      • servicetraits.edas.aliyun.oam.com

      • sources.clm.cloudnativeapp.io

      • traits.core.oam.dev

      • triggerauthentications.keda.k8s.io

      • workloadtypes.core.oam.dev

    • You cannot modify the aliyunlogconfigs.log.alibabacloud.com resource created by EDAS. The resource has the edas-domain: edas-admincode label.

Constraints on managing Ingresses in a Kubernetes cluster

You cannot modify the Ingress resources created by EDAS. The resources have the edas-domain: edas-admin or edas-domain label.

Constraints on managing configurations in a Kubernetes cluster:

You cannot modify the ConfigMap and Secret resources created by EDAS. The resources have the edas-domain: edas-admin or edas-domain label.

Constraints on binding an SLB instance in a Kubernetes cluster:

  • You cannot use the ACK console, kubectl, or third-party tools to delete or modify the Service resources created by EDAS. The resources have the edas-domain: edas-admin label. For more information, see Service FAQ.

  • You cannot use the SLB console to delete or modify the SLB instances purchased by EDAS.

  • You cannot use the SLB console to delete or modify the HTTP listeners of the SLB instances purchased by EDAS.

Constraints on editing YAML files in a Kubernetes cluster:

  • Operations that are forbidden:

    • You cannot use the ACK console, kubectl, or third-party tools to delete or modify the Deployment resources created by EDAS. The resources have the edas-domain: edas-admin label.

    • You cannot modify the apiVersion, kind, name, namespace, uid, resourceVersion, selfLink, generation, creationTimestamp, ownerReferences, managedFields, selector, strategy, revisionHistoryLimit, or progressDeadlineSeconds fields of a Deployment. You cannot modify the information in the Status field.

    • You cannot delete or modify the following ERAS-specific labels and annotations in a Deployment, including the labels and annotations in the pod template:

      • edas-domain

      • edas.aliyun.oam.com/rollout-name

      • edas.aliyun.oam.com/rollout-namespace

      • edas.aliyun.oam.com/rollout-revision

      • edas.appid

      • edas.controlplane

      • edas.oam.acname

      • edas.oam.acversion

      • edas.oam.basecomponent

      • deployment.kubernetes.io/revision

      • ARMSApmAppId

      • ARMSApmLicenseKey

      • app

      • edas.component

      • edas.groupid

      • version

      • edas.revision

      • sidecar.istio.io/inject

    • You cannot modify the HostPath volume of a Deployment that records the configurations of disk mounting. You can modify the configurations by using the deployment feature in the EDAS console.

    • You cannot modify the name of the group-1 container of a Deployment.

    • You cannot modify the following environment variables reserved by EDAS:

      • 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.enable

    • You cannot modify the volume named volume-edas-certs that records the configurations of disk mounting.

    • You cannot modify the restartPolicy, schedulerName, or runtimeClassName field of a Deployment.

  • Operations that are allowed:

    • You can modify the replicas field for a Deployment to scale out or scale in applications.

    • You can modify the emptyDir volume of a Deployment that records the configurations of disk mounting to share files across containers.

    • You can add multiple containers for a Deployment to enable the sidecar feature. However, you must ensure that the group-1 container is at the top of the container list.

    • You can modify the hostAlias field of a Deployment to resolve a custom domain name.

    • You can modify the nodeAffinity, podAffinity, and podAntiAffinity fields of a Deployment to specify the scheduling policy.

    • You can modify the toleration field of a Deployment to manage the scheduling.

    • You can add labels and annotations to a Deployment to enable specific features.

Constraints on managing Horizontal Pod Autoscaling (HPA) in a Kubernetes cluster

  • You cannot use the ACK console, kubectl, or third-party tools to configure HPA resources for EDAS applications. You must configure HPA resources by using the auto scaling feature in the EDAS console.

  • You cannot delete the HPA resources created by EDAS. ownerReferences of the resources is set to ScaledObject.

  • After you enable auto scaling, you cannot directly modify the replicas field of a Deployment.