ストレージ - AWS EFS
前回はAWS EBSを使ってコンテナにストレージをマウントすることで、Podの再起動時にもデータを消失することなく継続して利用することができました。 今回はNFSプロトコルを利用する共有ファイルストレージサービスであるAWS EFSを使って複数Pod間でのファイル共有を実現します。 EFSはAZ内でのみ利用可能なEBSと異なり、同一リージョン内の複数AZに冗長化されるため、AZ障害が発生しても別のAZのノードから引き続き利用することが可能です...
記事を読むストレージ - AWS EBS
これまでAWS EKS上でk8sクラスタ環境の構築を行い、Ingress Controllerを導入することでインターネットからのリクエストを受け付けられるようにしました。 ただ、アプリについては固定レスポンスを返すだけで実践的なものではありませんでした。 そこで今回は、データ保存を行うアプリを考えてみましょう。 コンテナではローカファイルシステムは一時的なもので、保存しても再起動時にそのデータは消失してしまいます...
記事を読むIngress - HTTPS通信(Cert Manager)
今回は、IngressにTLS証明書をセットアップし、セキュアに外部と通信できるようにしましょう。 ゼロトラストネットワークの考え方が普及し、今や開発・テスト環境でも通信のTLS化が当たり前の時代になりました(もちろん暗号化は通信だけではだめですが)。 そこで課題となるのが、暗号化で利用する証明書の管理です。証明書の有効期限切れによる通信障害のニュースもよく耳にします。 もちろん、KubernetesのIngressはHTTPS通信ができますが、前述の通り証明書の運用には課題があります...
記事を読むIngress - カスタムドメイン管理(external-dns)
前回までは、Ingressに登録したホスト名をHostヘッダを直接指定することで、DNSで名前解決がされた体で確認ました。 当然ですが、実運用でこのようなことをすることはなく、DNSサーバにIngressとのマッピングを追加する必要があります。 これを手動で実施すると、Ingressに新しいホストを追加する度に別途DNSで作業する必要が出てきます。DNSは設定ミスがあるとその被害は大きくなるのが通例です(それ故にネットワーク管理者のみがDNSにアクセス可能な組織が多いでしょう)...
記事を読むIngress - AWS Load Balancer Controller
前回はNginxをIngress Controllerとして利用しました。 Nginxはロードバランサーとして利用可能なプロキシサーバーで、実績のある成熟したミドルウェアと言えます。 しかし、AWSにはロードバランサーのフルマネージドサービスとしてELB(Elastic Load Balancing)が存在しますので、あえてNginxを入れなくても、ロードバランサー機能として同等のことができます...
記事を読むIngress - NGINX Ingress Controller
KubernetesのIngressリソースを導入しましょう。 Ingressとは、クラス環境内にデプロイされたアプリ(Pod)に対して、ロードバランシングを行うKubernetesの機能です(こちら参照)。 環境構築編では、動作確認用にServiceリソースをLoadBalancerとして定義することでL4ロードバランサーを作成(実態はELB)しました...
記事を読むクラスタ環境構築 - AWS EKS (Terraform)
前回に引き続き、AWSのKubernetesフルマネージドサービスのEKS(Elastic Kubernetes Service)でクラスタ環境を構築してみましょう。 前回はeksctlを利用してクラスタ環境を構築しましたが、今回はIaCツールとして高い人気を誇るTerraformを使います。 TerraformはHashiCorp社で開発されたマルチクラウド対応のIaCツールで、AWSだけでなくAzure、GCP等にも対応します...
記事を読むクラスタ環境構築 - AWS EKS (eksctl)
AWSのKubernetesフルマネージドサービスのEKS(Elastic Kubernetes Service)でクラスタ環境を構築してみましょう。 今回クラスタの構築にはAWS公式のCLIツールのeksctlを利用します。 eksctlはWeaveworks社で開発されたEKSクラスタの構築・運用を容易にしてくれるCLIツールです...
記事を読む