You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/aks/http-proxy.md
+24-18Lines changed: 24 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ Some more complex solutions may require creating a chain of trust to establish s
19
19
## Limitations and other details
20
20
21
21
The following scenarios are **not** supported:
22
+
22
23
- Different proxy configurations per node pool
23
24
- Updating proxy settings post cluster creation
24
25
- User/Password authentication
@@ -31,10 +32,9 @@ By default, *httpProxy*, *httpsProxy*, and *trustedCa* have no value.
31
32
32
33
## Prerequisites
33
34
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].
36
36
37
-
## Configuring an HTTP proxy using Azure CLI
37
+
## Configuring an HTTP proxy using the Azure CLI
38
38
39
39
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.
40
40
@@ -51,13 +51,18 @@ The schema for the config file looks like this:
51
51
}
52
52
```
53
53
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.
58
61
59
62
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.
61
66
62
67
```json
63
68
{
@@ -71,7 +76,7 @@ Note the CA cert should be the base64 encoded string of the PEM format cert cont
71
76
}
72
77
```
73
78
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.
75
80
76
81
```azurecli
77
82
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.
81
86
82
87
## Configuring an HTTP proxy using Azure Resource Manager (ARM) templates
83
88
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:
85
90
86
91
```json
87
92
"properties": {
@@ -97,34 +102,34 @@ Deploying an AKS cluster with an HTTP proxy configured via ARM template is strai
97
102
}
98
103
```
99
104
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.
101
106
102
107
## Handling CA rollover
103
108
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.
105
110
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:
107
112
108
113
```azurecli
109
114
az aks update -n $clusterName -g $resourceGroup --http-proxy-config aks-proxy-config-2.json
110
115
```
111
116
112
117
## Monitoring add-on configuration
113
118
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:
115
120
116
121
- Outbound proxy without authentication
117
122
- Outbound proxy with username & password authentication
118
123
- Outbound proxy with trusted cert for Log Analytics endpoint
119
124
120
-
The following configurations are not supported:
125
+
The following configurations aren't supported:
121
126
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)
124
129
125
130
## Next steps
126
-
- For more on the network requirements of AKS clusters, see [control egress traffic for cluster nodes in AKS][aks-egress].
127
131
132
+
For more information regarding the network requirements of AKS clusters, see [control egress traffic for cluster nodes in AKS][aks-egress].
128
133
129
134
<!-- LINKS - internal -->
130
135
[aks-egress]: ./limit-egress-traffic.md
@@ -135,3 +140,4 @@ The following configurations are not supported:
0 commit comments