LoginSignup
1
0

Docker on Ubuntuにminikubeをインストールした話

Last updated at Posted at 2023-08-15

はじめに

1台の物理マシンでKubernetesを学習したいと思い、Docker on Ubuntu環境をバージョンアップしてみた。
1台の物理マシンでKubernets環境を構築する場合は、以下2つの方法がメジャーだと思う。

  1. kind
  2. minikube

kindは「kubernetes in Docker」の略でkubernetes自体のテストにも使われている。しかも、マルチノードクラスタを構築できる特徴があります。
一方、minikubeはドライバーを選択ができて、Docker、Virtual Boxなど色々な環境でkubernetesの検証ができるのが特徴です。ただシングルノードクラスタになりますが。

今回は、動作検証を目的としているのでminikubeを選択しました。

早速、:point_down:で構築したDocker on Ubuntuに導入していきます!

構成

項目 バージョン
OS Ubuntu 22.04
minikube minikube v1.31.2
Driver Docker 24.0.4
クラスタ Kubernetes v1.27.4

導入手順

公式サイトの手順に従って順番にコマンドを叩くだけで簡単に導入できます。
お手軽に導入できるのがいいですよね~!

1.minikubeのバイナリファイルをダウンロード

minikubeのバイナリファイルをダウンロード
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

2.クラスタを起動
初回はダウンロード等があって、ちょっと時間がかかります。

クラスタを起動
$ minikube start

Dockerがインストール済みなので、デフォルトでドライバーはdockerが選択されました。
Virtual BoxやKVM2でクラスタを構築した等がある場合はdriverオプションを付けることで起動できます。
この場合config設定をした方が便利だと思います。
公式サイトに設定手順等がありますので、ご参照ください。

3.kubectlをインストール
minikubeにもkubectlはインストールされていますが、minikube kubectlとタイプする必要がありちょっと長い。
別途kubectlをインストールすることにしました。
公式サイトの通りコマンドを叩くだけです!

kubectl導入
最新版のkubectlをダウンロード
$ curl -LO "https://dl.k8s.io/release/$(curl -LS https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

実行権限を付加
$ chmod +x ./kubectl

PATHが通っているディレクトリに移動
$ sudo mv ./kubectl /usr/local/bin/kubectl

稼働確認
$ kubectl version --client
$ kubectl cluster-info

4.kubectlのコマンド補完設定を追加 ※補完スクリプトはbash-completionに依存しているため、別途インストール必須

kubectlインストール
bash-completionがインストール済みで設定も完了しているかの確認
$ type _init_completion

kubectlの自動補完有効化
$ echo 'source <(kubectl completion bash)' >>~/.bashrc
$ kubectl completion bash > kubectl
$ sudo mv ./kubctl /etc/bash_completion.d/kubectl
$ sudo chown root:root /etc/bash_completion.d/kubectl
$ sudo chmod 644 /etc/bash_completion.d/kubectl

以下の設定もついでに追加
$ echo 'alias k=kubectl' >>~/.bashrc
$ echo 'complete -F __start_kubectl k' >>~/.bashrc

バージョンアップの方法

最新版のインストラーをダウンロードして、導入手順の1.と同様にインストールするだけ。
コマンドを再掲:point_down:

minikubeの最新版をインストール
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube

この状態でminikube startを実行すると、kubernetesのバージョンアップもできると表示されるので以下のコマンドでバージョンアップする。

kubernetesのバージョンアップ
$ minikube start --kubernetes-version=v1.xx.x
                                         xx.x:kubernetesの最新バージョン

kubernetesをバージョンアップするとkubectlも最新のkubernetesに対応するバージョンにアップデートする必要がある。
これも導入手順と同様に最新バージョンをダウンロードするだけ。

kubectlのバージョンアップ
$ curl -LO "https://dl.k8s.io/release/$(curl -LS https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
$ kubectl version --client

kubernetesダッシュボードの全機能を使うために

ダッシュボードの全機能を使用するには、matrics-serverのアドオンを有効にする必要があるよう。
そこで、以下のコマンドで有効化する。

matrics-serverアドオンを有効化
$ minikube addons enable metrics-server

今後の展望

:warning:絶対にやるという予定ではないです。記事投稿時の気分を書いてます。

ローカルでのkubernetes環境についてXにてアンケートを取ってみました。

母数が少ないですが、ローカル環境での検証としてminkubeを使用するのはメジャーなようです。

minikubeでローカルでのkubernetes検証を進めて、ゆくゆくはマルチノード構成のkubernetes環境を構築しようかと思います。
具体的には、以下をやってみようかな:thinking:と思っています。

  1. Rasberry piでおうちkubernetsの構築
  2. kindを使用したローカル環境でのマルチノード構成構築

1.については、CyberAgent社さんのインターンシップの記事が参考になりそうです。

おうちkubernets環境だと、@mochizuki875 さんとXとのやり取りでNUCにESXiをインストールしてVMで構築するのも興味深いなと思いました。


2.については、Cybozu社の記事が参考になりそうです。

1
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
1
0