LoginSignup
0
0

More than 1 year has passed since last update.

AWS LightsailでKubernetesを使ってみた

Posted at

始めに

低コストで使い勝手の良いLightsailですが、設定の簡単さゆえKubernetesの構造にはそぐわない所が幾つかありました。今の記事ではLightsailでKubernetesクラスターを構成する時に躓いた所を整理していきます。

基本設定

インスタンスの選択

おすすめ

Master Node: 20 USD/月 (4GB メモリ, 2コアプロセッサ, 80GB SSD ディスク)
Worker Node: 10 USD/月 (2GB メモリ, 1コアプロセッサ, 60GB SSD ディスク)

公式的にマスターノードは二つ以上のコアを使うように言われているため、20 USD/月のVMをお勧めします。ワーカーノードは理論上1GBのメモリでも行けますが、実際にPODを回すにはメモリが足りないですので月10 USDのVMを使うべきかと思います。

Network

CalicoのIPv4ファイアウォール

ファイアウォールのルール設定に制限があります。従ってCNIでCalicoを使う場合、TCPポート以外にIPIPプロトコルを許可するためにアプリケーション=すべてのプロトコルを解放する必要があリます。ソースIPアドレスに制限をかける事は可能なのでセキュリティのために各ノードのプライベートIPを指定するべきでしょう。
net.png

設計および運用上の考慮点

80ポートおよび443ポートでサービスを公開する

使用できない方法

Service Type: Loadbalancer

Lightsailでは対応してないみたいです。

Lightsailのロードバランサー

Lightsailのロードバランサーは80(HTTP)と443(HTTPS)だけをサポートしています。また、ポートフォワーディング機能は使えません。ホストネットワークを使わない限りLightsailのロードバランサーを使ってKubernetesのサービスを80および443ポートで公開することはできません。

使用できる方法

ELBのロードバランサー

ELBのロードバランサーはフォワーディング先のポートを設定することができます1。すなわち、80と443から受けたリクエストをNodePortが提供する30000-32767のサービスに連結できます。VPC Peeringを使えばELBのロードバランサーをLightsailへ繋ぐことができます2

ソフトウェア型のロードバランサー

NGINX3やHAProxy4などL4及びL7のソフトウェア型のロードバランサーを使う方法です。注意すべきはこのソフトウェア型のロードバランサーをKubernetes上で配布してはいけないということです。おすすめはDockerを使うことです。Dockerでソフトウェアロードバランサーを管理するとLightsailコンテナなど、可用性の高いAWSサービスに簡単に移植できます。


  1. Application Load Balancer のターゲットグループ, https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-target-groups.html#target-group-routing-configuration 

  2. [AWS] ALBのIPターゲットをLightsailインスタンスで活用する, https://dev.classmethod.jp/articles/lightsail-with-alb-ip-target 

  3. HTTP Load Balancing, https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/ 

  4. 【VPS1台でインフラ勉強】HAProxyでロードバランサーを構築, https://blog.mosuke.tech/entry/2014/11/09/171436/ 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0