你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用单节点或 2 节点群集为边缘卷准备 Linux

本文介绍如何使用单节点或 2 节点群集准备 Linux,并假设你已满足先决条件

使用 Azure Arc 启用的 AKS 准备 Linux

本部分介绍如何在运行单节点或 2 节点群集的情况下使用 Azure Arc 启用的 AKS 准备 Linux。

  1. 使用以下命令安装 Open Service Mesh (OSM):

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m
    

使用 AKS 边缘软件包准备 Linux

本部分介绍如何在运行单节点或 2 节点群集的情况下使用 AKS 边缘软件包准备 Linux。

  1. 若要使边缘软件包支持 Azure Arc 启用的 Azure IoT 操作和 Azure 容器存储,必须修改 Kubernetes 主机以支持更多内存。 如果预计需要额外的资源供 Kubernetes 使用,此时还可以增加 vCPU 和磁盘分配。

    首先请遵循此处的操作指南。 快速入门使用默认配置,应避免使用它。

    按照步骤 1:单计算机配置参数操作后,你在工作目录中有一个名为 aksedge-config.json 的文件。 在记事本或其他文本编辑器中打开此文件:

    "SchemaVersion": "1.11",
    "Version": "1.0",
    "DeploymentType": "SingleMachineCluster",
    "Init": {
        "ServiceIPRangeSize": 0
    },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 4096,
            "DataSizeInGB": 10,
        }
    }
    ]
    

    MemoryInMB 增加到至少 16384,将 DataSizeInGB 增加到 40G。 将 ServiceIPRangeSize 设置为 15。 如果打算运行许多 POD,也可以增加 CpuCount。 例如:

    "Init": {
        "ServiceIPRangeSize": 15
       },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 16384,
            "DataSizeInGB": 40,
        }
    }
    ]
    

    继续执行剩余步骤,从创建单计算机群集开始。 接下来,将 AKS 边缘软件包群集连接到 Arc

  2. 检查并安装 Local Path Provisioner 存储(如果尚未安装)。 运行以下 cmdlet,检查节点上是否已提供本地路径存储类:

    kubectl get StorageClass
    

    如果本地路径存储类不可用,请运行以下命令:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

    注意

    Local-Path-Provisioner 和 Busybox 映像不由 Microsoft 维护,而是从 Rancher Labs 存储库拉取。 Local-Path-Provisioner 和 BusyBox 仅可用作 Linux 容器映像。

    如果所有设置都配置正确,应该会看到以下输出:

    NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  21h
    

    如果有多个磁盘并想要重定向路径,请使用:

    kubectl edit configmap -n kube-system local-path-config
    
  3. 运行以下命令,确定是否将 fs.inotify.max_user_instances 设置为 1024:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "sysctl fs.inotify.max_user_instances
    

    运行此命令后,如果输出小于 1024,请运行以下命令来增加最大文件数:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    
  4. 使用以下命令安装 Open Service Mesh (OSM):

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m
    

使用 Ubuntu 准备 Linux

本部分介绍如何在运行单节点或 2 节点群集的情况下使用 Ubuntu 准备 Linux。

  1. 使用以下命令安装 Open Service Mesh (OSM):

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m
    
  2. 运行以下命令,确定是否将 fs.inotify.max_user_instances 设置为 1024:

    sysctl fs.inotify.max_user_instances
    

    运行此命令后,如果输出小于 1024,请运行以下命令来增加最大文件数,并重新加载 sysctl 设置:

    echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    

使用其他平台准备 Linux

可用的平台选项是 Microsoft 已经验证的类似于生产的环境。 这些平台不一定是能够运行 Azure Arc 启用的 Azure 容器存储的唯一环境。 在任何已启用 Arc 的 Kubernetes 群集上,只要其满足已启用 Azure Arc 的 Kubernetes 系统要求,就可以在其中运行 Azure Arc 启用的 Azure 容器存储。 如果在未列出的环境中运行,下面是一些建议,可增加成功安装的可能性:

  1. 运行以下命令以增加用户监视和实例限制:

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  2. 运行以下命令以提高文件描述符限值,从而获得更好的性能:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  3. 运行以下命令以安装本地路径预配程序:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

后续步骤

安装由 Azure Arc 启用的 Azure 容器存储