はじめに
皆さんこんにちは、学部3年の可知です。今回はunikubeについて書きたいと思います。
皆さんは、実験や研究を行う際に Kubernetes(k8sやk3s)のセットアップや管理が大変だと感じたことはありませんか?特に、Kubernetesに触れたことがない3年生にとっては、「コンテナオーケストレーションシステム」であるKubernetesの操作は難しく感じるかもしれません。さらに、Dockerを使った経験がない場合は、何から手をつけてよいのかわからないと思います。私もそうでした。そこで、私たちの研究室では Unikube という共有クラスター環境を運用しています。Unikubeはネームスペースによって環境が分割されており、各個人が独立した環境で作業を進めることができます。
今回は、Kubernetesに触れたことがない方にもわかりやすいように、Unikubeの概要ついて説明します。その後、実際にWebアプリケーションをデプロイする手順を解説します。目的として、Kubernetesの経験がない方でもスムーズにUnikubeを利用できるようにすることを目指します。
kubernetesとは
Kubernetes(クバネティス) は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するためのオープンソースのコンテナオーケストレーションシステムです。例えば、dockerでの単一のコンテナの管理は簡単です。しかし、大規模なシステムやマイクロサービスアーキテクチャでは、多数のコンテナが連携して動作するため、その管理は複雑になります。ここでKubernetesが出番になってくるわけです。
Kubernetesは非常に高機能なツールですが、その分難しいです!まずは手を動かしてみることが大事です!実際に触れてみることで、その高機能さや便利さがわかるでしょう。まずはチュートリアルをやってみよう!
構成図
チュートリアル
では、実際に自分で作ったwebサイトを公開してみましょう。とりあず、dokcerで自分の作ったwebサイトのimageをPush!
docker tag my-web-app:latest c0a22167/kachi_dice_roll:latest
docker push your_dockerhub_c0a22167/kachi_dice_roll:latest
unikubeにアクセス
ssh cdsl
ssh unikube
※これでパスワードが要求されたらkey-agentの設定ができてない可能性が高いです
入れた!!
入れたら↑ のように学籍番号@unikubeだったら正常
デプロイしていく!
vim kachi-dice-roll-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kachi-dice-roll
labels:
app: kachi-dice-roll
spec:
replicas: 2 # Podを2つ作成
selector:
matchLabels:
app: kachi-dice-roll
template:
metadata:
labels:
app: kachi-dice-roll
spec:
containers:
- name: kachi-dice-roll
image: c0a22167/kachi_dice_roll:v1 # Dockerイメージ
ports:
- containerPort: 3000 # コンテナ内のポート
~
上のapplyしようとしたけどjasmin master アクセスできなくて途中です;;
復活したら追記します
みんなが↑にアクセスできるようにservie作るところを追記。