Set-AksHciConfig

Synopsis

Sets or updates the configuration settings for the Azure Kubernetes Service host.

Syntax

Set configuration for host

Set-AksHciConfig  -imageDir <String>
                  -workingDir <String>
                  -cloudConfigLocation <String>
                  -vnet <Virtual Network>
                 [-createAutoConfigContainers {true, false}]
                 [-offlineDownload]
                 [-offsiteTransferCompleted]
                 [-mode {minimum, full}]
                 [-stagingShare <String>]
                 [-nodeConfigLocation <String>]
                 [-controlPlaneVmSize <VmSize>]
                 [-sshPublicKey <String>]
                 [-macPoolStart <String>]
                 [-macPoolEnd <String>]       
                 [-proxySettings <ProxySettings>]
                 [-cloudServiceCidr <String>]
                 [-version <String>]
                 [-nodeAgentPort <int>]
                 [-nodeAgentAuthorizerPort <int>]
                 [-cloudAgentPort <int>]
                 [-cloudAgentAuthorizerPort <int>]
                 [-clusterRoleName <String>]
                 [-cloudLocation <String>]
                 [-concurrentDownloads <int>]
                 [-skipHostLimitChecks]
                 [-skipRemotingChecks]
                 [-skipValidationChecks]
                 [-insecure]
                 [-skipUpdates]
                 [-forceDnsReplication]   

Description

Sets the configuration settings for the Azure Kubernetes Service host. If you're deploying on a 2-4 node Azure Local cluster or a Windows Server 2019 Datacenter failover cluster, you must specify the -workingDir and -cloudConfigLocation parameters. For a single-node Windows Server 2019 Datacenter, all parameters are optional and set to their default values. However, for optimal performance, we recommend using a 2-4 node Azure Local cluster deployment.

Examples

To deploy on a 2-4 node cluster with DHCP networking

PS C:\> $vnet = New-AksHciNetworkSetting -name newNetwork -vswitchName "DefaultSwitch" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" 

Set-AksHciConfig -workingDir c:\ClusterStorage\Volume1\WorkDir -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16"

To deploy with static IP networking

PS C:\> $vnet = New-AksHciNetworkSetting -name newNetwork -vswitchName "DefaultSwitch" -k8snodeippoolstart "172.16.10.0" -k8snodeippoolend "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipaddressprefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsservers "172.16.0.1" 

Set-AksHciConfig -workingDir c:\ClusterStorage\Volume1\WorkDir -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16"

To deploy with a proxy server

PS C:\> $proxySettings = New-AksHciProxySetting -name "corpProxy" -http http://contosoproxy:8080 -https https://contosoproxy:8443 -noProxy localhost,127.0.0.1,.svc,10.96.0.0/12,10.244.0.0/16 -credential $proxyCredential

Set-AksHciConfig -workingDir c:\ClusterStorage\Volume1\WorkDir -cloudConfigLocation c:\clusterstorage\volume1\Config -proxySetting $proxySettings -vnet $vnet -cloudservicecidr "172.16.10.10/16"

Parameters

-imageDir

The path to the directory in which AKS hybrid stores its VHD images. This parameter is required. The path must point to a shared storage path, such as C:\ClusterStorage\Volume2\ImageStore, or an SMB share, such as \\FileShare\ImageStore.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: %systemdrive%\AksHciImageStore
Accept pipeline input: False
Accept wildcard characters: False

-workingDir

A working directory for the module to use for storing small files. This parameter is required. The path must point to a shared storage path, such as c:\ClusterStorage\Volume2\ImageStore.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: %systemdrive%\AksHci
Accept pipeline input: False
Accept wildcard characters: False

-cloudConfigLocation

The location in which the cloud agent stores its configuration. This parameter is required. The path must point to a shared storage path, such as C:\ClusterStorage\Volume2\ImageStore, or an SMB share such as \\FileShare\ImageStore. The location needs to be on a highly available share so that the storage is always accessible.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: %systemdrive%\wssdcloudagent
Accept pipeline input: False
Accept wildcard characters: False

-vnet

The name of the AksHciNetworkSetting object created with the New-AksHciNetworkSetting command.

Type: VirtualNetwork
Parameter Sets: (All)
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-createAutoConfigContainers

Allows you to disable auto distribution of VM data on your cluster shared volumes (CSV). To disable auto distribution, use false as the argument for this parameter. If auto distribution is disabled, only the CSV you selected for imageDir is used. The default value is true.

Type: System.Boolean
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: True
Accept pipeline input: False
Accept wildcard characters: False

-offlineDownload

Invokes offline download during Install-AksHci. You must also run Enable-AksHciOfflineDownload. This flag is used in tandem with the -stagingShare parameter.

Type: System.Boolean
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-offsiteTransferCompleted

Sets deployment to use artifacts downloaded offsite and transferred to deployment server during Install-AksHci. This flag is used in tandem with the -offlineDownload and -stagingShare parameter.

-mode

The download mode you want to use for offline download. Use minimum if you want the minimum images for AKS hybrid deployment. This option includes the required Linux images and only the required Kubernetes image. Use full if you want all images for AKS hybrid deployment. This option includes all Linux and Windows images and all supported Kubernetes images. Use this parameter in tandem with the -offlineDownload parameter. The default is full.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: full
Accept pipeline input: False
Accept wildcard characters: False

-stagingShare

The local path to where you want the images to be downloaded. Use in tandem with the offlineDownload parameter.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: True
Accept pipeline input: False
Accept wildcard characters: False

-nodeConfigLocation

The location in which the node agents store their configuration. Every node has a node agent, so its configuration is local to that node. This location must be a local path. Defaults to %systemdrive%\programdata\wssdagent for all deployments.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: %systemdrive%\programdata\wssdagent
Accept pipeline input: False
Accept wildcard characters: False

-controlPlaneVmSize

The size of the VM to create for the control plane. To get a list of available VM sizes, run Get-AksHciVmSize.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: Standard_A4_V2
Accept pipeline input: False
Accept wildcard characters: False

-sshPublicKey

Path to an SSH public key file. Using this public key, you can log in to any of the VMs created by the AKS hybrid deployment. If you have your own SSH public key, pass its location here. If no key is provided, we look for one under %systemdrive%\akshci\.ssh\akshci_rsa.pub. If the file does not exist, an SSH key pair is generated in this location and used.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-macPoolStart

Specifies the start of the MAC address of the MAC pool that you want to use for the Azure Kubernetes Service host VM. The syntax for the MAC address requires that the least significant bit of the first byte should always be 0, and the first byte should always be an even number (that is, 00, 02, 04, 06...). A typical MAC address can look like this: 02:1E:2B:78:00:00. Use MAC pools for long-lived deployments so that MAC addresses assigned are consistent. MAC pools are useful if you have a requirement that the VMs have specific MAC addresses. The default is None.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-macPoolEnd

Specifies the end of the MAC address of the MAC pool that you want to use for the Azure Kubernetes Service host VM. The syntax for the MAC address requires that the least significant bit of the first byte should always be 0, and the first byte should always be an even number (that is, 00, 02, 04, 06...). The first byte of the address passed as the -macPoolEnd should be the same as the first byte of the address passed as the -macPoolStart. Use MAC pools for long-lived deployments so that MAC addresses assigned are consistent. MAC pools are useful if you have a requirement that the VMs have specific MAC addresses. The default is None.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-proxySettings

The proxy object created using New-AksHciProxySetting.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-cloudServiceCidr

Provides a static IP/network prefix to be assigned to the MOC CloudAgent service. This value should be provided using the CIDR format; for example, 192.168.1.2/16. You may want to specify this parameter to ensure that anything important on the network is always accessible, because the IP address does not change. The default is None.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-version

The version of AKS hybrid that you want to deploy. The default is the latest version. We do not recommend changing the default.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: Latest version
Accept pipeline input: False
Accept wildcard characters: False

-nodeAgentPort

The TCP/IP port number on which node agents should listen, which defaults to 45000. We do not recommend changing the default.

Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 45000
Accept pipeline input: False
Accept wildcard characters: False

-nodeAgentAuthorizerPort

The TCP/IP port number that node agents should use for their authorization port. Defaults to 45001. We do not recommend changing the default.

Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 45001
Accept pipeline input: False
Accept wildcard characters: False

-cloudAgentPort

The TCP/IP port number that the cloud agent should listen on. Defaults to 55000. We do not recommend changing the default.

Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 55000
Accept pipeline input: False
Accept wildcard characters: False

-cloudAgentAuthorizerPort

The TCP/IP port number that the cloud agent should use for its authorization port. Defaults to 65000. We do not recommend changing the default.

Type: System.Int32
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: 65000
Accept pipeline input: False
Accept wildcard characters: False

-clusterRoleName

Specifies the name to use when creating the cloud agent as a generic service within the cluster. This parameter defaults to a unique name with a prefix of ca- and a GUID suffix. We do not recommend changing the default.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: A unique name with a prefix of ca- and a guid suffix
Accept pipeline input: False
Accept wildcard characters: False

-cloudLocation

Provides a custom Microsoft Operated Cloud location name. The default name is MocLocation. We do not recommend changing the default.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: MocLocation
Accept pipeline input: False
Accept wildcard characters: False

-skipHostLimitChecks

Requests that the script skips any checks to confirm that memory and disk space is available before allowing the deployment to proceed. We do not recommend using this setting.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-skipRemotingChecks

Requests that the script skips any checks to confirm remoting capabilities to both local and remote nodes. We do not recommend using this setting.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-insecure

Deploys AKS hybrid components, such as cloud agent and node agent(s), in insecure mode (no TLS secured connections). We do not recommend using insecure mode in production environments.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-skipUpdates

Use this flag if you want to skip any updates available. We do not recommend using this setting.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-forceDnsReplication

DNS replication can take up to an hour on some systems. This causes the deployment to be slow. If you experience this issue, you'll see that Install-AksHci is stuck in a loop. To get past this issue, try to use this flag. The -forceDnsReplication flag is not a guaranteed fix. If the logic behind the flag fails, the error is hidden, and the command proceeds as if the flag was not provided.

Type: System.String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-skipValidationChecks

Use this flag if you want to skip the validation checks of the environment infrastructure and user configuration input. These checks highlight potential issues to address before proceeding with the install. We do not recommend using this setting.

Type: System.Management.Automation.SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

Next steps

AksHci PowerShell Reference