【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

时间:2022-11-06 10:31:54

问题描述

在使用Service Fabric的快速入门文档: 将 Windows 容器部署到 Service Fabric。 其中在创建Service Fabric时候,示例代码中使用的是PowerShell脚本调用AZ模块来执行创建命令。但是在本地执行时,遇见了无法运行'Connect-AzAccount'等命令。

Connect-AzAccount : The term 'Connect-AzAccount' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
+ Connect-AzAccount -Environment AzureChinaCloud
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Connect-AzAccount:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

所以决定使用az cli命令来代替,但官方文档中只给出了PowerShell的命令,所以需要使用对应的az命令来替换。主要替换的命令有三个。

1) Connect-AzAccount -Environment AzureChinaCloud 替换为 az cloud set --name AzureChinaCloud

2) Select-AzSubscription -SubscriptionId $subscriptionId 替换为 az account set --subscription $subscriptionId

3) New-AzServiceFabricCluster 替换为 az sf cluster create

# Create the Service Fabric cluster.
New-AzServiceFabricCluster -Name $clustername -ResourceGroupName $groupname -Location $clusterloc `
-ClusterSize $clustersize -VmUserName $adminuser -VmPassword $adminpwd -CertificateSubjectName $subname `
-CertificatePassword $certpwd -CertificateOutputFolder $certfolder `
-OS WindowsServer2016DatacenterwithContainers -VmSku $vmsku -KeyVaultName $vaultname

:在命令New-AzServiceFabricCluster中替换对应的参数即可。

如出现参数名不存在的情况,可以使用-h 帮助命令来获取正常的参数。如az sf cluster create -h

参数错误:cli.azure.cli.core.parser : az: error: unrecognized arguments

【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

使用help命令查看正确参数

【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

重要部分(使用az CLI命令替换后的全部命令)

#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId' # Certificate variables.
$certpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\" # Variables for VM admin.
$adminuser="vmadmin"
$adminpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force # Variables for common values
$clusterloc="chinaeast"
$clustername = "mysfcluster"
$groupname="mysfclustergroup"
$vmsku = "Standard_D2_v2"
$vaultname = "mykeyvault"
$subname="$clustername.$clusterloc.cloudapp.chinacloudapi.cn" # Set the number of cluster nodes. Possible values: 1, 3-99
$clustersize=5 # Set the context to the subscription Id where the cluster will be created
az cloud set --name AzureChinaCloud
az login
az account set --subscription $subscriptionId # Create the Service Fabric cluster.
az sf cluster create --cluster-name $clustername --resource-group $groupname --location $clusterloc `
--cluster-size $clustersize --vm-user-name $adminuser --vm-password $adminpwd --certificate-subject-name $subname `
--certificate-password $certpwd --certificate-output-folder $certfolder `
--os WindowsServer2016DatacenterwithContainers --vm-sku $vmsku --vault-name $vaultname --debug

注:

  • 脚本创建一个由五个节点组成的 Service Fabric 群集(使用 X.509 证书保护的群集)。该命令将创建一个自签名证书,并将其上传到新的 Key Vault。 该证书也会复制到本地目录"c:\mycertificates\"中。
  • 在执行中如需要查看日志输出,可以添加 --debug。

成功结果

当Service Fabric创建完成后,可以通过Visual Studio 2019发布创建好的Container到集群中。发布成功后,通过Service Fabric Explorer查看效果:

【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

当根据文档部署Container后,访问SF集群URL并加上80端口(端口由发布Container时指定),既可以查看到IIS的默认页面.

【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群

在ServiceManifest.xml文件中配置Endpoint端口,在访问时候需要非常注意的一点是:确保SF的Load Balance中已开启该端口。可以通过psping方式来验证。

  <Resources>
<Endpoints>
<!-- This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Name="MyContainerServiceTypeEndpoint" Port="80" />
</Endpoints>

引用使用PowerShell AzModule命令创建SF集群的全部代码为:

创建群集

以下示例脚本创建一个由五个节点组成的 Service Fabric 群集(使用 X.509 证书保护的群集)。 该命令将创建一个自签名证书,并将其上传到新的 Key Vault。 该证书也会复制到本地目录。 可在创建 Service Fabric 群集中详细了解如何使用此脚本创建群集。

必要时,请使用 Azure PowerShell 指南中的说明安装 Azure PowerShell。

在运行以下脚本之前,请在 PowerShell 中运行 Connect-AzAccount -Environment AzureChinaCloud 来与 Azure 建立连接。

将以下脚本复制到剪贴板,并打开 Windows PowerShell ISE 。 将内容粘贴到空的 Untitled1.ps1 窗口。 然后,为脚本中的变量提供值:subscriptionIdcertpwdcertfolderadminuseradminpwd 等等。 运行该脚本之前,为 certfolder 指定的目录必须存在。

#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId' # Certificate variables.
$certpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\" # Variables for VM admin.
$adminuser="vmadmin"
$adminpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force # Variables for common values
$clusterloc="chinaeast"
$clustername = "mysfcluster"
$groupname="mysfclustergroup"
$vmsku = "Standard_D2_v2"
$vaultname = "mykeyvault"
$subname="$clustername.$clusterloc.cloudapp.chinacloudapi.cn" # Set the number of cluster nodes. Possible values: 1, 3-99
$clustersize=5 # Set the context to the subscription Id where the cluster will be created
Select-AzSubscription -SubscriptionId $subscriptionId # Create the Service Fabric cluster.
New-AzServiceFabricCluster -Name $clustername -ResourceGroupName $groupname -Location $clusterloc `
-ClusterSize $clustersize -VmUserName $adminuser -VmPassword $adminpwd -CertificateSubjectName $subname `
-CertificatePassword $certpwd -CertificateOutputFolder $certfolder `
-OS WindowsServer2016DatacenterwithContainers -VmSku $vmsku -KeyVaultName $vaultname

为变量提供值后,按 F5 运行该脚本。

运行脚本并创建群集后,在输出中查找 ClusterEndpoint。 例如:

ClusterEndpoint : https://mysfcluster.chinaeast.cloudapp.chinacloudapi.cn/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0  

参考文档:

将 Windows 容器部署到 Service Fabrichttps://docs.azure.cn/zh-cn/service-fabric/service-fabric-quickstart-containers

az sf cluster: https://docs.microsoft.com/en-us/cli/azure/sf/cluster?view=azure-cli-latest#az_sf_cluster_create

【Azure微服务 Service Fabric 】使用az命令创建Service Fabric集群的更多相关文章

  1. 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群

    庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介      前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...

  2. 微服务之&colon;从零搭建ocelot网关和consul集群

    介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成. 首先解释几个本次教程中需要的术语 网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界 ...

  3. 【微服务架构】SpringCloud之Eureka(注册中心集群篇)&lpar;三&rpar;

    上一篇讲解了spring注册中心(eureka),但是存在一个单点故障的问题,一个注册中心远远无法满足实际的生产环境,那么我们需要多个注册中心进行集群,达到真正的高可用.今天我们实战来搭建一个Eure ...

  4. 【Azure 微服务】基于已经存在的虚拟网络&lpar;VNET&rpar;及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务

    问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...

  5. 【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题

    问题描述 1) 当成功的在Service Fabric集群中部署了应用后,如何来访问呢?如果是一个Web服务,它的URL又是什么呢? 2) 当Service Fabric集群中,服务之间如需要相互访问 ...

  6. 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)

    问题描述 创建Service Fabric时,证书在整个集群中是非常重要的部分,有着用户身份验证,节点之间通信,SF升级时的身份及授权认证等功能.如果证书过期则会导致节点受到影响集群无法正常工作. 当 ...

  7. 【Azure 微服务】Service Fabric&comma; 使用ARM Template方式来更新SF集群的证书&lpar;Renew SF Certificate&rpar;

    问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...

  8. 【Azure 微服务】Service Fabric中微服务在升级时,遇见Warning - System&period;Collections&period;Generic&period;KeyNotFoundException 服务无法正常运行

    问题描述 使用.Net Framework 4.5.2为架构的Service Fabric微服务应用,在升级后发布到Azure Fabric中,服务无法运行.通过Service Fabric Expl ...

  9. 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点&lpar;Seed Node&rpar;

    注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致. 可靠性级别是 Service Fabric 群 ...

随机推荐

  1. Genymotion的安装与eclipse配置教程

    第一部分安装Genymotion和VirtualBox虚拟机 1,Genymotion模拟器可以在官网下载,但是下载前需要注册账号,账号注册后登陆,点击Download. 2,选择第一个with Vi ...

  2. Product of Array Except Self

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...

  3. 样条曲线的Fortran程序

    subroutine basis_function_b_val ( tdata, tval, yval ) ! !******************************************* ...

  4. 《Python CookBook2》 第一章 文本 - 每次处理一个字符 &amp&semi;&amp&semi; 字符和字符值之间的转换

    文本 - 总结: 什么是文本Python 中的string 类型是不可变类型.文本,一个字符的矩阵,每一个单独的文本快可以被缩进和组织起来. 基本的文本操作①解析数据并将数据放入程序内部的结构中:②将 ...

  5. ASP&period;Net MVC4排序检索分页的实现

    前言 上一节我们做到了如下的一个基础查询页面.本节我们向这个页面中加入排序.搜索和分页功能. 排序 从上图中的地址栏中可以看到这个页面调用的是Company Controller下的Index Act ...

  6. hdu1040

    #include<stdio.h>#include<stdlib.h>int a[100];int cmp(const void *a,const void *b){ retu ...

  7. 用CSS美化checkbox复选按钮和raido单选按钮-适用于移动端

    最终效果: 实现方法 index.html: <!DOCTYPE html> <html> <head> <title></title> & ...

  8. 使用这些 HTTP 头保护 Web 应用

    摘要: 安全是个大学问. 这是关于web安全性系列文章的第 三 篇,其它的可点击以下查看: Web 应用安全性: 浏览器是如何工作的 Web 应用安全性: HTTP简介 目前,浏览器已经实现了大量与安 ...

  9. 朱晔的互联网架构实践心得S2E2:写业务代码最容易掉的10种坑

    我承认,本文的标题有一点标题党,特别是写业务代码,大家因为没有足够重视一些细节最容易调的坑(侧重Java,当然,本文说的这些点很多是不限制于语言的). 1.客户端的使用 我们在使用Redis.Elas ...

  10. 2018WFU校赛B题

    我们在ACM的题目中已经了解了什么是ACM了,ACM还是很残酷的了(ಥ _ ಥ),那么现在你就要解决一个ACM最简单的题了,简单到省赛和区域赛都不会出这种简单的题.ls很强,即使每年都在ACM这个大坑 ...