你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
作为构建已启用 Arc 的数据服务的每个提交的一部分,Microsoft 会运行执行端到端测试的自动化 CI/CD 管道。 这些测试通过两个容器进行协调,这些容器与核心产品一起维护。 这些容器包括:
-
arc-ci-launcher:包含直接和间接连接模式的部署依赖项(例如 CLI 扩展)以及产品部署代码(使用 Azure CLI)。 Once Kubernetes is onboarded with the Data Controller, the container leverages Sonobuoy to trigger parallel integration tests. -
arc-sb-plugin: A Sonobuoy plugin containing Pytest-based end-to-end integration tests, ranging from simple smoke-tests (deployments, deletes), to complex high-availability scenarios, chaos-tests (resource deletions) etc.
这些测试容器公开提供给客户和合作伙伴,用于在他们自己的 Kubernetes 群集中执行已启用 Arc 的数据服务验证测试,以验证以下内容:
- Kubernetes distro/versions
- Host disto/versions
- 存储 (
StorageClass/CSI)、网络(例如LoadBalancer、DNS) - Kubernetes 或基础结构特定的其他设置
对于打算在未记录的分发版上运行已启用 Arc 的数据服务的客户,必须成功运行这些验证测试才能确认支持这些服务。 此外,合作伙伴可以使用此方法来验证其解决方案是否符合已启用 Arc 的数据服务 - 请参阅已启用 Azure Arc 的数据服务 Kubernetes 验证。
下图概述了该过程:
在本教程中,你将了解如何执行以下操作:
- 使用
arc-ci-launcher部署kubectl - 检查 Azure Blob 存储帐户中的验证测试结果
Prerequisites
Credentials:
-
test.env.tmpl文件包含所需的必要凭据,并且是加入 Azure Arc 已连接群集和直接连接数据控制器所需的现有先决条件的组合。 下面的示例介绍如何设置此文件。 - A kubeconfig file to the tested Kubernetes cluster with
cluster-adminaccess (required for Connected Cluster onboarding at this time)
-
Client-tooling:
- 已安装
kubectl- 最低版本(主要版本:“1”,次要版本:“21”) -
git命令行接口(或基于 UI 的替代方法)
- 已安装
准备 Kubernetes 清单
The launcher is made available as part of the microsoft/azure_arc repository, as a Kustomize manifest - Kustomize is built into kubectl - so no additional tooling is required.
- 在本地克隆存储库:
git clone https://github.com/microsoft/azure_arc.git
- 导航到
azure_arc/arc_data_services/test/launcher,查看以下文件夹结构:
├── base <- Comon base for all Kubernetes Clusters
│ ├── configs
│ │ └── .test.env.tmpl <- To be converted into .test.env with credentials for a Kubernetes Secret
│ ├── kustomization.yaml <- Defines the generated resources as part of the launcher
│ └── launcher.yaml <- Defines the Kubernetes resources that make up the launcher
└── overlays <- Overlays for specific Kubernetes Clusters
├── aks
│ ├── configs
│ │ └── patch.json.tmpl <- To be converted into patch.json, patch for Data Controller control.json
│ └── kustomization.yaml
├── kubeadm
│ ├── configs
│ │ └── patch.json.tmpl
│ └── kustomization.yaml
└── openshift
├── configs
│ └── patch.json.tmpl
├── kustomization.yaml
└── scc.yaml
在本教程中,我们将重点介绍设置 AKS 的步骤,但上述覆盖结构可以扩展为包含其他 Kubernetes 分发版。
部署准备清单如下所示:
├── base
│ ├── configs
│ │ ├── .test.env <- Config 1: For Kubernetes secret, see sample below
│ │ └── .test.env.tmpl
│ ├── kustomization.yaml
│ └── launcher.yaml
└── overlays
└── aks
├── configs
│ ├── patch.json.tmpl
│ └── patch.json <- Config 2: For control.json patching, see sample below
└── kustomization.yam
需要生成两个文件来本地化启动器,以便在特定环境中运行。 可以通过复制粘贴和填写上述的每个模板 (*.tmpl) 文件来生成这些文件:
-
.test.env:在.test.env.tmpl进行填写 -
patch.json:在patch.json.tmpl进行填写
Tip
.test.env 是驱动启动器行为的一组环境变量。 在给定环境下谨慎生成该变量可确保启动器行为的可重现性。
Config 1:.test.env
基于 .test.env 生成的 .test.env.tmpl 文件的填写示例分享在下面的内联注释中。
Important
下面的 export VAR="value" 语法并不意味着要在本地运行以从计算机获取环境变量 - 而是用于启动器。 The launcher mounts this .test.env file as-is as a Kubernetes secret using Kustomize's secretGenerator (Kustomize takes a file, base64 encodes the entire file's content, and turns it into a Kubernetes secret). 在初始化期间,启动器运行 bash 的 source 命令,该命令将环境变量从按原样装载的 .test.env 文件导入到启动器的环境中。
换句话说,复制粘贴 .test.env.tmpl 并编辑以创建 .test.env 后,生成的文件应类似于以下示例。 填写 .test.env 文件的过程在操作系统和终端上是相同的。
Tip
有几个环境变量需要进一步解释,以明确可重现性。 这些内容将用 see detailed explanation below [X] 进行注释。
Tip
Note that the .test.env example below is for direct mode. Some of these variables, such as ARC_DATASERVICES_EXTENSION_VERSION_TAG do not apply to indirect mode. For simplicity, it's best to setup the .test.env file with direct mode variables in mind, switching CONNECTIVITY_MODE=indirect will have the launcher ignore direct mode specific-settings and use a subset from the list.
In other words, planning for direct mode allows us to satisfy indirect mode variables.
.test.env 的已完成示例:
# ======================================
# Arc Data Services deployment version =
# ======================================
# Controller deployment mode: direct, indirect
# For 'direct', the launcher will also onboard the Kubernetes Cluster to Azure Arc
# For 'indirect', the launcher will skip Azure Arc and extension onboarding, and proceed directly to Data Controller deployment - see `patch.json` file
export CONNECTIVITY_MODE="direct"
# The launcher supports deployment of both GA/pre-GA trains - see detailed explanation below [1]
export ARC_DATASERVICES_EXTENSION_RELEASE_TRAIN="stable"
export ARC_DATASERVICES_EXTENSION_VERSION_TAG="1.11.0"
# Image version
export DOCKER_IMAGE_POLICY="Always"
export DOCKER_REGISTRY="mcr.microsoft.com"
export DOCKER_REPOSITORY="arcdata"
export DOCKER_TAG="v1.11.0_2022-09-13"
# "arcdata" Azure CLI extension version override - see detailed explanation below [2]
export ARC_DATASERVICES_WHL_OVERRIDE=""
# ================
# ARM parameters =
# ================
# Custom Location Resource Provider Azure AD Object ID - this is a single, unique value per Azure AD tenant - see detailed explanation below [3]
export CUSTOM_LOCATION_OID="..."
# A pre-rexisting Resource Group is used if found with the same name. Otherwise, launcher will attempt to create a Resource Group
# with the name specified, using the Service Principal specified below (which will require `Owner/Contributor` at the Subscription level to work)
export LOCATION="eastus"
export RESOURCE_GROUP_NAME="..."
# A Service Principal with "sufficient" privileges - see detailed explanation below [4]
export SPN_CLIENT_ID="..."
export SPN_CLIENT_SECRET="..."
export SPN_TENANT_ID="..."
export SUBSCRIPTION_ID="..."
# Optional: certain integration tests test upload to Log Analytics workspace:
# https://free.blessedness.top/azure/azure-arc/data/upload-logs
export WORKSPACE_ID="..."
export WORKSPACE_SHARED_KEY="..."
# ====================================
# Data Controller deployment profile =
# ====================================
# Samples for AKS
# To see full list of CONTROLLER_PROFILE, run: az arcdata dc config list
export CONTROLLER_PROFILE="azure-arc-aks-default-storage"
# azure, aws, gcp, onpremises, alibaba, other
export DEPLOYMENT_INFRASTRUCTURE="azure"
# The StorageClass used for PVCs created during the tests
export KUBERNETES_STORAGECLASS="default"
# ==============================
# Launcher specific parameters =
# ==============================
# Log/test result upload from launcher container, via SAS URL - see detailed explanation below [5]
export LOGS_STORAGE_ACCOUNT="<your-storage-account>"
export LOGS_STORAGE_ACCOUNT_SAS="?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=...&spr=https&sig=..."
export LOGS_STORAGE_CONTAINER="arc-ci-launcher-1662513182"
# Test behavior parameters
# The test suites to execute - space seperated array,
# Use these default values that run short smoke tests, further elaborate test suites will be added in upcoming releases
export SQL_HA_TEST_REPLICA_COUNT="3"
export TESTS_DIRECT="direct-crud direct-hydration controldb"
export TESTS_INDIRECT="billing controldb kube-rbac"
export TEST_REPEAT_COUNT="1"
export TEST_TYPE="ci"
# Control launcher behavior by setting to '1':
#
# - SKIP_PRECLEAN: Skips initial cleanup
# - SKIP_SETUP: Skips Arc Data deployment
# - SKIP_TEST: Skips sonobuoy tests
# - SKIP_POSTCLEAN: Skips final cleanup
# - SKIP_UPLOAD: Skips log upload
#
# See detailed explanation below [6]
export SKIP_PRECLEAN="0"
export SKIP_SETUP="0"
export SKIP_TEST="0"
export SKIP_POSTCLEAN="0"
export SKIP_UPLOAD="0"
Important
如果在 Windows 计算机中执行配置文件生成,则需要将行末序列从 CRLF (Windows) 转换为 LF (Linux),因为 arc-ci-launcher 作为 Linux 容器运行。 保留以 CRLF 结尾的行可能会导致 arc-ci-launcher 容器启动时出错 - 例如:/launcher/config/.test.env: $'\r': command not found。可使用 VSCode(窗口右下角)执行更改:
特定变量的详细说明
1. ARC_DATASERVICES_EXTENSION_* - 扩展版本和训练
必需:对于
direct模式部署是必需的。
启动器可以部署正式发布版本和预正式发布版本。
可从此处获取发布训练 (ARC_DATASERVICES_EXTENSION_RELEASE_TRAIN) 映射的扩展版本:
-
GA:
stable- Version log -
Pre-GA:
preview- Pre-release testing
2. ARC_DATASERVICES_WHL_OVERRIDE - Azure CLI 以前版本的下载 URL
可选:在
.test.env中将此留空以使用预打包的默认值。
启动器映像在每个容器映像发布时使用最新的 arcdata CLI 版本进行预打包。 However, to work with older releases and upgrade testing, it may be necessary to provide the launcher with Azure CLI Blob URL download link, to override the pre-packaged version; e.g to instruct the launcher to install version 1.4.3, fill in:
export ARC_DATASERVICES_WHL_OVERRIDE="https://azurearcdatacli.blob.core.windows.net/cli-extensions/arcdata-1.4.3-py2.py3-none-any.whl"
The CLI version to Blob URL mapping can be found here.
3. CUSTOM_LOCATION_OID - 特定 Microsoft Entra 租户的自定义位置对象 ID
必需:对于创建连接的群集自定义位置是必需的。
以下步骤来自在群集上启用自定义位置,用于检索 Microsoft Entra 租户的唯一自定义位置对象 ID。
有两种方法来获取 Microsoft Entra 租户的 CUSTOM_LOCATION_OID。
通过 Azure CLI:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv # 51dfe1e8-70c6-4de... <--- This is for Microsoft's own tenant - do not use, the value for your tenant will be different, use that instead to align with the Service Principal for launcher.
通过 Azure 门户 - 导航到 Microsoft Entra 边栏选项卡,然后搜索
Custom Locations RP:
4. SPN_CLIENT_* - 服务主体凭据
必需:对于 Direct 模式部署是必需的。
启动器使用这些凭据登录到 Azure。
验证测试旨在针对“非生产/测试 Kubernetes 群集和 Azure 订阅”执行——主要对 Kubernetes/基础结构设置进行功能验证。 因此,为避免执行启动所需的大量手动步骤,建议在资源组(或订阅)级别提供具有 SPN_CLIENT_ID/SECRET 的 Owner,因为它也会在此资源组中创建多个资源,并根据在部署过程中创建的多个托管标识为这些资源分配权限(这些角色分配转而要求服务主体具有 Owner)。
5. LOGS_STORAGE_ACCOUNT_SAS - Blob 存储帐户 SAS URL
建议:将此项保留为空意味着不会获得测试结果和日志。
The launcher needs a persistent location (Azure Blob Storage) to upload results to, as Kubernetes doesn't (yet) allow copying files from stopped/completed pods - see here. 启动器使用“帐户范围的 SAS URL”(相对于容器或 blob 范围)实现与 Azure Blob 存储的连接 - 具有时间限制访问定义的签名 URL - 请参阅使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限,以执行以下操作:
- 在预先存在的存储帐户 (
LOGS_STORAGE_ACCOUNT) 中创建新的存储容器(如果容器不存在(名称基于LOGS_STORAGE_CONTAINER)) - 创建新的、唯一命名的 blob(测试日志 tar 文件)
以下步骤源自使用共享访问签名 (SAS) 授予对 Azure 存储资源的有限访问权限。
Tip
SAS URL 不同于存储帐户密钥,SAS URL 的格式如下所示。
?sv=2021-06-08&ss=bfqt&srt=sco&sp=rwdlacupiytfx&se=...&spr=https&sig=...
有多种方法可以生成 SAS URL。 此示例显示门户:
若要改用 Azure CLI,请参阅 az storage account generate-sas
6. SKIP_* - 通过跳过某些阶段来控制启动器的行为
可选:在
.test.env中将此留空以运行所有阶段(等效于0或空白)
启动器公开 SKIP_* 变量,以运行和跳过特定阶段 - 例如,执行“仅清理”运行。
尽管启动器旨在在每次运行的开始和结束时进行清理,但启动和/或测试失败可能会留下剩余资源。 若要在“仅清理”模式下运行启动器,请在 .test.env 中设置以下变量:
export SKIP_PRECLEAN="0" # Run cleanup
export SKIP_SETUP="1" # Do not setup Arc-enabled Data Services
export SKIP_TEST="1" # Do not run integration tests
export SKIP_POSTCLEAN="1" # POSTCLEAN is identical to PRECLEAN, although idempotent, not needed here
export SKIP_UPLOAD="1" # Do not upload logs from this run
上述设置指示启动器清理所有 Arc 和 Arc 数据服务资源,且不部署/测试/上传日志。
Config 2:patch.json
基于 patch.json 生成的 patch.json.tmpl 文件的填写示例如下所示:
请注意,
spec.docker.registry, repository, imageTag应与上述.test.env中的值相同
patch.json 的已完成示例:
{
"patch": [
{
"op": "add",
"path": "spec.docker",
"value": {
"registry": "mcr.microsoft.com",
"repository": "arcdata",
"imageTag": "v1.11.0_2022-09-13",
"imagePullPolicy": "Always"
}
},
{
"op": "add",
"path": "spec.storage.data.className",
"value": "default"
},
{
"op": "add",
"path": "spec.storage.logs.className",
"value": "default"
}
]
}
Launcher deployment
It is recommended to deploy the launcher in a Non-Production/Test cluster - as it performs destructive actions on Arc and other used Kubernetes resources.
imageTag 规范
启动器在 Kubernetes 清单中定义为一个 Job,这需要指示 Kubernetes 在哪里查找启动器映像。 在 base/kustomization.yaml 中对其进行设置:
images:
- name: arc-ci-launcher
newName: mcr.microsoft.com/arcdata/arc-ci-launcher
newTag: v1.11.0_2022-09-13
Tip
To recap, at this point - there are 3 places we specified imageTags, for clarity, here's an explanation of the different uses of each. 通常 - 测试给定版本时,所有 3 个值都是相同的(与给定版本保持一致):
| # | Filename | Variable name | Why? | Used by? |
|---|---|---|---|---|
| 1 | .test.env |
DOCKER_TAG |
Sourcing the Bootstrapper image as part of extension install | 启动器中的 az k8s-extension create |
| 2 | patch.json |
value.imageTag |
获取数据控制器映像 | 启动器中的 az arcdata dc create |
| 3 | kustomization.yaml |
images.newTag |
Sourcing the launcher's image | 启动器中的 kubectl apply |
kubectl apply
若要验证清单是否已正确设置,请尝试使用 --dry-run=client 进行客户端验证,这会输出要为启动器创建的 Kubernetes 资源:
kubectl apply -k arc_data_services/test/launcher/overlays/aks --dry-run=client
# namespace/arc-ci-launcher created (dry run)
# serviceaccount/arc-ci-launcher created (dry run)
# clusterrolebinding.rbac.authorization.k8s.io/arc-ci-launcher created (dry run)
# secret/test-env-fdgfm8gtb5 created (dry run) <- Created from Config 1: `patch.json`
# configmap/control-patch-2hhhgk847m created (dry run) <- Created from Config 2: `.test.env`
# job.batch/arc-ci-launcher created (dry run)
若要部署启动器和结尾日志,请运行以下命令:
kubectl apply -k arc_data_services/test/launcher/overlays/aks
kubectl wait --for=condition=Ready --timeout=360s pod -l job-name=arc-ci-launcher -n arc-ci-launcher
kubectl logs job/arc-ci-launcher -n arc-ci-launcher --follow
此时,启动器应会启动 - 可以看到以下内容:
尽管最好在没有预先存在的 Arc 资源的群集中部署启动器,但在部署新版本之前,启动器会包含预运行验证以发现预先存在的 Arc 和 Arc 数据服务 CRD 和 ARM 资源,并尝试(使用提供的服务主体凭据)对其进行清理:
启动器退出时也会运行相同的元数据发现和清理过程,使群集尽可能接近启动前处于的状态。
启动器执行的步骤
启动器大致按以下步骤顺序执行:
使用 Pod 装载的服务帐户向 Kubernetes API 进行身份验证
使用机密装载的服务主体向 ARM API 进行身份验证
执行 CRD 元数据扫描以发现现有的 Arc 和 Arc 数据服务自定义资源
清理 Kubernetes 中的任何现有自定义资源,以及 Azure 中的后续资源。 如果
.test.env中的凭据与群集中现有的资源存在任何不匹配,请退出。根据 Arc 群集名称、数据控制器和自定义位置/命名空间的时间戳生成唯一的环境变量集。 输出环境变量、模糊处理敏感值(例如服务主体密码等)
a. 对于直接模式 - 将群集加入 Azure Arc,然后部署控制器。
b. 对于间接模式:部署数据控制器
数据控制器
Ready后,生成一组 Azure CLI (az arcdata dc debug) 日志并在本地存储,标记为setup-complete- 作为基线。使用
TESTS_DIRECT/INDIRECT的.test.env环境变量来启动一组基于空格分隔数组 (TESTS_(IN)DIRECT) 的并行化 Sonobuoy 测试运行。 这些运行使用包含 Pytest 验证测试的sonobuoyPod 在新的arc-sb-plugin命名空间中执行。Sonobuoy aggregator accumulate the
junittest results and logs perarc-sb-plugintest run, which are exported into the launcher pod.返回测试的退出代码,并生成另一组调试日志 - Azure CLI 和
sonobuoy- 存储在本地,标记为test-complete。执行步骤 3 类似的 CRD 元数据扫描,以发现现有的 Arc 和 Arc 数据服务自定义资源。 然后,继续按照与部署过程相反的顺序销毁所有 Arc 和 Arc 数据资源,以及 CRD、Role/ClusterRoles、PV/PVC 等。
Attempt to use the SAS token
LOGS_STORAGE_ACCOUNT_SASprovided to create a new Storage Account container named based onLOGS_STORAGE_CONTAINER, in the pre-existing Storage AccountLOGS_STORAGE_ACCOUNT. 如果存储帐户容器已存在,请使用它。 将所有本地测试结果和日志作为 tarball 上传到此存储容器(见下文)。Exit.
每个测试套件执行的测试
There are approximately 375 unique integration tests available, across 27 test suites - each testing a separate functionality.
| Suite # | 测试套件名称 | 测试说明 |
|---|---|---|
| 1 | ad-connector |
测试 Active Directory 连接器(AD 连接器)的部署和更新。 |
| 2 | billing |
测试各种反映在控制器的资源表中的业务关键型许可证类型,用于计费上传。 |
| 3 | ci-billing |
与 billing 类似,但有更多的 CPU/内存排列。 |
| 4 | ci-sqlinstance |
适用于多副本创建、更新、GP -> BC 更新、备份验证和 SQL Server 代理的长期测试。 |
| 5 | controldb |
测试控制数据库 - SA 机密检查、系统登录验证、审核创建以及 SQL 内部版本的健全性检查。 |
| 6 | dc-export |
间接模式计费和使用情况上传。 |
| 7 | direct-crud |
使用 ARM 调用创建 SQL 实例,在 Kubernetes 和 ARM 中进行验证。 |
| 8 | direct-fog |
创建多个 SQL 实例,并使用 ARM 调用在它们之间创建故障转移组。 |
| 9 | direct-hydration |
使用 Kubernetes API 创建 SQL 实例,验证 ARM 中的状态。 |
| 10 | direct-upload |
在直接模式下验证计费上传 |
| 11 | kube-rbac |
确保 Arc Data Services 的 Kubernetes 服务帐户权限与最小特权期望相匹配。 |
| 12 | nonroot |
确保容器以非根用户身份运行 |
| 13 | postgres |
完成各种 Postgres 创建、缩放、备份/恢复测试。 |
| 14 | release-sanitychecks |
按月发行版本的健全性检查,例如 SQL Server 内部版本。 |
| 15 | sqlinstance |
ci-sqlinstance 的较短版本,用于快速验证。 |
| 16 | sqlinstance-ad |
使用 Active Directory 连接器测试 SQL 实例的创建。 |
| 17 | sqlinstance-credentialrotation |
测试常规用途和业务关键自动凭据轮换。 |
| 18 | sqlinstance-ha |
各种高可用性压力测试,包括 pod 重新启动、强制故障转移和挂起。 |
| 19 | sqlinstance-tde |
各种透明数据加密测试。 |
| 20 | telemetry-elasticsearch |
验证 Elasticsearch 的日志引入。 |
| 21 | telemetry-grafana |
验证 Grafana 是否可用。 |
| 22 | telemetry-influxdb |
验证 InfluxDB 的指标引入。 |
| 23 | telemetry-kafka |
使用 SSL、单/多代理设置对 Kafka 进行的各种测试。 |
| 24 | telemetry-monitorstack |
测试监控组件,如 Fluentbit 和 Collectd,是否正常工作。 |
| 25 | telemetry-telemetryrouter |
测试 Open Telemetry。 |
| 26 | telemetry-webhook |
使用有效和无效调用测试 Data Services Webhook。 |
| 27 | upgrade-arcdata |
升级全套 SQL 实例(GP、BC 2 副本、BC 3 副本,以及 Active Directory),并从上个月的版本升级到最新版本。 |
例如,对于 sqlinstance-ha,执行以下测试:
-
test_critical_configmaps_present:确保存在 SQL 实例的 ConfigMaps 和相关字段。 -
test_suspended_system_dbs_auto_heal_by_orchestrator:确保master和msdb是否以任何方式挂起(在本例中为用户)。 Orchestrator 维护协调会自动修复它。 -
test_suspended_user_db_does_not_auto_heal_by_orchestrator:确保如果用户故意挂起用户数据库,Orchestrator 维护协调不会自动修复它。 -
test_delete_active_orchestrator_twice_and_delete_primary_pod:多次删除业务流程协调程序 pod,然后删除主要副本,并验证所有副本是否同步。 放宽了对 2 个副本的故障转移时间预期。 -
test_delete_primary_pod:删除主要副本并验证所有副本是否同步。 放宽了对 2 个副本的故障转移时间预期。 -
test_delete_primary_and_orchestrator_pod:删除主要副本和业务流程协调程序 pod,并验证所有副本是否已同步。 -
test_delete_primary_and_controller:删除主要副本和数据控制器 pod,并验证主终结点是否可访问以及新的主要副本是否已同步。 放宽了对 2 个副本的故障转移时间预期。 -
test_delete_one_secondary_pod:删除次要副本和数据控制器 pod,并验证所有副本是否已同步。 -
test_delete_two_secondaries_pods:删除次要副本和数据控制器 pod,并验证所有副本是否已同步。 -
test_delete_controller_orchestrator_secondary_replica_pods: -
test_failaway:强制 AG 故障转移远离当前主要副本,确保新主要副本与旧主要副本不同。 验证所有副本是否已同步。 -
test_update_while_rebooting_all_non_primary_replicas:测试控制器驱动的更新在各种动荡的情况下都有重试的可复原性。
Note
某些测试可能需要特定的硬件,例如对域控制器的特权访问,用于创建帐户和 DNS 项的 ad 测试,这可能不适用于所有希望使用 arc-ci-launcher 的环境。
检查测试结果
启动器上传的示例存储容器和文件:
以及运行中生成的测试结果:
清理资源
若要删除启动器,请运行:
kubectl delete -k arc_data_services/test/launcher/overlays/aks
这会清理作为启动器一部分部署的资源清单。