本文介紹EDAS在使用ACK、ACR等產品時的操作約束。
代購和彈性伸縮ECS實例操作約束(適用于ECS集群)
EDAS代購和彈性伸縮創建ECS實例時,不能刪除ESS標簽。
創建應用操作約束
在創建應用時,可能需要設置安全組、綁定SLB;在應用創建后,可能需要登錄ECS實例。本節介紹涉及這些操作時的操作約束。
系統配置約束(適用于ECS集群):應用創建后,可能需要登錄ECS實例進行系統配置,請遵循以下約束:
不能刪除admin用戶。
不能刪除/home/admin配置。
不能停止主機上的以下進程:
/home/staragent/bin/staragentd
com.alibaba.edas.agent.AgentDaemon
不能刪除主機上的以下crontab:
root用戶下的bash /home/admin/edas-agent/bin/monitor.sh任務
admin用戶下的bash /home/admin/edas-agent/bin/rotator.sh任務
必須保證磁盤根分區有可用空間。
如果使用CentOS操作系統,需要保證yum源配置正確,功能正常。
ECS如果使用多網卡,比如安裝了Docker,且應用為HSF應用時,需要為應用指定-Dhsf.server.ip參數來確保注冊的IP符合預期。更多信息,請參見JVM -D啟動配置參數。
ECS實例的時鐘需要準確,最大誤差不能超過15s,否則會影響應用訪問EDAS的注冊中心。
若您使用的是ECS企業級安全組,請務必開放安全組的UDP協議123端口出方向流量,以保證操作系統NTP協議正常工作。
安全組配置約束(適用于ECS集群):不能刪除或修改EDAS創建的安全組規則。
SLB配置約束(適用于ECS集群):EDAS會為托管的HTTP監聽設置會話保持模式,不可更改。
ACR操作約束(適用于K8s集群):
如果需要使用容器鏡像服務(ACR)、跨賬號鏡像或跨區鏡像,需要啟動ACR免密插件。
如果需要使用容器鏡像服務(ACR),需要將集群所在的VPC添加到對應倉庫的訪問控制列表ACL中。
K8s集群導入操作約束
集群安全組配置約束:
需要保證集群所有節點在集群的安全組內或者與集群的安全組能互通。互通的具體操作,請參見為什么容器之間的網絡不通?。
不能刪除ACK集群安全組設置的默認規則。
集群節點配置約束:
需要為集群預留可分配的CPU、內存、Pod資源,確保EDAS管控組件能正常運行。
不能刪除ACK為節點配置的RAM角色
KubernetesWorkerRole-*
。
集群apiServer SLB配置約束:
不要阻攔來自內部訪問地址100.104.0.0/16的訪問請求。
不要刪除SLB上的ACK添加的內置標簽。
不要復用SLB的6443端口。
集群Helm Chart操作約束:
不能刪除EDAS安裝的ahas-sentinel-pilot、arms-eventer、arms-pilot和arms-prom組件,包括這些Helm Chart安裝的所有資源。
不能安裝開源的oam-runtime、kubevela、keda或flagger。
不能刪除或修改任何在edas-oam-system命名空間下的K8s資源。
集群ClusterRole操作約束:
不能使用ACK控制臺、kubectl或者第三方界面刪除或修改edas-default-cluster-role。
ClusterRoleBinding操作約束:
不能使用ACK控制臺、kubectl或者第三方界面刪除或修改edas-default-cluster-role-binding、edas-oam-cluster-role-binding、keda-hpa-controller-external-metrics。
CRD和CR操作約束:
不能直接操作以下CRD和CR資源,列表如下:
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
不能修改EDAS創建的aliyunlogconfigs.log.alibabacloud.com(含有以下標簽:
edas-domain: edas-admin
)資源。
應用路由配置約束(適用于K8s集群)
不能修改EDAS創建的Ingress資源(含有以下標簽:edas-domain: edas-admin
、edas-domain
)。
配置管理操作約束(適用于K8s集群)
不能修改EDAS創建的ConfigMap和Secret資源(含有以下標簽:edas-domain: edas-admin
、edas-domain
)。
綁定SLB操作約束(適用于K8s集群)
不能使用ACK控制臺、kubectl或者第三方界面刪除或修改EDAS創建的Service資源(含有以下標簽:
edas-domain: edas-admin
)。更多信息,請參見Service FAQ。不能使用SLB控制臺修改或刪除EDAS代購的SLB實例。
不能使用SLB控制臺修改或刪除EDAS代購的SLB實例的監聽配置。
YAML編輯約束(適用于K8s集群)
約束:
不能使用ACK控制臺、kubectl或者第三方界面刪除或修改EDAS創建的Deployment資源(含有以下標簽:
edas-domain: edas-admin
)。不能修改Deployment中的apiVersion、kind、name、namespace、uid、resourceVersion、selfLink、generation、creationTimestamp、ownerReferences、managedFields、selector、strategy、revisionHistoryLimit和progressDeadlineSeconds信息,以及status下的所有內容。
不能刪除或修改Deployment中EDAS特定的labels和annotations,包含Pod模板中的labels和annotations,列表如下:
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
不能修改Deployment中的hostpath類型的磁盤掛載配置,必須使用EDAS的部署功能進行修改。
不能修改Deployment中名為
group-1
容器的名稱。不能修改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
不能修改名為volume-edas-certs的磁盤掛載配置。
不能修改Deployment中的restartPolicy、schedulerName和runtimeClassName。
可執行操作:
可以修改Deployment的replicas來對應用進行擴縮容。
可以修改Deployment的類型為emptydir的磁盤掛載來實現多容器文件共享。
可以為Deployment追加多個container來實現sidecar的功能,但需要保證group-1容器排在第一的位置。
可以修改Deployment的hostAlias來實現自定義的域名解析。
可以修改Deployment的nodeAffinity、podAffinity和podAntiAffinity來指定調度策略。
可以修改Deployment的toleration來干預調度。
可以為Deployment追加labels和annotations來實現特定的功能。
彈性伸縮HPA操作約束(適用于K8s集群)
不能使用ACK控制臺,kubectl或者第三方界面為EDAS應用配置HPA資源,而應當使用EDAS內置的彈性伸縮功能。
不能刪除或修改EDAS創建的HPA資源(ownerReferences為ScaledObject對象)。
開啟彈性伸縮后,不能直接修改Deployment的replicas。