LoginSignup
0
0

More than 1 year has passed since last update.

【入門】kubernetes勉強メモ②:Jetson Xavier NXでKubernetes

Posted at

わざわざローカル環境?

Kubernetesといえば、AzureのAKSやAWSのEKS,GCPのGKEのようなクラウドサービスを使うのが一般的だと思いますが、
ローカルで試せると以下のようなメリットがあります。

  • クラウドの管理コスト削減
  • 手元でコンパクトに試せるので開発速度の向上

ということで、物は試しやってみよう
(訳あって実行結果は載せられません。sry)

Kubernetesとは

ざっくり言うと、コンテナ化されたアプリを自動的にデプロイ、スケーリングおよび管理してくれるいい感じのシステムです。
コンテナオーケストレーションと呼ばれてます。
詳しくは前回の記事を読んでみてください~

実行環境

デバイス:Jetson Xavier NX
OS:ubuntu 18.04

やることまとめ

0.事前準備
1.Kubectlのインストール
2.minikubeのインストール
3.minikube起動
4.Kubernetesでechoserverを立てる

0.事前準備

まずは、Dockerをインストールしましょう!
(Dockerじゃなくてもいいんですが、とりあえず今回の環境では一番簡単だと思うのでDockerにしておきます)
公式サイト↓を参考にインストールしてください。

1.Kubectlのインストール

次にKubernetesのためのCLIであるKubectlをインストールしましょう!
公式ドキュメントはこちらです↓

注意点は、Xavier NXはarm64です!
そのため、以下のようなコマンドになります。
なお、環境によってはsudoでの実行が必要になります。

$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/arm64/kubectl"

次に、Kubectlバイナリの権限を変更します。

$ chmod +x ./kubectl

最後に、バイナリをPATHの中へ移動させます。

$ sudo mv ./kubectl /usr/local/bin/kubectl

インストールの確認をして終わりです。

$ kubectl version --client

2.minikubeのインストール

公式ドキュメントはこちらです↓

今回の実行環境では、以下のコマンドになります。

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
$ chmod +x minikube
$ sudo install minikube /usr/local/bin/

とりあえず、これで各種ツールのインストールは終わりです。
次からは、インストールの確認もかねてminikubeを起動します。

3.minikube起動

それでは、minikubeを起動させます。

$ minikube start 

※エラーが出る場合あり。解決策としては、以下のURLのように①ユーザを追加する、②minikube start --force --driver=dockerあたりがある。

4.Kubernetesでechoserverを立てる

minikube startした後、以下のコマンドでまずはdeploymentを作成します。
deploymentとは、Pod管理のためのオブジェクトです。Podを用意するための前段階のものという感じ?

ここでPod作成のためのイメージを持ってくるのですが、
注意点として、こちらもarm64のイメージを選ぶようにしましょう。
一例として、以下のコマンドがあります。

$ kubectl create deployment echoserver-minikube --image=e2eteam/echoserver:2.2-linux-arm64(ここは任意のarm64用イメージ)

そして、上のdeploymentを使って、サービスを公開します。

$ kubectl expose deployment echoserver-minikube --type=NodePort --port=8080

Podが作成されたかを確認します。

$ kubectl get po -A

公開されたServiceのURLは以下で取得します。

$ minikube service echoserver-minikube --url

Podの削除とdeploymentの削除は以下のコマンドです。

$ kubectl delete services echoserver-minikube
$ kubectl delete deployment echoserver-minikube

以上でローカル環境へのKubernetes導入は終了です。
お疲れさまでした。
(Xavier NX上のDocker コンテナ内にminikube導入しようとして苦しんだ話もいつかできたら・・・)

参考にさせていただいた記事

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