Minikubeは、ローカルマシンにシングルノードのKubernetesクラスターをセットアップするのに役立つオープンソースツールです。 毎日の開発作業のために、パーソナルコンピューター上で単一ノードのKubernetesクラスターを簡単に実行できます。 クロスプラットフォームであり、macOS、Linux、およびWindowsにインストールできます。
このチュートリアルでは、Ubuntu20.04サーバーにMinikubeをインストールする方法を紹介します。
前提条件
- システムにインストールされているUbuntu20.04デスクトップ。
- 最小4GBのRAMと2つ以上のCPUコア。
- ローカルシステムでハードウェア仮想化を有効にする必要があります。
- ルートパスワードがサーバーに設定されます。
入門
開始する前に、システムパッケージを最新バージョンに更新することをお勧めします。 次のコマンドを実行して、それらを更新できます。
apt-get update -y
すべてのパッケージが更新されたら、次のコマンドを実行して他の依存関係をインストールします。
apt-get install curl wget apt-transport-https virtualbox virtualbox-ext-pack -y
終了したら、次のステップに進むことができます。
Dockerをインストールする
次に、Dockerをシステムにインストールする必要があります。 次のコマンドを実行してインストールできます。
apt-get install docker.io -y
Dockerがインストールされたら、Dockerサービスを開始し、システムの再起動時に開始できるようにします。
systemctl start docker
systemctl enable docker
これで、次のコマンドを使用してDockerのバージョンを確認できます。
docker --version
次の出力にDockerのバージョンが表示されます。
Docker version 19.03.8, build afacb8b7f0
終了したら、次のステップに進むことができます。
Minikubeをインストールします
デフォルトでは、MinikubeはUbuntuのデフォルトリポジトリでは利用できません。 そのため、Minikubeバイナリパッケージを公式ウェブサイトからダウンロードする必要があります。 次のコマンドでダウンロードできます。
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
ダウンロードが完了したら、次のコマンドを使用して、ダウンロードしたバイナリをシステムパスにコピーします。
cp minikube-linux-amd64 /usr/local/bin/minikube
次に、次のコマンドで実行権限を付与します。
chmod 755 /usr/local/bin/minikube
これで、次のコマンドを使用してMinikubeのバージョンを確認できます。
minikube version
次の出力が得られるはずです。
minikube version: v1.16.0 commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1
終了したら、次のステップに進むことができます。
Kubectlをインストールします
次に、Kubernetesでアプリケーションを管理するために、Kubectlとその他のツールをインストールする必要があります。 まず、次のコマンドでGPGキーを追加します。
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
次に、次のコマンドを使用してkubectlリポジトリを追加します。
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 kubeadm kubectl -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
Minikubeを起動します
この時点で、必要なすべてのパッケージがインストールされます。 これで、次のコマンドでMinikubeを起動できます。
minikube start
次の出力が得られるはずです。
* minikube v1.16.0 on Ubuntu 20.04 (kvm/amd64) * Using the none driver based on user configuration * Starting control plane node minikube in cluster minikube * Running on localhost (CPUs=2, Memory=3936MB, Disk=100726MB) ... * OS release is Ubuntu 20.04 LTS * Preparing Kubernetes v1.20.0 on Docker 19.03.8 ... - kubelet.resolv-conf=/run/systemd/resolve/resolv.conf > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubelet.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s > kubeadm: 37.40 MiB / 37.40 MiB [---------------] 100.00% 27.29 MiB p/s 1s > kubectl: 38.37 MiB / 38.37 MiB [---------------] 100.00% 27.60 MiB p/s 1s > kubelet: 108.69 MiB / 108.69 MiB [-------------] 100.00% 42.08 MiB p/s 3s - Generating certificates and keys ... - Booting up control plane ... - Configuring RBAC rules ... * Configuring local host environment ... * ! The 'none' driver is designed for experts who need to integrate with an existing VM * Most users should use the newer 'docker' driver instead, which does not require root! * For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/ * ! kubectl and minikube configuration will be stored in /root ! To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run: * - sudo mv /root/.kube /root/.minikube $HOME - sudo chown -R $USER $HOME/.kube $HOME/.minikube * * This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true * Verifying Kubernetes components... * Enabled addons: storage-provisioner, default-storageclass * Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
次のコマンドを使用して、クラスター情報を確認できます。
kubectl cluster-info
次の出力が得られるはずです。
Kubernetes control plane is running at https://45.58.38.77:8443 KubeDNS is running at https://45.58.38.77: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://45.58.38.77:8443 name: minikube contexts: - context: cluster: minikube namespace: default user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /root/.minikube/profiles/minikube/client.crt client-key: /root/.minikube/profiles/minikube/client.key
次のコマンドを使用して、実行中のすべてのノードを確認できます。
kubectl get nodes
次の出力が得られるはずです。
NAME STATUS ROLES AGE VERSION ubuntu2004 Ready control-plane,master 2m24s v1.20.0
Minikubeのステータスを確認するには、次のコマンドを実行します。
minikube status
次の出力が得られるはずです。
minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured timeToStop: Nonexistent
終了したら、次のステップに進むことができます。
Kubernetesダッシュボードにアクセスする
Minikubeには、必要に応じて有効または無効にできる多くのアドオンが付属しています。 次のコマンドを使用して、すべてのアドオンを一覧表示できます。
minikube addons list
次の出力が得られるはずです。
|-----------------------------|----------|--------------| | ADDON NAME | PROFILE | STATUS | |-----------------------------|----------|--------------| | ambassador | minikube | disabled | | csi-hostpath-driver | minikube | disabled | | dashboard | minikube | disabled | | default-storageclass | minikube | enabled ? | | efk | minikube | disabled | | freshpod | minikube | disabled | | gcp-auth | minikube | disabled | | gvisor | minikube | disabled | | helm-tiller | minikube | disabled | | ingress | minikube | disabled | | ingress-dns | minikube | disabled | | istio | minikube | disabled | | istio-provisioner | minikube | disabled | | kubevirt | minikube | disabled | | logviewer | minikube | disabled | | metallb | minikube | disabled | | metrics-server | minikube | disabled | | nvidia-driver-installer | minikube | disabled | | nvidia-gpu-device-plugin | minikube | disabled | | olm | minikube | disabled | | pod-security-policy | minikube | disabled | | registry | minikube | disabled | | registry-aliases | minikube | disabled | | registry-creds | minikube | disabled | | storage-provisioner | minikube | enabled ? | | storage-provisioner-gluster | minikube | disabled | | volumesnapshots | minikube | disabled | |-----------------------------|----------|--------------|
次に、次のコマンドを使用して、クラスターで実行されているすべてのコンテナーイメージを一覧表示します。
kubectl get pods --all-namespaces
次の出力が得られるはずです。
NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-74ff55c5b-skf9d 1/1 Running 0 3m45s kube-system etcd-ubuntu2004 1/1 Running 0 3m54s kube-system kube-apiserver-ubuntu2004 1/1 Running 0 3m54s kube-system kube-controller-manager-ubuntu2004 1/1 Running 0 3m54s kube-system kube-proxy-w8q6d 1/1 Running 0 3m45s kube-system kube-scheduler-ubuntu2004 1/1 Running 0 3m54s kube-system storage-provisioner 1/1 Running 0 3m59s
次に、Kubernetesダッシュボードを有効にし、次のコマンドでダッシュボードのURLを取得します。
minikube dashboard --url
次の出力が得られるはずです。
* Enabling dashboard ... * Verifying dashboard health ... * Launching proxy ... * Verifying proxy health ... http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ You can now access and manage the Kubernetes cluster using the URL http://127.0.0.1:36499/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
結論
上記のガイドでは、Minikubeをインストールし、それを使用してUbuntu20.04でKubernetesクラスターをセットアップする方法を学習しました。 Minikubeを使用して、Kubernetesクラスターをローカルにセットアップし、Webブラウザーから管理できるようになりました。 ご不明な点がございましたら、お気軽にお問い合わせください。
Hope this helps!