你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
备用:云引入边缘卷的 OneLake 配置
本文介绍了适用于 OneLake Lakehouse 的云引入边缘卷的备用配置(使用本地清除的 Blob 上传)。
为扩展标识配置 OneLake
将扩展标识添加到 OneLake 工作区
- 导航到 OneLake 门户;例如,
https://youraccount.powerbi.com
。 - 创建或导航到工作区。
- 选择“管理访问”。
- 选择“添加人员或组”。
- 输入由 Azure Arc 安装启用的 Azure 容器存储中的扩展名称。 此名称在租户中必须是唯一的。
- 将权限下拉列表从“查看者”更改为“参与者”。
- 选择 添加 。
创建云引入永久性卷声明 (PVC)
创建包含以下内容的名为
cloudIngestPVC.yaml
的文件。 使用永久性卷声明的名称修改metadata.name
值。 下一步中deploymentExample.yaml
的最后一行将会引用此名称。 你还必须通过预期使用的 Pod 更新metadata.namespace
值。 如果没有预期使用的 Pod,则metadata.namespace
值为default
。注意
只使用小写字母和短划线。 有关详细信息,请参阅 Kubernetes 对象命名文档。
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a nane for your PVC ### name: <create-a-pvc-name-here> ### Use a namespace that matches your intended consuming pod, or "default" ### namespace: <intended-consuming-pod-or-default-here> spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi storageClassName: cloud-backed-sc
如果要应用
cloudIngestPVC.yaml
,请运行:kubectl apply -f "cloudIngestPVC.yaml"
将子卷附加到边缘卷
可以使用以下过程通过扩展标识创建子卷,以连接到 OneLake LakeHouse。
使用以下命令获取边缘卷的名称:
kubectl get edgevolumes
创建名为
edgeSubvolume.yaml
的文件并复制/粘贴以下内容。 必须使用你的信息更新以下变量:注意
只使用小写字母和短划线。 有关详细信息,请参阅 Kubernetes 对象命名文档。
metadata.name
:为子卷创建名称。spec.edgevolume
:此名称是使用kubectl get edgevolumes
从上一步检索的。spec.path
:在装载路径下创建自己的子目录名称。 以下示例已包含示例名称(exampleSubDir
)。 如果更改此路径名称,则必须使用新路径名称更新deploymentExample.yaml
中的第 33 行。 如果选择重命名路径,请不要在前面使用斜杠。spec.container
:One Lake Data Lake Lakehouse 的详细信息(例如<WORKSPACE>/<DATA_LAKE>.Datalake/Files
)。spec.storageaccountendpoint
:存储帐户终结点是 Power BI Web 链接的前缀。 例如,如果 OneLake 页面为https://contoso-motors.powerbi.com/
,则终结点为https://contoso-motors.dfs.fabric.microsoft.com
。
apiVersion: "arccontainerstorage.azure.net/v1" kind: EdgeSubvolume metadata: name: <create-a-subvolume-name-here> spec: edgevolume: <your-edge-volume-name-here> path: exampleSubDir # If you change this path, line 33 in deploymentExample.yaml must to be updated. Don't use a preceding slash. auth: authType: MANAGED_IDENTITY storageaccountendpoint: "https://<Your AZ Site>.dfs.fabric.microsoft.com/" # Your AZ site is the root of your Power BI OneLake interface URI, such as https://contoso-motors.powerbi.com container: "<WORKSPACE>/<DATA_LAKE>.Datalake/Files" # Details of your One Lake Data Lake Lakehouse ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
如果要应用
edgeSubvolume.yaml
,请运行:kubectl apply -f "edgeSubvolume.yaml"
可选:修改 ingestPolicy
默认值
如果要更改默认为
edgeingestpolicy-default
的ingestPolicy
,请创建包含以下内容的名为myedgeingest-policy.yaml
的文件。 必须使用你的偏好设置更新以下变量:注意
只使用小写字母和短划线。 有关详细信息,请参阅 Kubernetes 对象命名文档。
metadata.name
:创建ingestPolicy
的名称。 必须在edgeSubvolume.yaml
的spec.ingestPolicy
部分中更新并引用此名称。spec.ingest.order
:上传脏文件的顺序。 这是尽最大努力,而不是保证(默认为oldest-first
)。 顺序选项为:oldest-first
或newest-first
。spec.ingest.minDelaySec
:脏文件符合引入条件前的最小秒数(默认值为 60)。 此数字可以介于 0 和 31536000 之间。spec.eviction.order
:如何逐出文件(默认值为unordered
)。 逐出顺序的选项为:unordered
或never
。spec.eviction.minDelaySec
:干净文件符合逐出条件前的秒数(默认值为 300)。 此数字可以介于 0 和 31536000 之间。
apiVersion: arccontainerstorage.azure.net/v1 kind: EdgeIngestPolicy metadata: name: <create-a-policy-name-here> # This will need to be updated and referenced in the spec.ingestPolicy section of the edgeSubvolume.yaml spec: ingest: order: <your-ingest-order> minDelaySec: <your-min-delay-sec> eviction: order: <your-eviction-order> minDelaySec: <your-min-delay-sec>
如果要应用
myedgeingest-policy.yaml
,请运行:kubectl apply -f "myedgeingest-policy.yaml"
附加应用(Kubernetes 本机应用程序)
要针对永久性卷声明 (PVC) 配置通用单一 Pod(Kubernetes 本机应用程序),请创建包含以下内容的名为
deploymentExample.yaml
的文件。 将containers.name
和volumes.persistentVolumeClaim.claimName
的值替换为自己的值。 如果从edgeSubvolume.yaml
更新了路径名称,则必须使用新路径名称更新第 33 行的exampleSubDir
。注意
只使用小写字母和短划线。 有关详细信息,请参阅 Kubernetes 对象命名文档。
apiVersion: apps/v1 kind: Deployment metadata: name: cloudingestedgevol-deployment ### This must be unique for each deployment you choose to create. spec: replicas: 2 selector: matchLabels: name: wyvern-testclientdeployment template: metadata: name: wyvern-testclientdeployment labels: name: wyvern-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - wyvern-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: <create-a-container-name-here> image: mcr.microsoft.com/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09 command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/exampleSubDir/esaingesttestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done" volumeMounts: ### This name must match the following volumes.name attribute ### - name: wyvern-volume ### This mountPath is where the PVC is attached to the pod's filesystem ### mountPath: "/data" volumes: ### User-defined name that's used to link the volumeMounts. This name must match volumeMounts.name as previously specified. ### - name: wyvern-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata.name claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
如果要应用
deploymentExample.yaml
,请运行:kubectl apply -f "deploymentExample.yaml"
使用
kubectl get pods
查找 Pod 的名称。 复制此名称,因为你在下一步需要它。注意
由于已将
deploymentExample.yaml
的spec.replicas
指定为2
,因此会出现两个使用kubectl get pods
的 Pod。 可以选择任一 Pod 名称用于下一步。运行以下命令,并将
POD_NAME_HERE
替换为上一步复制的值:kubectl exec -it POD_NAME_HERE -- sh
将目录更改为
deploymentExample.yaml
中指定的/data
装载路径。你应会看到一个目录,其名称为在“将子卷附加到边缘卷”部分的步骤 2 中指定的
path
。 现在,cd
会更改为/YOUR_PATH_NAME_HERE
,从而将YOUR_PATH_NAME_HERE
替换为你的详细信息。例如,创建一个名为
file1.txt
的文件并使用echo "Hello World" > file1.txt
写入它。在 Azure 门户中,导航到存储帐户,并查找在“将子卷附加到边缘卷”的步骤 2 中指定的容器。 选择容器时,应会发现容器中已填充
file1.txt
。 如果文件尚未显示,请等待大约 1 分钟;Edge 卷会等待一分钟才会上传。
后续步骤
完成这些步骤后,开始使用 Azure Monitor 和 Kubernetes 监视来监视部署,或使用 Prometheus 和 Grafana 进行第三方监视。