Ubuntu20.04にMinikubeを使用してKubernetesをインストールする方法

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!

Source link