天天看點

【Azure 雲服務】Azure Cloud Service如何來設定固定IP位址(ReservedIP)

問題描述

在雲中環境,部署的應用到雲服務(Cloud Service)都是動态的IP位址,是以在添加DNS記錄的時候,都是使用CNAME,但如果需要在DNS中添加A記錄,則需要一個固定IP。 

解決方案

Azure提供了保留IP的服務,可以通過New-AzureReservedIP指令來建立。然後再雲服務(Cloud Service)中使用。操作步驟如下:

步驟一:通過powershell 指令進行建立保留IP

New-AzureReservedIP -ReservedIPName $Name -  -Location $Location      
【Azure 雲服務】Azure Cloud Service如何來設定固定IP位址(ReservedIP)
  • Get-AzureReservedIP 檢視建立的保留位址
  • Remove-AzureReservedIPAssociation 解除保留IP位址

步驟二:修改Cloud Service配置檔案,把ReservedIP與Cloud Service關聯,然後重新釋出檔案

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="AzureCloudService2" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="6" osVersion="*" schemaVersion="2015-04.2.6">
  <Role name="WebRole1">
    <Instances count="1" />
    <ConfigurationSettings>
    </ConfigurationSettings>
  </Role> 
<NetworkConfiguration>
   <AddressAssignments>
       <ReservedIPs>
          <ReservedIP name="MyPassIp2"/>
       </ReservedIPs>
    </AddressAssignments>
</NetworkConfiguration>
</ServiceConfiguration>      

或通過Powershell指令進行綁定

Set-AzureReservedIPAssociation -ReservedIPName MyPassIp2 -ServiceName <cloud service name>      

附加因ReservedIP而引發的錯誤

1) 雲服務在更新釋出後無法修改RDP的密碼,修改時出現錯誤消息:ReservedIP  was not mapped to an endpoint. The service definition must contain atleast one endpoint that maps to the ReservedIP.

【答】根據錯誤消息提示,檢視到是ReservedIP位址沒有綁定endpoint推斷是新釋出的配置檔案中遺漏了該Cloud Service的ReservedIP配置部分。是以需要先解綁ReservedIP,重新綁定。 也可以再解綁後修改RDP密碼。修改成功後重新綁定ReservedIP.  解決問題的過程中使用的指令正是:

Remove-AzureReservedIPAssociation -ReservedIPName <ReservedIPName> -ServiceName <ServiceName >

Set-AzureReservedIPAssociation -ReservedIPName <ReservedIPName> -ServiceName <ServiceName >      

參考文檔

Azure 雲服務的配置 NetworkConfiguration 架構: https://docs.azure.cn/zh-cn/cloud-services/schema-cscfg-networkconfiguration

New-AzureReservedIP: https://docs.microsoft.com/en-us/powershell/module/servicemanagement/azure.service/new-azurereservedip?view=azuresmps-4.0.0

下表介紹了 

NetworkConfiguration

 元素的子元素。
NETWORKCONFIGURATION 元素
元素 說明
AccessControl 可選。 指定雲服務中用于通路終結點的規則。 通路控制名稱由 

name

 屬性的字元串定義。 

AccessControl

 元素包含一個或多個 

Rule

 元素。 可定義多個 

AccessControl

 元素。
規則 可選。 指定應對指定的 IP 位址子網範圍執行的操作。 規則的順序由 

order

 屬性的字元串值定義。 規則編号越低,優先級越高。 例如,可使用序号 100、200 和 300 指定規則。 序号為 100 的規則優先于序号為 200 的規則。

規則的操作由 

action

 屬性的字元串定義。 可能的值包括:

permit

 - 指定隻有指定子網範圍中的資料包才可以與終結點通信。

deny

 - 指定拒絕對指定子網範圍中終結點的通路。

受規則影響的 IP 位址的子網範圍由 

remoteSubnet

 屬性的字元串定義。 對規則的說明由 

description

 屬性的字元串定義。
EndpointAcl 可選。 指定向終結點配置設定通路控制規則。 包含終結點的角色的名稱由 

role

 屬性的字元串定義。 終結點的名稱由 

endpoint

 屬性的字元串定義。 對于應該應用到終結點的 

AccessControl

 規則的集合,其名稱在 

accessControl

 屬性的字元串中定義。 可定義多個 

EndpointAcl

DnsServer 可選。 指定 DNS 伺服器的設定。 可以指定不使用虛拟網絡的 DNS 伺服器的設定。 DNS 伺服器的名稱由 

name

 屬性的字元串定義。 DNS 伺服器的 IP 位址由 

IPAddress

 屬性的字元串定義。 該 IP 位址必須是有效的 IPv4 位址。
VirtualNetworkSite 可選。 指定要在其中部署雲服務的虛拟網絡站點的名稱。 此設定不會建立虛拟網絡站點。 它引用之前已在虛拟網絡的網絡檔案中定義的站點。 一個雲服務隻能是一個虛拟網絡的成員。 如未指定此設定,則雲服務不會部署到虛拟網絡。 虛拟網絡站點的名稱由 

name

InstanceAddress 可選。 指定角色與虛拟網絡中的子網或子網集的關聯。 将角色名稱關聯到執行個體位址時,可以指定要将此角色與之關聯的子網。 

InstanceAddress

 包含 Subnets 元素。 與一個或多個子網相關聯的角色的名稱由 

roleName

子網 可選。 指定與網絡配置檔案中的子網名稱相對應的子網。 子網的名稱由 

name

ReservedIP 可選。 指定應與部署關聯的保留 IP 位址。 必須使用“建立保留 IP 位址”建立保留的 IP 位址。 雲服務中的每個部署均可與一個保留 IP 位址相關聯。 保留 IP 位址的名稱由 

name

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!

繼續閱讀