凡ジニアのtxt

エンジニアリングができないエンジニア

勉強用のラズパイk8sからEKSへ移行するブログ

k8sを勉強することの始まり

約2年ほど前に、初の転職して、iOSエンジニアからSREになりました。転職当時は、どちらかというと一般的な保守・運用エンジニアとして、エスカレーション・ワークフローの作成や体制の準備などがメインの仕事でした。ある時に、Kubernetes(k8s)を基盤としたアラート監視システムの保守・運用が我がチームにアサインされました。そこから、k8sについて勉強しなければとなり、ラズパイ3台で構築するk8sをおもちゃとしていじるようになりました。

kubernetes.io

ラズパイk8s

なぜラズパイでk8sを構築しようとしたかというと、ただ単にラックマウントされた3台のラズパイがかっこいいやんというだけです。以下が、その画像です。3台はk8s nodesで、1台はNFSサーバにしてました。(埃被っているのは、見逃してください...)

f:id:aki5151:20210823143854j:plain

ラズパイk8sを構築する際には、以下のサイトを参考にさせて頂きました。

ラズパイでKubernetesクラスタを構築する - Qiita

ラズパイ4で作るディスプレイ付きKubernetesクラスター - Qiita

このラズパイk8sを使いながら、kubeadmやetcdのバックアップ、各リソースの操作を学んでCKA/CKADに挑みました。苦戦した時の反省は、Zennのブログに記載しております。

zenn.dev

CKA/CKADも取得した後、次に色んなサービスを動かして試したいと思いが出てきました。Prometheus/GrafanaやELS、Argo、New Relig Agentなど試してみました。ここで、いくつかラズパイk8sの欠点に遭いました。

  • Elastic Searchなどのメモリを多く使うサービスに関しては、ラズパイ1台分のリソースを食ってしまう。

-> 新しくラズパイを追加購入すればいいが、電源やハブの拡張もしないといけないのが面倒になってきた。

-> New Relic Infrastructureがaarch64をサポートしてなかったり、他のサービスについても考慮する必要があった。

当時はNew Relic Infrastructureがaarch64をサポートしていなかったが、現在はサポートされたバージョンがリリースされているようです。 github.com

以上のことから、EKSに移行した方がいいかなと思った事柄になります。

Amazon Elastic Kubernetes Service (Amazon EKS)

ラズパイk8sから移行する際に、メリットであるなと思ったことは、以下になります。

  • AWS初心者なので、ある程度の構築するあたって、EC2/PVC/Storage周りの勉強ができる
  • TerraformでのIaCの勉強ができる

デメリットであるなと思ったことは、以下になります。

  • リソースの停止・削除を忘れると、予想以上にお金がかかる
  • AWS初心者なので、意外と勉強コストが少し高い

現在は、「Kubernetes on AWS」を参考にして、EKSでのk8sクラスターの立ち上げが一通りできました。なので、CloudFormationからTerraformに変更して、k8sクラスターの立ち上げを試みてます。

Kubernetes on AWS ~アプリケーションエンジニア 本番環境へ備える | 会澤 康二, 佐藤 和彦 |本 | 通販 | Amazon

所感

Terraformでのクラスター作成が終われば、ArgoでのCI/CDやIstioまわりをやってみたいと思います。