4장. Microsoft Azure에서 Red Hat High Availability 클러스터 구성
Azure VM(가상 머신) 인스턴스를 클러스터 노드로 사용하여 Azure에서 HA(Red Hat High Availability) 클러스터를 구성하려면 다음 섹션을 참조하십시오. 이 섹션의 절차에서는 Azure에 대한 사용자 지정 이미지를 생성하는 것으로 가정합니다. 클러스터에 사용하는 RHEL 9 이미지를 가져올 수 있는 여러 옵션이 있습니다. Azure의 이미지 옵션에 대한 자세한 내용은 Azure의 Red Hat Enterprise Linux 이미지 옵션을 참조하십시오.
다음 섹션에서는 다음을 제공합니다.
- Azure 환경을 설정하기 위한 사전 요구 사항을 설명합니다. 환경을 설정한 후 Azure VM 인스턴스를 생성하고 구성할 수 있습니다.
- 개별 노드를 Azure의 HA 노드 클러스터로 변환하는 HA 클러스터 생성과 관련된 절차입니다. 여기에는 각 클러스터 노드에 High Availability 패키지 및 에이전트를 설치하고, 펜싱을 구성하며, Azure 네트워크 리소스 에이전트를 설치하는 절차가 포함됩니다.
사전 요구 사항
- Red Hat 고객 포털 계정에 등록합니다.
- 관리자 권한으로 Microsoft Azure 계정에 등록합니다.
- Azure CLI(명령줄 인터페이스)를 설치해야 합니다. 자세한 내용은 Azure CLI 설치를 참조하십시오.
Red Hat Cloud Access 프로그램에서 서브스크립션을 활성화합니다. Red Hat Cloud Access 프로그램을 사용하면 Red Hat 서브스크립션을 물리적 시스템 또는 사내 시스템에서 Azure로 이전할 수 있으며 Red Hat의 완벽한 지원을 받을 수 있습니다.
- Azure Marketplace를 사용하여 RHEL 이미지를 온디맨드로 가져올 수 있습니다.
4.1. Azure에서 리소스 생성
지역, 리소스 그룹, 스토리지 계정, 가상 네트워크 및 가용성 세트를 생성하려면 다음 절차를 완료합니다. Microsoft Azure에 클러스터를 설정하려면 이러한 리소스가 필요합니다.
절차
Azure로 시스템을 인증하고 로그인합니다.
$ az login
참고환경에서 브라우저를 사용할 수 있는 경우 CLI는 브라우저를 Azure 로그인 페이지로 엽니다.
예제:
[clouduser@localhost]$ az login To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code FDMSCMETZ to authenticate. [ { "cloudName": "AzureCloud", "id": "Subscription ID", "isDefault": true, "name": "MySubscriptionName", "state": "Enabled", "tenantId": "Tenant ID", "user": { "name": "clouduser@company.com", "type": "user" } } ]
Azure 리전에 리소스 그룹을 생성합니다.
$ az group create --name resource-group --location azure-region
예제:
[clouduser@localhost]$ az group create --name azrhelclirsgrp --location southcentralus { "id": "/subscriptions//resourceGroups/azrhelclirsgrp", "location": "southcentralus", "managedBy": null, "name": "azrhelclirsgrp", "properties": { "provisioningState": "Succeeded" }, "tags": null }
스토리지 계정을 생성합니다.
$ az storage account create -l azure-region -n storage-account-name -g resource-group --sku sku_type --kind StorageV2
예제:
[clouduser@localhost]$ az storage account create -l southcentralus -n azrhelclistact -g azrhelclirsgrp --sku Standard_LRS --kind StorageV2 { "accessTier": null, "creationTime": "2017-04-05T19:10:29.855470+00:00", "customDomain": null, "encryption": null, "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Storage/storageAccounts/azrhelclistact", "kind": "StorageV2", "lastGeoFailoverTime": null, "location": "southcentralus", "name": "azrhelclistact", "primaryEndpoints": { "blob": "https://azrhelclistact.blob.core.windows.net/", "file": "https://azrhelclistact.file.core.windows.net/", "queue": "https://azrhelclistact.queue.core.windows.net/", "table": "https://azrhelclistact.table.core.windows.net/" }, "primaryLocation": "southcentralus", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "secondaryEndpoints": null, "secondaryLocation": null, "sku": { "name": "Standard_LRS", "tier": "Standard" }, "statusOfPrimary": "available", "statusOfSecondary": null, "tags": {}, "type": "Microsoft.Storage/storageAccounts" }
스토리지 계정 연결 문자열을 가져옵니다.
$ az storage account show-connection-string -n storage-account-name -g resource-group
예제:
[clouduser@localhost]$ az storage account show-connection-string -n azrhelclistact -g azrhelclirsgrp { "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...==" }
연결 문자열을 복사하고 다음 명령에 붙여넣어 연결 문자열을 내보냅니다. 이 문자열은 시스템을 스토리지 계정에 연결합니다.
$ export AZURE_STORAGE_CONNECTION_STRING="storage-connection-string"
예제:
[clouduser@localhost]$ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...=="
스토리지 컨테이너를 만듭니다.
$ az storage container create -n container-name
예제:
[clouduser@localhost]$ az storage container create -n azrhelclistcont { "created": true }
가상 네트워크를 만듭니다. 모든 클러스터 노드는 동일한 가상 네트워크에 있어야 합니다.
$ az network vnet create -g resource group --name vnet-name --subnet-name subnet-name
예제:
[clouduser@localhost]$ az network vnet create --resource-group azrhelclirsgrp --name azrhelclivnet1 --subnet-name azrhelclisubnet1 { "newVNet": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "dhcpOptions": { "dnsServers": [] }, "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1", "location": "southcentralus", "name": "azrhelclivnet1", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceGuid": "0f25efee-e2a6-4abe-a4e9-817061ee1e79", "subnets": [ { "addressPrefix": "10.0.0.0/24", "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1/subnets/azrhelclisubnet1", "ipConfigurations": null, "name": "azrhelclisubnet1", "networkSecurityGroup": null, "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceNavigationLinks": null, "routeTable": null } ], "tags": {}, "type": "Microsoft.Network/virtualNetworks", "virtualNetworkPeerings": null } }
가용성 집합을 생성합니다. 모든 클러스터 노드는 동일한 가용성 집합에 있어야 합니다.
$ az vm availability-set create --name MyAvailabilitySet --resource-group MyResourceGroup
예제:
[clouduser@localhost]$ az vm availability-set create --name rhelha-avset1 --resource-group azrhelclirsgrp { "additionalProperties": {}, "id": "/subscriptions/.../resourceGroups/azrhelclirsgrp/providers/Microsoft.Compute/availabilitySets/rhelha-avset1", "location": "southcentralus", "name": “rhelha-avset1", "platformFaultDomainCount": 2, "platformUpdateDomainCount": 5, [omitted]
추가 리소스