Minikubeは、Linuxシステム内にシングルノードのKubernetesクラスターをセットアップできる無料のオープンソースツールです。 Minikubeは、Linux、MacOS、およびWindowsオペレーティングシステムにインストールできます。 Minikubeは、NodePorts、DNS、Container Network Interface、Ingress、ConfigMaps、SecretsなどのさまざまなKubernetes機能もサポートしています。
このチュートリアルでは、Ubuntu18.04LTSにKubernetesシングルノードクラスターMinikubeをインストールする方法を学習します。
- システムにインストールされた新しいUbuntu18.04デスクトップ。
- rootパスワードがシステムに設定されています。
まず、システムを最新バージョンに更新する必要があります。これを行うには、次のコマンドを実行します。
apt-get update -y
apt-get upgrade -y
システムが更新されたら、システムを再起動してすべての変更を適用します。
次に、次のコマンドを使用して、いくつかの必要なパッケージをインストールします。
apt-get install curl wget apt-transport-https -y
VirtualBoxハイパーバイザーをインストールする
Minikubeは、KVMとVirtualBoxハイパーバイザーの両方をサポートしています。そのため、VirtualBoxまたはKVMをシステムにインストールする必要があります。
次のコマンドでVirtualboxをインストールできます:
apt-get install virtualbox virtualbox-ext-pack
インストールが完了したら、次の手順に進むことができます。
Minikubeをインストールする
まず、Minikubeの最新バージョンをシステムにダウンロードする必要があります。次のコマンドを使用して、公式Webサイトからダウンロードできます。
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
ダウンロードが完了したら、次のコマンドを使用して、ダウンロードしたファイルを/ usr / local/binにコピーします。
cp minikube-linux-amd64 /usr/local/bin/minikube
次に、次のコマンドを使用して、ミニクベに実行許可を与えます。
chmod 755 /usr/local/bin/minikube
次に、次のコマンドでMinikubeのバージョンを確認します。
minikube version
次の出力が表示されます。
minikube version: v0.34.1
Kubectlをインストール
Kubectlは、Kubernetesにアプリケーションをデプロイして管理するためのツールです。デフォルトでは、KubectlはUbuntu18.04デフォルトリポジトリでは使用できません。そのため、システムにKubernetesリポジトリを追加する必要があります。
まず、次のコマンドを使用してGPGキーをダウンロードして追加します。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
次に、次のコマンドを使用してKubernetesaptリポジトリを追加します。
echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
次に、リポジトリを更新し、次のコマンドを使用してKubectlをインストールします。
apt-get update -y
apt-get install kubectl -y
Kubectlをインストールしたら、次のコマンドを使用してバージョンを確認できます。
kubectl version -o json
次の出力が表示されます。
{ "clientVersion": { "major": "1", "minor": "13", "gitVersion": "v1.13.4", "gitCommit": "c27b913fddd1a6c480c229191a087698aa92f0b1", "gitTreeState": "clean", "buildDate": "2019-02-28T13:37:52Z", "goVersion": "go1.11.5", "compiler": "gc", "platform": "linux/amd64" } }
必要なパッケージがすべてインストールされています。これで、次のコマンドでMinikubeを起動できます。
minikube start
これにより、Virtualboxイメージがダウンロードされ、以下に示すようにKubernetesクラスターが構成されます。
o minikube v0.34.1 on linux (amd64) > Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ... @ Downloading Minikube ISO ... 184.30 MB / 184.30 MB [============================================] 100.00% 0s - "minikube" IP address is 192.168.99.100 - Configuring Docker as the container runtime ... - Preparing Kubernetes environment ... @ Downloading kubeadm v1.13.3 @ Downloading kubelet v1.13.3 - Pulling images required by Kubernetes v1.13.3 ... - Launching Kubernetes v1.13.3 using kubeadm ... - Configuring cluster permissions ... - Verifying component health ..... + kubectl is now configured to use "minikube" = Done! Thank you for using minikube!
これで、次のコマンドを使用してクラスターのステータスを確認できます。
kubectl cluster-info
次の出力が表示されます。
Kubernetes master is running at https://192.168.99.100:8443 KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
次のコマンドを使用して、Kubectlのデフォルト構成を確認することもできます。
kubectl config view
次の出力が表示されます。
apiVersion: v1 clusters: - cluster: certificate-authority: /root/.minikube/ca.crt server: https://192.168.99.100:8443 name: minikube contexts: - context: cluster: minikube user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /root/.minikube/client.crt client-key: /root/.minikube/client.key
実行中のノードを確認するには、次のコマンドを実行します。
kubectl get nodes
出力:
NAME STATUS ROLES AGE VERSION minikube Ready master 2m45s v1.13.3
次のコマンドを使用してMinikubeVirtualboxにアクセスすることもできます。
minikube ssh
次の出力が表示されます:
_ _ _ _ ( ) ( ) ___ ___ (_) ___ (_)| |/') _ _ | |_ __ /' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\ | ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/ (_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____) $
次に、Virtualboxシェルを終了します。
$exit
次のコマンドを使用して、いつでもkubernetesクラスターを停止および削除できます。
minikube stop
minikube delete
次のコマンドでMinikubeのステータスを確認できます:
minikube status
次の出力が表示されます:
host: Running kubelet: Running apiserver: Running kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Kubernetesダッシュボードにアクセス
デフォルトでは、Kubernetesにはクラスターの管理に使用できるウェブダッシュボードが付属しています。
次のコマンドを使用して、すべてのminikubeアドオンを一覧表示できます。
minikube addons list
次の出力が表示されます。
- addon-manager: enabled - dashboard: disabled - default-storageclass: enabled - efk: disabled - freshpod: disabled - gvisor: disabled - heapster: disabled - ingress: disabled - logviewer: disabled - metrics-server: disabled - nvidia-driver-installer: disabled - nvidia-gpu-device-plugin: disabled - registry: disabled - registry-creds: disabled - storage-provisioner: enabled - storage-provisioner-gluster: disabled
次に、次のコマンドを使用して、クラスターで実行されているすべてのコンテナーイメージを一覧表示します。
kubectl get pods --all-namespaces
次の出力が表示されます。
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-86c58d9df4-76dkf 1/1 Running 0 4m30s kube-system coredns-86c58d9df4-wdtwb 1/1 Running 0 4m29s kube-system etcd-minikube 1/1 Running 0 8m17s kube-system kube-addon-manager-minikube 1/1 Running 0 8m6s kube-system kube-apiserver-minikube 1/1 Running 1 8m13s kube-system kube-controller-manager-minikube 1/1 Running 1 8m13s kube-system kube-proxy-5k8qf 1/1 Running 0 4m33s kube-system kube-scheduler-minikube 1/1 Running 0 8m2s kube-system kubernetes-dashboard-ccc79bfc9-z827s 1/1 Running 0 4m17s kube-system storage-provisioner 1/1 Running 0 4m13s
次に、次のコマンドを実行して、kubernateダッシュボードのURLを取得します。
minikube dashboard --url
次の出力が表示されます。
- Enabling dashboard ... - Verifying dashboard health ... - Launching proxy ... - Verifying proxy health ... http://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/
これで、MinikubeWebURLが生成されます。次に、ウェブブラウザを開き、URLhttp://127.0.0.1:56508/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/を入力します。次のページに示すように、Kubernateダッシュボードにリダイレクトされます。
おめでとう!これで、Ubuntu18.04にMinikubeが正常にインストールされました。これで、Webブラウザを介してKubernetesクラスタを簡単に管理できます。