Minikubeは、ローカルコンピュータシステムでKubernetesを実行できるようにするツールです。 Minikubeは、使用するvm-driverに応じて、VM内にシングルノードのKubernetesクラスターを作成します。 Minikubeは、テスト、開発、トレーニングなど、Kubernetesについて学ぶのに適しています。
このチュートリアルでは、Manjaro / ArchLinuxでMinikubeを使用して、シングルノードのKubernetesクラスタをローカルで作成する方法を段階的に説明します。このガイドでは、KVM2ドライバーを使用してKubernetesクラスターをローカルに実装し、Nginxサービスのデプロイの例について説明します。
私たちが行うこと:
- パッケージの依存関係をインストールする
- DockerマシンとKVM2ドライバーをインストールします
- MinikubeとKubectlをインストールします
- Minikubeを使用したKubernetesの初期化
- 展開のテスト
- Kubernetesダッシュボードにアクセスする
最初に行うステップは、qemuKVMとdnsmasqを含むすべてのパッケージの依存関係をインストールすることです。
以下のpacmanコマンドを使用してqemuとdnsmasqをインストールします。
sudo pacman -Sy libvirt qemu ebtables dnsmasq
インストールが完了したら、ユーザーを「libvirt」グループに追加してリロードします。
sudo usermod -a -G libvirt $(whoami)
newgrp libvirt
次に、libvirtdおよびvirtlogdサービスを開始し、それらのサービスを起動時間に追加します。
sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service
sudo systemctl start virtlogd.service
sudo systemctl enable virtlogd.service
qemuKVMパッケージと依存関係がシステムにインストールされています。
Minikubeはdocker-machineを使用してKubernetesVMを管理しているため、「docker-machine-driver-kvm2」をインストールする必要があります。
以下のpacmanコマンドを使用してDockerマシンをインストールします。
sudo pacman -Sy docker-machine
次に、yaourtコマンドを使用してAURリポジトリから「docker-machine-driver-kvm2」をインストールします。
yaourt -Sy docker-machine-driver-kvm2
インストールを待ちます。
このガイドでは、AURリポジトリからMinikubeとkubectlをインストールします。
以下のyaourtコマンドを実行します。
yaourt -Sy minikube-bin kubectl-bin
インストールが完了したら、Minikubeのバージョンとkubectlコマンドを確認します。
minikube version
whereis kubectl
kubectl -h
以下のMinikubeコマンドを使用して、シングルノードのKubernetesクラスタを初期化します。
minikube start --vm-driver kvm2
このコマンドは、Minikube ISOファイルをダウンロードし、システム上にKVM仮想マシンを作成します。
完了すると、次のような結果が得られます。
KubernetesはMinikubeを使用してローカルコンピューターにインストールされています。以下のすべてのコマンドを実行して確認してください。
minikube status
kubectl cluster-info
kubectl get nodes
これで、以下の結果が表示されます。
Kubernetesクラスターは、IPアドレス「192.168.39.78」のローカルコンピューターで稼働しており、Kubernetes v1.10を使用し、クラスターのマスターとしてminikubeという名前の単一ノードを使用しています。
このステップでは、Nginxウェブサーバーの新しいデプロイを作成して、kubernetesをテストします。
'project / nginx /'という名前の新しいディレクトリを作成し、そこに移動します。
mkdir -p projects/nginx/
cd projects/nginx/
次に、デプロイ構成用の新しいyamlファイルを作成します。
vim nginx-deployment-service.yaml
そして、以下の構成を貼り付けます。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
run: nginx-service
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
selector:
app: nginx
保存して終了します。
次に、以下のkubectlコマンドを実行してデプロイメントを作成します。
kubectl create -f nginx-deployment.yaml
完了したら、Kubernetesのデプロイを確認します。
kubectl get deployments
kubectl describe deployments nginx-deployment
そして、リストに「nginx-deployment」が表示されます。
次に、Kubernetesサービスを確認します。
kubectl get services
kubectl describe services nginx-service
そして、NodePortの「nginx-service」がポート「32274」で実行されていることがわかります。
KubernetesクラスタIPを確認し、curlコマンドを使用してアクセスします。
minikube ip
curl -I http://192.168.39.49:32274/
そして、NginxWebサーバーから応答を受け取ります。
以下は、Webブラウザからアクセスした場合の結果です。
http://192.168.39.49:32274/
Minikubeは、Minikubeクラスター内で実行されているKubernetesダッシュボードにアクセスするためのコマンドを提供します。
以下のコマンドを実行します。
minikube dashboard
このコマンドは、システムのデフォルトのウェブブラウザを使用してKubernetesダッシュボードを開きます。
以下はKubernetesダッシュボードです。
Minikubeを使用したローカルコンピューターManjaro/ArchlinuxへのKubenrnetesのインストールが正常に完了しました。