Skip to content

Commit fb08d69

Browse files
committed
Outposts: clarify unmanaged tag requirement
1 parent 16a4a14 commit fb08d69

File tree

4 files changed

+33
-12
lines changed

4 files changed

+33
-12
lines changed

modules/aws-outposts-machine-set.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ spec:
165165
<5> Specifies the AWS instance type. You must use an instance type that is configured in your Outpost.
166166
<6> Specifies the AWS region in which the Outpost availability zone exists.
167167
<7> Specifies the dedicated subnet for your Outpost.
168-
<8> Specifies a taint to prevent user workloads from being scheduled on nodes that have the `node-role.kubernetes.io/outposts` label.
168+
<8> Specifies a taint to prevent workloads from being scheduled on nodes that have the `node-role.kubernetes.io/outposts` label. To schedule user workloads in the Outpost, you must specify a corresponding toleration in the `Deployment` resource for your application.
169169
--
170170

171171
. Save your changes.

modules/aws-outposts-requirements-limitations.adoc

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,26 @@
66
[id="aws-outposts-requirements-limitations_{context}"]
77
= AWS Outposts on {product-title} requirements and limitations
88

9-
You can manage the resources on your Outpost similarly to those on a cloud-based AWS cluster if you configure your {product-title} cluster to accommodate the following requirements and limitations:
9+
You can manage the resources on your AWS Outpost similarly to those on a cloud-based AWS cluster if you configure your {product-title} cluster to accommodate the following requirements and limitations:
1010

11-
* To extend an {product-title} cluster on AWS into an Outpost, you must have installed the cluster into an existing VPC.
11+
* To extend an {product-title} cluster on AWS into an Outpost, you must have installed the cluster into an existing Amazon Virtual Private Cloud (VPC).
12+
13+
* The infrastructure of an Outpost is tied to an availability zone in an AWS region and uses a dedicated subnet.
14+
Edge compute machines deployed into an Outpost must use the Outpost subnet and the availability zone that the Outpost is tied to.
15+
16+
* When the AWS Kubernetes cloud controller manager discovers an Outpost subnet, it attempts to create service load balancers in the Outpost subnet.
17+
AWS Outposts do not support running service load balancers.
18+
To prevent the cloud controller manager from creating unsupported services in the Outpost subnet, you must include the `kubernetes.io/cluster/unmanaged` tag in the Outpost subnet configuration.
19+
This requirement is a workaround in {product-title} version {product-version}.
20+
For more information, see link:https://issues.redhat.com/browse/OCPBUGS-30041[OCPBUGS-30041].
1221
1322
* {product-title} clusters on AWS include the `gp3-csi` and `gp2-csi` storage classes.
1423
These classes correspond to Amazon Elastic Block Store (EBS) gp3 and gp2 volumes.
1524
{product-title} clusters use the `gp3-csi` storage class by default, but AWS Outposts does not support EBS gp3 volumes.
1625
17-
* An Outpost is an extension of an availability zone associated with an AWS region and has a dedicated subnet.
18-
Edge compute machines deployed into an Outpost must use the Outpost availability zone and subnet.
19-
20-
* AWS Outposts does not support AWS Network Load Balancers or Classic Load Balancers.
21-
To manages Ingress objects for your edge compute resources, you must install the AWS Load Balancer Operator so that you can use AWS Application Load Balancers in the AWS Outposts environment.
22-
If your cluster contains both edge and cloud-based compute instances that share workloads, additional configuration is required.
26+
* This implementation uses the `node-role.kubernetes.io/outposts` taint to prevent spreading regular cluster workloads to the Outpost nodes.
27+
To schedule user workloads in the Outpost, you must specify a corresponding toleration in the `Deployment` resource for your application.
28+
Reserving the AWS Outpost infrastructure for user workloads avoids additional configuration requirements, such as updating the default CSI to `gp2-csi` so that it is compatible.
2329
2430
* To create a volume in the Outpost, the CSI driver requires the Outpost Amazon Resource Name (ARN).
2531
The driver uses the topology keys stored on the `CSINode` objects to determine the Outpost ARN.
@@ -30,4 +36,12 @@ The Outpost has edge compute nodes, while the VPC has cloud-based compute nodes.
3036
The cloud-based AWS Elastic Block volume cannot attach to Outpost edge compute nodes, and the Outpost volumes cannot attach to cloud-based compute nodes.
3137
+
3238
As a result, you cannot use CSI snapshots to migrate applications that use persistent storage from cloud-based compute nodes to edge compute nodes or directly use the original persistent volume.
33-
To migrate persistent storage data for applications, you must perform a manual backup and restore operation.
39+
To migrate persistent storage data for applications, you must perform a manual backup and restore operation.
40+
41+
* AWS Outposts does not support AWS Network Load Balancers or AWS Classic Load Balancers.
42+
You must use AWS Application Load Balancers to enable load balancing for edge compute resources in the AWS Outposts environment.
43+
+
44+
To provision an Application Load Balancer, you must use an Ingress resource and install the AWS Load Balancer Operator.
45+
If your cluster contains both edge and cloud-based compute instances that share workloads, additional configuration is required.
46+
+
47+
For more information, see "Using the AWS Load Balancer Operator in an AWS VPC cluster extended into an Outpost".

modules/installation-cloudformation-subnet-localzone.adoc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ ifndef::outposts[]
9797
endif::outposts[]
9898
ifdef::outposts[]
9999
Value: !Join ['-', [ !Ref ClusterName, !Ref PublicSubnetLabel, !Ref ZoneName]]
100-
- Key: kubernetes.io/cluster/unmanaged
100+
- Key: kubernetes.io/cluster/unmanaged # <1>
101101
Value: true
102102
endif::outposts[]
103103
@@ -123,7 +123,7 @@ ifndef::outposts[]
123123
endif::outposts[]
124124
ifdef::outposts[]
125125
Value: !Join ['-', [!Ref ClusterName, !Ref PrivateSubnetLabel, !Ref ZoneName]]
126-
- Key: kubernetes.io/cluster/unmanaged
126+
- Key: kubernetes.io/cluster/unmanaged # <2>
127127
Value: true
128128
endif::outposts[]
129129
@@ -144,6 +144,10 @@ Outputs:
144144
Value:
145145
!Join ["", [!Ref PrivateSubnet]]
146146
----
147+
ifdef::outposts[]
148+
<1> You must include the `kubernetes.io/cluster/unmanaged` tag in the public subnet configuration for AWS Outposts.
149+
<2> You must include the `kubernetes.io/cluster/unmanaged` tag in the private subnet configuration for AWS Outposts.
150+
endif::outposts[]
147151
====
148152

149153
ifeval::["{context}" == "configuring-aws-outposts"]

post_installation_configuration/configuring-aws-outposts.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ For more information, see the link:https://docs.aws.amazon.com/outposts/[AWS Out
1313

1414
//AWS Outposts on {product-title} requirements and limitations
1515
include::modules/aws-outposts-requirements-limitations.adoc[leveloffset=+1]
16+
[role="_additional-resources"]
17+
.Additional resources
18+
* xref:../post_installation_configuration/configuring-aws-outposts.adoc#nw-aws-load-balancer-with-outposts_configuring-aws-outposts[Using the AWS Load Balancer Operator in an AWS VPC cluster extended into an Outpost]
1619
1720
[id="aws-outposts-environment-info_{context}"]
1821
== Obtaining information about your environment

0 commit comments

Comments
 (0)