Amazon EKS上でのVNF開発奮闘記

Amazon EKS上でのVNF開発奮闘記

NTT Tech Conference #4 LT発表スライドです。
https://ntt-developers.github.io/ntt-tech-conference/04/

LT概要:
ネットワーク仮想化(NFV;Network Function Vertualization)の世界にも、コンテナ技術の波が押し寄せてきています。

我々のチームでは、AWSのkubernetesマネージドサービスであるEKS上で、NW装置の認証・認可機能であるRadiusの開発に取り組んでいます。

AWS上での閉域網の構築や、RadiusのUDPトラフィックを扱うロードバランサ等の開発内容について紹介し、EKSを利用する上で苦労した事例についてお話します。

32d4756de6b26864eeaf212de43c13e6?s=128

Kenta Shinohara

January 31, 2020
Tweet

Transcript

  1. Copyright©2020 NTT Corp. All Rights Reserved. NTT Tech Conf#4 @2020/1/31

    1
  2. • • • • • • • • • •

    Copyright©2020 NTT Corp. All Rights Reserved. 2 NTT Tech Conf#4 @2020/1/31
  3. • • • Copyright©2020 NTT Corp. All Rights Reserved. 3

    NTT Tech Conf#4 @2020/1/31
  4. • • • • Copyright©2020 NTT Corp. All Rights Reserved.

    4 NTT Tech Conf#4 @2020/1/31
  5. Copyright©2020 NTT Corp. All Rights Reserved. 5 NTT Tech Conf#4

    @2020/1/31
  6. 1. 2. 3. Copyright©2020 NTT Corp. All Rights Reserved. 6

    NTT Tech Conf#4 @2020/1/31
  7. • • • Copyright©2020 NTT Corp. All Rights Reserved. 7

    NTT Tech Conf#4 @2020/1/31
  8. VPC (Virtual Private Cloud) public-plane private-plane I-Gateway bastion NAT-Gateway EC2

    EC2 EC2 EC2 RDS EKS Worker EKS Worker EKS Worker Endpoint Endpoint Copyright©2020 NTT Corp. All Rights Reserved. 8 NTT Tech Conf#4 @2020/1/31
  9. VPC (Virtual Private Cloud) private-plane NAT-Gateway EC2 EC2 EC2 EC2

    RDS EKS Worker EKS Worker EKS Worker Endpoint Endpoint public-plane I-Gateway bastion • インターネットリーチャビリティ:双方向 Copyright©2020 NTT Corp. All Rights Reserved. 9 NTT Tech Conf#4 @2020/1/31
  10. VPC (Virtual Private Cloud) public-plane I-Gateway bastion • インターネットリーチャビリティ:外方向のみ •

    外抜け通信の細かな制御はNetworkACL + security group NAT-Gateway EC2 EC2 EC2 EC2 RDS EKS Worker EKS Worker EKS Worker Endpoint Endpoint Copyright©2020 NTT Corp. All Rights Reserved. 10 NTT Tech Conf#4 @2020/1/31 private-plane
  11. VPC (Virtual Private Cloud) public-plane I-Gateway bastion NAT-Gateway private-plane RDS

    EKS Worker EKS Worker EKS Worker Endpoint Endpoint EC2 EC2 EC2 EC2 • 静的なIPアドレスを実施するサブネット (VNFはIPアドレス狙い撃ちなものが多いので) Copyright©2020 NTT Corp. All Rights Reserved. 11 NTT Tech Conf#4 @2020/1/31
  12. VPC (Virtual Private Cloud) public-plane I-Gateway bastion NAT-Gateway private-plane EC2

    EC2 EC2 EC2 • IPアドレスを動的に払い出すサブネット (マネージドサービス等) EKSのデフォルトCNI:amazon-vpc-cniはPodに対し このサブネットからIPアドレスを直接払い出す RDS EKS Worker EKS Worker EKS Worker Endpoint Endpoint Copyright©2020 NTT Corp. All Rights Reserved. 12 NTT Tech Conf#4 @2020/1/31
  13. VPC (Virtual Private Cloud) public-plane I-Gateway bastion NAT-Gateway private-plane EC2

    EC2 EC2 EC2 RDS Endpoint Endpoint • Worker(コンテナが稼働するEC2インスタンス)⇔Master(EKS)間で常時通信 • EKS API serverはVPC外にあるため、VPC外への通信が発生してしまう EKS Worker EKS Worker EKS Worker EKS master (API server) VPC外への通信が発生 ECR (container registry) Copyright©2020 NTT Corp. All Rights Reserved. 13 NTT Tech Conf#4 @2020/1/31
  14. VPC (Virtual Private Cloud) public-plane I-Gateway bastion NAT-Gateway private-plane EC2

    EC2 EC2 EC2 RDS Endpoint Endpoint EKSの閉域利用はver 1.13から対応 • kubectl<->EKS API serverのprivate化 (2019/3) • EKS Worker⇔master間通信のprivate化(2019/6) • EKS Worker ⇔ ECR間通信のprivate化(2019/6) • CloudFormationでの完全private EKSクラスタ生成は公式ドキュメ ント・手順は存在しないが,実施方法有り EKS Worker EKS Worker EKS Worker EKS master (API server) 閉域通信(PrivateLink接続) ECR (container registry) Copyright©2020 NTT Corp. All Rights Reserved. 14 NTT Tech Conf#4 @2020/1/31
  15. Radius client Radius server Radius server Radius server LB 10.0.0.5

    10.0.0.6 10.0.2.123 10.0.2.141 10.0.2.138 10.0.2.139 10.0.2.142 Copyright©2020 NTT Corp. All Rights Reserved. 15 NTT Tech Conf#4 @2020/1/31
  16. Radius client LB Radius request/response from radius client Radius request/response

    from radius server NAPT 10.0.0.5 10.0.0.6 10.0.2.123 10.0.2.141 Radius server Radius server Radius server 10.0.2.138 10.0.2.139 10.0.2.142 Copyright©2020 NTT Corp. All Rights Reserved. 16 NTT Tech Conf#4 @2020/1/31
  17. Radius client LB Error: unknown server Radius request/response from radius

    client Radius request/response from radius server 10.0.0.5 10.0.0.6 10.0.2.123 10.0.2.141 NAPT Radius server Radius server Radius server 10.0.2.138 10.0.2.139 10.0.2.142 Copyright©2020 NTT Corp. All Rights Reserved. 17 NTT Tech Conf#4 @2020/1/31
  18. Radius client LB Radius request/response from radius client Radius request/response

    from radius server 10.0.0.5 10.0.0.6 10.0.2.123 10.0.2.141 NAPT Radius server Radius server Radius server 10.0.2.138 10.0.2.139 10.0.2.142 PodからEKS外への通信経路をLBを経由する様に 変更 & マネージドLBではこれが出来ないので、 NGINXを使い構築 (※type:LoadBalancerが使えないので、 振分先の動的設定等の機能実装が必要) Copyright©2020 NTT Corp. All Rights Reserved. 18 NTT Tech Conf#4 @2020/1/31
  19. • • • • • • • • • •

    • Copyright©2020 NTT Corp. All Rights Reserved. 19 NTT Tech Conf#4 @2020/1/31
  20. • • アンチパターン • インターネットから孤立したNWでコンテナ基盤を使わないといけない • IPアドレスは使い捨て・・ではなく、静的なIP設計&IPルーティングが必要 NTT Tech Conf#4

    @2020/1/31 Copyright©2020 NTT Corp. All Rights Reserved. 20