使用 AWS NLB 配置 Istio Ingress

描述如何使用 AWS 上的網路負載平衡器配置 Istio Ingress。

2018 年 4 月 20 日 | 作者:Julien SENON

本文提供使用和配置 Istio ingress 與 AWS 網路負載平衡器的說明。

可以使用網路負載平衡器 (NLB) 來代替傳統的負載平衡器。您可以查看不同 AWS loadbalancer比較以獲得更多說明。

先決條件

以下說明需要 Kubernetes **1.9.0 或更新版本**叢集。

IAM 政策

您需要在主節點角色上套用政策,以便能夠佈建網路負載平衡器。

  1. 在 AWS iam 主控台中,按一下「政策」,然後按一下「建立新政策」。

    Create a new policy
    建立新政策
  2. 選擇 json

    Select json
    選擇 json
  3. 複製/貼上下面的文字

    {
        "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": "*"
            }
        ]
    }
    
  4. 按一下「檢閱政策」,填寫所有欄位,然後按一下「建立政策」。

    Validate policy
    驗證政策
  5. 按一下「角色」,選擇您的主節點角色,然後按一下「附加政策」。

    Attach policy
    附加政策
  6. 您的政策現在已附加到您的主節點。

產生 Istio 清單

要使用 AWS nlb 負載平衡器,必須將 AWS 特定註解添加到 Istio 安裝中。這些說明說明如何新增註解。

將其另存為檔案 override.yaml

gateways:
  istio-ingressgateway:
    serviceAnnotations:
      service.beta.kubernetes.io/aws-load-balancer-type: "nlb"

使用 Helm 產生清單

$ helm template install/kubernetes/helm/istio --namespace istio -f override.yaml > $HOME/istio.yaml
分享這篇文章