使用AWS NLB 配置 Istio Ingress
Ingress AWS 网络负载均衡器
本文提供了使用 AWS 网络负载均衡器 配置 ingress Istio 的说明。
可以使用网络负载均衡器 (NLB) 来代替传统的负载均衡器。 你可以查看不同的 AWS 负载均衡器
之间的 比较以获取更多的解释。
先行条件
以下说明需要 Kubernetes 1.9.0 或更高版本 的集群。
AWS nlb
在 Kubernetes 上的使用是一项 Alpha 功能 ,不建议用于生产环境的集群。
IAM 策略
你需要在主角色上应用策略, 以便能够配置网络负载均衡器。
在 AWS
iam
控制台中,点击策略并单击“创建新策略”:选择
json
:拷贝以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "kopsK8sNLBMasterPermsRestrictive", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "elasticloadbalancing:AddTags", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancerPolicies", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:ModifyTargetGroup", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:SetLoadBalancerPoliciesOfListener" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeRegions" ], "Resource": "*" } ] }
点击审核策略,填写所有字段,接着点击创建策略:
点击角色,选择你的主角色节点,然后点击附加策略:
现在,你的策略就已经附加到了主节点。
重写 Istio Ingress 服务
你需要使用以下内容来重写 istio-ingress
服务:
apiVersion: v1
kind: Service
metadata:
name: istio-ingress
namespace: istio-system
labels:
istio: ingress
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
name: http
- port: 443
protocol: TCP
targetPort: 443
name: https
selector:
istio: ingress
type: LoadBalancer