全部產品
Search
文件中心

Compute Nest:網路變更配置

更新時間:Nov 26, 2024

計算巢全託管服務提供了私網訪問變更配置功能,以滿足使用者對私網訪問配置的修改需求。使用者在完成服務執行個體建立後,可以新增、修改、刪除網路,本文介紹私網串連變更配置功能的相關資訊。

重要

網路變更配置僅支援全託管服務。

使用說明

計算巢私網訪問支援阿里雲私網PrivateLinkVpc對等串連兩種模式,可根據需要選擇對應的串連模式。

  • Vpc對等串連

    • 僅限建立VPC情境,您需要在服務範本中定義建立VPC的參數,使用者在建立服務執行個體時,僅需填寫與服務建立VPC建立對等串連的專用網路即可。

    • 變更配置支援新增、刪除、修改Vpc對等串連。

  • 阿里雲私網PrivateLink

    • 支援同可用性區域的私網互聯,互動資料不會經過互連網,有更高的安全性和更好的網路品質。更多資訊,請參見什麼是私網串連

    • 變更配置支援新增、刪除、修改PrivateLink串連。

計費說明

計算巢不收取平台服務費,但您需要為服務部署時使用的雲資源付費(例如VPC Peering流量、SLB執行個體、ECS執行個體等)。具體收費資訊,請參見產品計費

Vpc對等串連變更配置(VPC Peering)

本節從Vpc對等串連的角度,介紹服務商如何開啟並設定Vpc對等串連變更配置,同時為服務執行個體進行網路變更配置。

建立全託管服務

此處只展示私網訪問變更配置功能設定資訊。關於建立全託管服務的詳細資料,請參見建立全託管服務

  1. 建立新服務頁面的服務部署地區中,ROS模板必須包含建立VPC

    • Resrouces中需存在資源ALIYUN::ECS::VPC,樣本如下:

      Resources:
        EcsVpc:
          Type: ALIYUN::ECS::VPC
          Properties:
            CidrBlock:
              Ref: VpcCidrBlock
    • Parameters中需存在CIDR入參,即存在參數的AssociationPropertyALIYUN::VPC::VPC::CIDRBLOCK,樣本如下:

      Parameters:
        VpcCidrBlock:
          Type: String
          AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
          AllowedValues:
            - 192.168.0.0/16
            - 172.16.0.0/12
            - 10.0.0.0/8
          Description:
            en: The IP address range of the VPC in the CIDR block form.
            zh-cn: 專用網路的網段,可選值:192.168.0.0/16,172.16.0.0/12,10.0.0.0/8。
          Default: 192.168.0.0/16
    • 完整程式碼範例,如果您想快速測試可參考下方模板代碼。

      ECS版Mysql(支援對等串連)

      ROSTemplateFormatVersion: '2015-09-01'
      # 定義參數
      Parameters:
        # 可用性區域
        ZoneId:
          Type: String
          AssociationProperty: ALIYUN::ECS::Instance:ZoneId
          Label:
            en: VSwitch Available Zone
            zh-cn: 可用性區域
        # 資料庫root賬戶密碼
        Password:
          # 查詢該參數時只輸出星號(*)
          NoEcho: true
          Type: String
          Description:
            en: 'Database root and admin account password, 8-32 characters, including uppercase and lowercase letters, numbers and special symbols (including: !@#$%^&*-+=_).'
            zh-cn: 資料庫root和admin賬戶密碼,長度8-32個字元,可包含大小字母、數字及特殊符號(包含:!@#$%^&*-+=_)。
          Label:
            en: root and admin Account Password
            zh-cn: 資料庫root和admin賬戶密碼
          ConstraintDescription:
            en: '8-32 characters, including uppercase and lowercase letters, numbers and special symbols (including: !@#$%^&*-+=_).'
            zh-cn: 8-32個字元,可包含大小字母、數字及特殊符號(包含:!@#$%^&*-+=_)。
          MinLength: '8'
          MaxLength: '32'
          AssociationProperty: ALIYUN::ECS::Instance::Password
        # 建立Ipv4網段
        VpcCidrBlock:
          Type: String
          Label:
            en: VPC CIDR IPv4 Block
            zh-cn: 專用網路IPv4網段
          Description:
            zh-cn: VPC的ip位址區段範圍,<br>您可以使用以下的ip位址區段或其子網:<br><font color='green'>[10.0.0.0/8]</font><br><font
              color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
            en: 'The ip address range of the VPC in the CidrBlock form; <br>You can use
                the following ip address ranges and their subnets: <br><font color=''green''>[10.0.0.0/8]</font><br><font
                color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>'
          AssociationProperty: ALIYUN::VPC::VPC::CidrBlock
          Default: 192.168.0.0/16
        # 建立交換器網段
        VSwitchCidrBlock:
          Type: String
          Label:
            en: VSwitch CIDR Block
            zh-cn: 交換器子網網段
          Description:
            zh-cn: 必須屬於VPC的子網段。
            en: Must belong to the subnet segment of VPC.
          AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock
          AssociationPropertyMetadata:
            VpcCidrBlock: VpcCidrBlock
          Default: 192.168.1.0/24
        # Ecs執行個體類型
        EcsInstanceType:
          Type: String
          Label:
            en: Instance Type
            zh-cn: Ecs執行個體類型
          AssociationProperty: ALIYUN::ECS::Instance::InstanceType
          AllowedValues:
            - ecs.c6.large
            - ecs.c6.xlarge
            - ecs.c6.2xlarge
            - ecs.c6.4xlarge
      # 定義資源
      Resources:
        # 定義WaitCondition和WaitConditionHandle來等待命令在Ecs中執行完畢部署成功
        WaitCondition:
          Type: ALIYUN::ROS::WaitCondition
          Properties:
            Count: 1
            Handle:
              Ref: WaitConditionHandle
            Timeout: 1800
        WaitConditionHandle:
          Type: ALIYUN::ROS::WaitConditionHandle
        EcsSecurityGroup:
          Type: 'ALIYUN::ECS::SecurityGroup'
          Properties:
            VpcId:
              Ref: EcsVpc
            SecurityGroupIngress:
              - Priority: 1
                PortRange: 3306/3306
                NicType: internet
                SourceCidrIp: 0.0.0.0/0
                IpProtocol: tcp
        # Vpc
        EcsVpc:
          Type: ALIYUN::ECS::VPC
          Properties:
            CidrBlock:
              Ref: VpcCidrBlock
            VpcName:
              Ref: ALIYUN::StackName
        # 交換器
        EcsVSwitch:
          Type: ALIYUN::ECS::VSwitch
          Properties:
            ZoneId:
              Ref: ZoneId
            VpcId:
              Ref: EcsVpc
            CidrBlock:
              Ref: VSwitchCidrBlock
        # Ecs執行個體
        EcsInstanceGroup:
          Type: ALIYUN::ECS::InstanceGroup
          Properties:
            # I/O最佳化執行個體
            IoOptimized: optimized
            ZoneId:
              Ref: ZoneId
            DiskMappings:
              - Category: cloud_essd
                Device: /dev/xvdb
                Size: 200
            SystemDiskSize: 40
            # cloud-init執行使用者命令
            # /var/log/cloud-init.log /var/log/cloud-init-output.log 可以看到執行日誌
            # /var/lib/cloud/instance/scripts/part-001 為具體的指令碼 可以sh 執行來排查問題
            UserData:
              Fn::Sub:
                - |
                  #!/bin/sh
      
                  # sleep一段時間確保網路就緒
                  sleep 10
      
                  # 對資料盤進行分區
      
                  cat >> /root/InitDataDisk.sh << EOF
                  #!/bin/bash
                  echo "p
                  n
                  p
      
      
      
                  w
                  " |  fdisk -u /dev/vdb
                  EOF
                  /bin/bash /root/InitDataDisk.sh
                  rm -f /root/InitDataDisk.sh
                  rm -f InitDataDisk.sh
                  # 在新分區上建立檔案系統
                  mkfs.ext4 /dev/vdb1
                  # 建立目錄,MySQL將安裝在該目錄下
                  mkdir /data1
                  # 掛載檔案系統
                  mount /dev/vdb1 /data1
                  # 向 /etc/fstab 寫入新分區資訊
                  echo /dev/vdb1 /data1 ext4 defaults,nodelalloc,noatime 0 2 >> /etc/fstab
                  cd /data1/
      
                  # 安裝社區版MySQL
                  wget '{{ computenest::file::MySQL }}' -O mysql-community-release-el6-5.noarch.rpm
                  rpm -ivh mysql-community-release-el6-5.noarch.rpm
                  yum repolist all | grep mysql
                  yum install mysql-community-server -y
      
                  # 啟動MySQL服務
                  service mysqld start
      
                  # 以超級使用者身份登入,建立admin使用者,並允許admin使用者以Password為密碼遠程登入
                  mysqladmin -u root password '${Password}'
                  echo "create database test character set utf8 collate utf8_bin;" > ./test.sql
                  echo "CREATE USER 'admin'@'%' IDENTIFIED BY '${Password}';" >> ./test.sql
                  echo "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;" >> ./test.sql
                  mysql -u root -p'${Password}' < ./test.sql
      
                  # 將MySQL的配置和資料路徑移動到資料盤上
                  systemctl stop mysqld
                  rsync -av /var/lib/mysql /data1
                  # 修改設定檔
                  sed -i 's/\/var\/lib/\/data1/g' /etc/my.cnf
                  echo -e '\n' >> /etc/my.cnf
                  echo '[client]' >> /etc/my.cnf
                  echo 'port=3306' >> /etc/my.cnf
                  echo 'socket=/data1/mysql/mysql.sock' >> /etc/my.cnf
                  # 重啟MySQL
                  systemctl start mysqld
      
                  # 執行成功回調WaitCondition結束WaitCondition的等待
                  ${CurlCli} -d "{\"Data\" : \"SUCCESS\", \"Status\" : \"SUCCESS\"}"
      
                # 擷取到WaitConditionHandle的地址放到 ${CurlCli}變數裡
                - CurlCli:
                    Fn::GetAtt:
                      - WaitConditionHandle
                      - CurlCli
                  # 資料庫root賬戶密碼
                  Password:
                    Ref: Password
            # 付費方式:隨用隨付
            InstanceChargeType: PostPaid
            MaxAmount: 1
            # 系統硬碟類型:cloud_essd
            SystemDiskCategory: cloud_essd
            # 執行個體名稱
            InstanceName:
              Ref: ALIYUN::StackName
            VpcId:
              Ref: EcsVpc
            SecurityGroupId:
              Ref: EcsSecurityGroup
            VSwitchId:
              Ref: EcsVSwitch
            # 指定CentOS 7.9鏡像,如果修改鏡像,UserData指令碼需要進行適配
            ImageId: "centos_7_9_x64_20G_alibase_20220727.vhd"
            InstanceType:
              Ref: EcsInstanceType
            # 主機名稱
            HostName:
              Ref: ALIYUN::StackName
            # Ecs登入密碼
            Password:
              Ref: Password
            # 是否為執行個體分配公網IP
            AllocatePublicIP: true
            InternetMaxBandwidthOut: 1
      # 定義輸出
      Outputs:
        MysqlUserName:
          Label: MySQL登入使用者名稱
          Value: admin
        PrivateIps:
          Label: 私網Ip地址
          Value:
            Fn::Select:
              - 0
              - Fn::GetAtt:
                  - EcsInstanceGroup
                  - PrivateIps
      # 定義中繼資料
      Metadata:
        ALIYUN::ROS::Interface:
          # 定義資源分組,建立服務執行個體時,同一分組的參數分布在一起
          ParameterGroups:
            - Parameters:
                - EcsInstanceType
              Label:
                en: Instance Type
                zh-cn: 執行個體規格
            - Parameters:
                - Password
              Label:
                en: Basic Configuration
                zh-cn: 基礎配置
            - Parameters:
                - ZoneId
                - VpcCidrBlock
                - VSwitchCidrBlock
              Label:
                en: Network Configuration
                zh-cn: 網路設定
  2. 進階配置中開啟VPC私網訪問,串連模式選擇Vpc對等串連

    image

  3. 服務營運開啟支援服務執行個體變更配置,在添加變更配置操作彈窗中,配置變更配置操作資訊。

    配置項

    配置說明

    選擇模板

    選擇需要執行變更配置操作的模板。

    操作名稱

    設定變更配置操作的名稱。

    操作描述

    填寫變更配置操作詳細介紹。

    變更配置方式

    設定變更配置操作的方式。

    網路變更

    設定網路變更配置的方式。

    image

  4. 單擊確定,並完成服務建立並上線。

建立和變更配置服務執行個體

  1. 建立全託管服務執行個體。

    更多資訊,請參見建立全託管服務執行個體

  2. 變更配置服務執行個體。

    1. 在已建立的服務執行個體詳情頁,單擊右上方的修改配置,在彈框中選擇網路變更配置,單擊下一步進入設定修改參數

      image

    2. 若服務執行個體未配置任何Vpc對等串連,單擊添加對等串連選擇或者建立專用網路

      重要
      • 所選擇VPC的CIDR不能與已有串連或服務執行個體VPC的CIDR存在重疊。

      • 可添加多條對等串連,多條對等串連之間不能CIDR重疊。

      image

    3. 單擊下一步預覽參數,確認無誤後單擊確定開始變更配置。

    4. 變更配置完成後服務執行個體狀態變為已部署,進入網路設定可見新增的VPC對等串連資訊。

      • 變更配置前:

        image

      • 變更配置後:

        image

阿里雲私網PrivateLink變更配置

本節從阿里雲私網PrivateLink的角度,介紹服務商如何開啟並配置PrivateLink變更配置,同時為服務執行個體進行網路變更配置。

建立全託管服務

此處只展示私網訪問變更配置功能設定資訊。關於建立全託管服務的詳細資料,請參見建立全託管服務

  1. 建立新服務頁面,佈建服務資訊。

  2. 進階配置(選填)中開啟VPC私網訪問,串連模式選擇阿里雲私網PrivateLink並選擇訪問資源。

    說明

    訪問資源支援選擇負載平衡終端節點服務作為訪問資源。本節以負載平衡為例。更多配置資訊,請參見VPC私網訪問配置說明

    image

  3. 服務營運(選填)開啟支援服務執行個體變更配置,在添加變更配置操作彈窗中,配置變更配置操作資訊。

    配置項

    配置說明

    選擇模板

    選擇需要執行變更配置操作的模板。

    操作名稱

    設定變更配置操作的名稱。

    操作描述

    填寫變更配置操作詳細介紹。

    變更配置方式

    設定變更配置操作的方式。

    網路變更

    設定網路變更配置的方式。如果您配置了自訂網域名建議勾選支持自訂網域名變更

    image

  4. 單擊確定,並完成服務建立並上線。

    image

建立和變更配置服務執行個體

  1. 建立全託管服務執行個體。

    更多資訊,請參見建立全託管服務執行個體

  2. 變更配置服務執行個體。

    1. 在已建立的服務執行個體詳情頁,單擊右上方的修改配置,在彈框中選擇網路變更配置,單擊下一步進入設定修改參數

      image

    2. 在設定修改參數頁面,本節以添加一個VPC網路開啟自訂網域名能力為例。

      image

    3. 單擊下一步預覽參數,確認無誤後單擊確定開始變更配置。

      image

    4. 變更配置完成後服務執行個體狀態變為已部署,進入網路設定可見新增的可用性區域。

相關文檔