2.5. 配置 AWS Load Balancer Operator
2.5.1. 信任集群范围代理的证书颁发机构 复制链接链接已复制到粘贴板!
您可以在 AWS Load Balancer Operator 中配置集群范围代理。配置集群范围代理后,Operator Lifecycle Manager (OLM) 会使用 HTTP_PROXY
、HTTPS_PROXY
和 NO_PROXY
等环境变量自动更新 Operator 的所有部署。这些变量由 AWS Load Balancer Operator 填充给受管控制器。
运行以下命令,创建配置映射以在
aws-load-balancer-operator
命名空间中包含证书颁发机构 (CA) 捆绑包:oc -n aws-load-balancer-operator create configmap trusted-ca
$ oc -n aws-load-balancer-operator create configmap trusted-ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将可信 CA 捆绑包注入配置映射中,请运行以下命令将
config.openshift.io/inject-trusted-cabundle=true
标签添加到配置映射中:oc -n aws-load-balancer-operator label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true
$ oc -n aws-load-balancer-operator label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,更新 AWS Load Balancer Operator 订阅以访问 AWS Load Balancer Operator 部署中的配置映射:
oc -n aws-load-balancer-operator patch subscription aws-load-balancer-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}],"volumes":[{"name":"trusted-ca","configMap":{"name":"trusted-ca"}}],"volumeMounts":[{"name":"trusted-ca","mountPath":"/etc/pki/tls/certs/albo-tls-ca-bundle.crt","subPath":"ca-bundle.crt"}]}}}'
$ oc -n aws-load-balancer-operator patch subscription aws-load-balancer-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}],"volumes":[{"name":"trusted-ca","configMap":{"name":"trusted-ca"}}],"volumeMounts":[{"name":"trusted-ca","mountPath":"/etc/pki/tls/certs/albo-tls-ca-bundle.crt","subPath":"ca-bundle.crt"}]}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 AWS Load Balancer Operator 后,运行以下命令来验证 CA 捆绑包是否已添加到
aws-load-balancer-operator-controller-manager
部署中:oc -n aws-load-balancer-operator exec deploy/aws-load-balancer-operator-controller-manager -c manager -- bash -c "ls -l /etc/pki/tls/certs/albo-tls-ca-bundle.crt; printenv TRUSTED_CA_CONFIGMAP_NAME"
$ oc -n aws-load-balancer-operator exec deploy/aws-load-balancer-operator-controller-manager -c manager -- bash -c "ls -l /etc/pki/tls/certs/albo-tls-ca-bundle.crt; printenv TRUSTED_CA_CONFIGMAP_NAME"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
-rw-r--r--. 1 root 1000690000 5875 Jan 11 12:25 /etc/pki/tls/certs/albo-tls-ca-bundle.crt trusted-ca
-rw-r--r--. 1 root 1000690000 5875 Jan 11 12:25 /etc/pki/tls/certs/albo-tls-ca-bundle.crt trusted-ca
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过运行以下命令,每次 configmap 发生变化时重启 AWS Load Balancer Operator 的部署:
oc -n aws-load-balancer-operator rollout restart deployment/aws-load-balancer-operator-controller-manager
$ oc -n aws-load-balancer-operator rollout restart deployment/aws-load-balancer-operator-controller-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. 在 AWS Load Balancer 中添加 TLS 终止 复制链接链接已复制到粘贴板!
您可以将域的流量路由到服务的 pod,并在 AWS 负载均衡器中添加 TLS 终止。
先决条件
-
您可以访问 OpenShift CLI(
oc
)。
流程
创建定义
AWSLoadBalancerController
资源的 YAML 文件:add-tls-termination-albc.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 定义入口类名称。如果集群中没有 ingress 类,AWS Load Balancer Controller 会创建一个。如果
spec.controller
设置为ingress.k8s.aws/alb
,AWS Load Balancer Controller 会协调额外的入口类值。
创建定义
Ingress
资源的 YAML 文件:add-tls-termination-ingress.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.3. 通过单个 AWS Load Balancer 创建多个入口资源 复制链接链接已复制到粘贴板!
您可以通过单个 AWS Load Balancer 将流量路由到属于单个域一部分的、带有多个 ingress 资源的不同服务。每个 ingress 资源提供了域的不同端点。
先决条件
-
您可以访问 OpenShift CLI(
oc
)。
流程
创建一个
IngressClassParams
资源 YAML 文件,如sample-single-lb-params.yaml
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
IngressClassParams
资源:oc create -f sample-single-lb-params.yaml
$ oc create -f sample-single-lb-params.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
IngressClass
资源 YAML 文件,如sample-single-lb-class.yaml
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
IngressClass
资源:oc create -f sample-single-lb-class.yaml
$ oc create -f sample-single-lb-class.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
AWSLoadBalancerController
资源 YAML 文件,如sample-single-lb.yaml
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 定义
IngressClass
资源的名称。
运行以下命令来创建
AWSLoadBalancerController
资源:oc create -f sample-single-lb.yaml
$ oc create -f sample-single-lb.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Ingress
资源 YAML 文件,如sample-multiple-ingress.yaml
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建
Ingress
资源:oc create -f sample-multiple-ingress.yaml
$ oc create -f sample-multiple-ingress.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.4. AWS Load Balancer Operator 日志 复制链接链接已复制到粘贴板!
您可以使用 oc logs
命令查看 AWS Load Balancer Operator 日志。
流程
运行以下命令,查看 AWS Load Balancer Operator 的日志:
oc logs -n aws-load-balancer-operator deployment/aws-load-balancer-operator-controller-manager -c manager
$ oc logs -n aws-load-balancer-operator deployment/aws-load-balancer-operator-controller-manager -c manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow