初めに
この記事は ウィルゲート Advent Calendar 2019 の7日目の記事です。
Oracle Cloud 上に無料で作った Kubernetes 環境を、AWS 上に作成した Rancher から管理してみます。
概要
- やりたい事の構成図
- Oracle Cloud の Always Free で Kubernetes 最小構成クラスタ作成
- AWS に Rancher サーバ作成
- 作成した Kubernetes クラスタを Rancher に Import
- ポエム
やりたい事の構成図
私は どれほどまでに
私の頭上を飛ぶツルの翼をかりて
あのはかりしれぬ海のかなたの岸へ行くことをねがったろう
無限の泡立つさかずきから
あふれる人生のよろこびを得ることを 熱望したろう─『若きウェルテルの悩み』(ゲーテ)─
『自宅に Kubernetes クラスタが欲しい』 と、いくら願っても予算、部屋の広さ、家庭の事情などで叶わぬ場合があります。
しかしなんと今回紹介する Oracle Cloud の Always Free では、一部のリソースを いつまでも無償で利用できます 。
今回はその中から
- 1/8 CPU、1GB MEM の VM2つ
- 10TB/Month まで外部通信
を使って、Oracle Cloud 上に Kubernetes を作成し、さらに AWS の無料枠である
- 1年間、特定の EC2 インスタンスを 750h/Month まで無償
を使って EC2 インスタンスに Rancher Server を構築し、 Oracle Cloud に作成した Kubernetes クラスタを管理してみます。
Always Free で最小構成 Kubernetes クラスタ 作成
Oracle Cloud 上に Kubernetes クラスタを作るわけですが、実は inajob さんの素晴らしい記事 が既にありまして、この通りにやれば間違いないです。
変な色気を出して『俺はCentOSで行くぜ』とかやらない限りは確実に作れます。
あと元記事にもありますが、自分で作った環境をインターネットに晒す事になりますし、操作を誤ると Oracle Cloud への課金が生じる場合もあります。
気を付けて自己責任で作業を行ってください。
Rancher サーバ作成
Rancher てなに?
Rancher は Rancher Lab 社が開発を主導している、OSS の Kubernetes 管理ツールです。
『Run Kubernetes Everywhere』 を謳っており、オンプレ/クラウドを問わず Kubernetes をグラフィカルな UI で統合管理できるのが強みです。
AWS に Rancher サーバ構築
Ranhcer サーバはコンテナで動きます。本番環境で使うには HA 構成などの設計が必要ですが、今回はお試しなのでシングルノード構成で作ります。
今回はの Ubuntu 18.04 を入れた t2.micro インスタンスに Rancher サーバを構築します。
まずは Docker のインストールです。以下のコマンドでインストールできます。
apt-get update && apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
apt-get install -y docker-ce
そして Rancher サーバコンテナを起動します
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest
セキュリティグループの設定で、80/tcp と 443/tcp を解放してください。
あとは https://EC2のパブリックIP にアクセスすればコンソール画面にアクセスできます。
Docker で動くので、Docker for Win/Mac といった手元でも動作します。
ただ、Kubernetes 管理ノードとしてパブリック IP アドレスを固定する必要があるので今回は EC2 インスタンスに作りました。
Kubernetes を Rancher に Import
次は作成した Kubernetes を Rancher に Import します。
『Add Cluster』を押してください
『Import an existing cluster』を押してください
Import するためのコマンドが出てきます。上から順に
- GKE 用の Import コマンド
- それ以外の Import コマンド
- 自己証明書等でエラーが出る場合の Import コマンド
となっています。今回は一番下のコマンドを、先ほど作ったマスタにコピペします。
コピペが終わったらしばらく待ちます。
成功するとこのように、クラスタ全体のリソースが確認できるようになります。
感想
Oracle Cloud と AWS の無償枠を利用して 0円で Kubernetes クラスタと、その管理環境ができました。
全て小さい VM なので、重いアプリケーションのデプロイは正直辛いですが、チョットした動作検証には十分かと思います。
今回は、導入部分しか紹介できませんでしたが、今後は Oracle Cloud の Always Free を使って、様々な検証をしていきたいと思います。
Oracle Cloud には Managed Kubernetes サービスの OKE(Oracle Container Engine for Kubernete) があるので、それの構築や Rancher への Import なんかやってみたいですね。
明日のアドベントカレンダーは @parco の「新卒総合職の私がGAS入門してみた」です。乞うご期待!