Kubernetes on Windowsのセットアップ

MicroK8sは、開発およびテスト目的でKubernetesをデプロイしたいチーム向けのソリューションです。Windows上でのセットアップ手順を以下で簡単に紹介します。

Kubernetes on Windows

MicroK8sはLinux snapとして動作し、Ubuntu上で動く軽量かつCNCF認定を取得したKubernetesローカルディストリビューションです。インストールには30秒もかかりません。Ubuntuやsnapをサポートするオペレーティングシステム(OS)上ですべてのKubernetesサービスをネイティブに実行し、ローカルPCに1つのクラスタをデプロイします。これはチームに柔軟性を与え、マイクロサービスを小規模でテストしたり、ローカルで機械学習モデルを開発および教育したり、アップグレード可能なKubernetesをIoTデバイスに組み込んで簡単に展開したりできます。

MicroK8sは、スケジューリング、スケーリング、デバッグなどのKubernetesの典型的な機能をローカルで自動化する一方で、開発向けに最新のKubernetesを提供することで信頼性を高めます。Kubernetesの最新のアップストリームバージョンは常に、公式リリースから1週間以内にUbuntu上で利用可能になります。

Kubernetes on Windowsは、Ubuntu VMでKubernetesクラスタをセットアップすることで動作します。

MicroK8sとKubernetesの動作にLinuxカーネルが必要なため、Ubuntu VMが必要です。このVMをMultipassを使って作成します。MultipassはWindows、MacOS、およびLinux上でUbuntu VMをすばやく起動して管理するツールです。VMはKubernetesのインスタンスを外の世界から隔離し、セキュリティを強化するのにも役立ちます。

Kubernetes on Windowsのセットアップ手順

ここではMultipassのセットアップ、VM上のMicroK8sの操作方法、およびDNSのアドオンを有効にしてMicroK8sダッシュボードを表示する手順を説明します。

なお、MultipassをWindows 10 EnterpriseまたはProで実行するには、信頼できるネットワーク上でhyper-vを有効にしておくなど、いくつかの要件があることに注意してください。

ステップ1:Multipassを使用してWindows用VMをセットアップする

VMを作成してMicroK8sを実行するには以下を実行します:

multipass launch --name microk8s-vm --mem 4G --disk 40G

multipass exec microk8s-vm -- sudo snap install microk8s --classic

multipass exec microk8s-vm -- sudo iptables -P FORWARD ACCEPT

Kubernetesをホストするために十分なリソースを確保してください。上記の例では、micro8s-vmという名前のVMを作成し、4GBのRAMと40GBのディスクを割り当てました。

VMはIPアドレスを持ち、以下のコマンドで確認できます(このIPでサービスにアクセスするため、IPをメモしておいてください)。

multipass list

Name           State IPv4            Release

microk8s-vm    RUNNING 10.72.145.216    Ubuntu 18.04 LTS

ステップ2:VM上のMicroK8sを操作する

VMをMultipassコマンドを使って操作する方法は3つあります。

  • 以下を実行してMultipassシェルプロンプト(コマンドライン)を使用する方法:
multipass shell microk8s-vm
  • 以下を実行してmultipass execを使用してシェルプロンプトを使わずにコマンドを実行する方法:
multipass exec microk8s-vm -- /snap/bin/microk8s.status
  • VMで実行しているKubernetes APIサーバを使用する方法。ここではローカルにkubectlをインストールし、MicroK8sのkubeconfigファイルを使用して、VM内のKubernetesにアクセスすることもできます。この場合は以下を実行します:
multipass exec microk8s-vm -- /snap/bin/microk8s.config > kubeconfig

次に、ホストマシンにkubectlをインストールしてkubeconfigを使用します。

kubectl --kubeconfig=kubeconfig get all --all-namespaces  

NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 443/TCP 3m12s

ステップ3:VM内のMultipassサービスにアクセスしMicroK8sアドオンを有効化する

基本的なMicroK8sアドオンの例としてGrafanaダッシュボードをセットアップします。GrafanaにアクセスしてMicroK8sインスタンスを監視および分析する方法を紹介します。以下を実行します。

multipass exec microk8s-vm -- /snap/bin/microk8s.enable dns dashboard
Enabling DNS
Applying manifest
service/kube-dns created
serviceaccount/kube-dns created
configmap/kube-dns created
deployment.extensions/kube-dns created
Restarting kubelet
DNS is enabled
Enabling dashboard
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
service/monitoring-grafana created
service/monitoring-influxdb created
service/heapster created
deployment.extensions/monitoring-influxdb-grafana-v4 created
serviceaccount/heapster created
configmap/heapster-config created
configmap/eventer-config created
deployment.extensions/heapster-v1.5.2 created
dashboard enabled

次に、以下を実行してデプロイの進捗を確認します。

multipass exec microk8s-vm -- /snap/bin/microk8s.kubectl get all --all-namespaces

以下のような出力が返されるはずです。

すべてのサービスの起動が完了したら、ダッシュボードにアクセスします。下のイメージがGrafanaダッシュボードです。

Kubernetes on Windowsのまとめ

MicroK8sにより開発チームは本番デプロイ前に作業をテストできます。Kubernetesの標準タスクを自動化すると同時に、信頼性を高めることができます。

Newsletter signup

Select topics you’re
interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

We are changing the way you build snaps from GitHub repos

On the 11th March 2020 we introduced a new process for building a snap using GitHub repos to snapcraft.io. Here is all you need to know about this update....

GNOME 3.34 snapcraft extension

We constantly strive to empower developers. Part of that aim extends to making development easier, for example improving build tools and documentation. As an...

An adventure through the Snap Store

An application store with a large number of entries is a double-edged sword. It’s often a good sign of a vibrant, thriving community of software creators,...