Skip to content

Commit 03bc366

Browse files
authored
Merge pull request #223388 from MGoedtel/updateHTTPProxy
Updated HTTP Proxy article
2 parents 2d1c4c4 + 00ee4eb commit 03bc366

File tree

1 file changed

+24
-18
lines changed

1 file changed

+24
-18
lines changed

articles/aks/http-proxy.md

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Some more complex solutions may require creating a chain of trust to establish s
1919
## Limitations and other details
2020

2121
The following scenarios are **not** supported:
22+
2223
- Different proxy configurations per node pool
2324
- Updating proxy settings post cluster creation
2425
- User/Password authentication
@@ -31,10 +32,9 @@ By default, *httpProxy*, *httpsProxy*, and *trustedCa* have no value.
3132

3233
## Prerequisites
3334

34-
* An Azure subscription. If you don't have an Azure subscription, you can create a [free account](https://azure.microsoft.com/free).
35-
* Latest version of [Azure CLI installed](/cli/azure/install-azure-cli).
35+
The latest version of the Azure CLI. Run `az --version` to find the version, and run `az upgrade` to upgrade the version. If you need to install or upgrade, see [Install Azure CLI][install-azure-cli].
3636

37-
## Configuring an HTTP proxy using Azure CLI
37+
## Configuring an HTTP proxy using the Azure CLI
3838

3939
Using AKS with an HTTP proxy is done at cluster creation, using the [az aks create][az-aks-create] command and passing in configuration as a JSON file.
4040

@@ -51,13 +51,18 @@ The schema for the config file looks like this:
5151
}
5252
```
5353

54-
`httpProxy`: A proxy URL to use for creating HTTP connections outside the cluster. The URL scheme must be `http`.
55-
`httpsProxy`: A proxy URL to use for creating HTTPS connections outside the cluster. If this is not specified, then `httpProxy` is used for both HTTP and HTTPS connections.
56-
`noProxy`: A list of destination domain names, domains, IP addresses or other network CIDRs to exclude proxying.
57-
`trustedCa`: A string containing the `base64 encoded` alternative CA certificate content. For now we only support `PEM` format. Another thing to note is that, for compatibility with Go-based components that are part of the Kubernetes system, the certificate MUST support `Subject Alternative Names(SANs)` instead of the deprecated Common Name certs.
54+
* `httpProxy`: A proxy URL to use for creating HTTP connections outside the cluster. The URL scheme must be `http`.
55+
* `httpsProxy`: A proxy URL to use for creating HTTPS connections outside the cluster. If this isn't specified, then `httpProxy` is used for both HTTP and HTTPS connections.
56+
* `noProxy`: A list of destination domain names, domains, IP addresses or other network CIDRs to exclude proxying.
57+
* `trustedCa`: A string containing the `base64 encoded` alternative CA certificate content. Currently only the `PEM` format is supported.
58+
59+
> [!IMPORTANT]
60+
> For compatibility with Go-based components that are part of the Kubernetes system, the certificate **must** support `Subject Alternative Names(SANs)` instead of the deprecated Common Name certs.
5861
5962
Example input:
60-
Note the CA cert should be the base64 encoded string of the PEM format cert content.
63+
64+
> [!NOTE]
65+
> The CA certificate should be the base64 encoded string of the PEM format cert content.
6166
6267
```json
6368
{
@@ -71,7 +76,7 @@ Note the CA cert should be the base64 encoded string of the PEM format cert cont
7176
}
7277
```
7378

74-
Create a file and provide values for *httpProxy*, *httpsProxy*, and *noProxy*. If your environment requires it, also provide a *trustedCa* value. Next, deploy a cluster, passing in your filename via the `http-proxy-config` flag.
79+
Create a file and provide values for *httpProxy*, *httpsProxy*, and *noProxy*. If your environment requires it, provide a value for *trustedCa*. Next, deploy a cluster, passing in your filename using the `http-proxy-config` flag.
7580

7681
```azurecli
7782
az aks create -n $clusterName -g $resourceGroup --http-proxy-config aks-proxy-config.json
@@ -81,7 +86,7 @@ Your cluster will initialize with the HTTP proxy configured on the nodes.
8186

8287
## Configuring an HTTP proxy using Azure Resource Manager (ARM) templates
8388

84-
Deploying an AKS cluster with an HTTP proxy configured via ARM template is straightforward. The same schema used for CLI deployment exists in the `Microsoft.ContainerService/managedClusters` definition under properties:
89+
Deploying an AKS cluster with an HTTP proxy configured using an ARM template is straightforward. The same schema used for CLI deployment exists in the `Microsoft.ContainerService/managedClusters` definition under properties:
8590

8691
```json
8792
"properties": {
@@ -97,34 +102,34 @@ Deploying an AKS cluster with an HTTP proxy configured via ARM template is strai
97102
}
98103
```
99104

100-
In your template, provide values for *httpProxy*, *httpsProxy*, and *noProxy*. If necessary, also provide a value for `*trustedCa*. Deploy the template, and your cluster should initialize with your HTTP proxy configured on the nodes.
105+
In your template, provide values for *httpProxy*, *httpsProxy*, and *noProxy*. If necessary, provide a value for *trustedCa*. Deploy the template, and your cluster should initialize with your HTTP proxy configured on the nodes.
101106

102107
## Handling CA rollover
103108

104-
Values for *httpProxy*, *httpsProxy*, and *noProxy* cannot be changed after cluster creation. However, to support rolling CA certs, the value for *trustedCa* can be changed and applied to the cluster with the [az aks update][az-aks-update] command.
109+
Values for *httpProxy*, *httpsProxy*, and *noProxy* can't be changed after cluster creation. However, to support rolling CA certs, the value for *trustedCa* can be changed and applied to the cluster with the [az aks update][az-aks-update] command.
105110

106-
For example, assuming a new file has been created with the base64 encoded string of the new CA cert called *aks-proxy-config-2.json*, the following action will update the cluster:
111+
For example, assuming a new file has been created with the base64 encoded string of the new CA cert called *aks-proxy-config-2.json*, the following action updates the cluster:
107112

108113
```azurecli
109114
az aks update -n $clusterName -g $resourceGroup --http-proxy-config aks-proxy-config-2.json
110115
```
111116

112117
## Monitoring add-on configuration
113118

114-
When using the HTTP proxy with the Monitoring add-on, the following configurations are supported:
119+
The HTTP proxy with the Monitoring add-on supports the following configurations:
115120

116121
- Outbound proxy without authentication
117122
- Outbound proxy with username & password authentication
118123
- Outbound proxy with trusted cert for Log Analytics endpoint
119124

120-
The following configurations are not supported:
125+
The following configurations aren't supported:
121126

122-
- The Custom Metrics and Recommended Alerts features are not supported when using proxy with trusted cert
123-
- Outbound proxy is not supported with Azure Monitor Private Link Scope (AMPLS)
127+
- The Custom Metrics and Recommended Alerts features aren't supported when you use a proxy with trusted certificates
128+
- Outbound proxy isn't supported with Azure Monitor Private Link Scope (AMPLS)
124129

125130
## Next steps
126-
- For more on the network requirements of AKS clusters, see [control egress traffic for cluster nodes in AKS][aks-egress].
127131

132+
For more information regarding the network requirements of AKS clusters, see [control egress traffic for cluster nodes in AKS][aks-egress].
128133

129134
<!-- LINKS - internal -->
130135
[aks-egress]: ./limit-egress-traffic.md
@@ -135,3 +140,4 @@ The following configurations are not supported:
135140
[az-provider-register]: /cli/azure/provider#az_provider_register
136141
[az-extension-add]: /cli/azure/extension#az_extension_add
137142
[az-extension-update]: /cli/azure/extension#az-extension-update
143+
[install-azure-cli]: /cli/azure/install-azure-cli

0 commit comments

Comments
 (0)