SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イラストではじめるKubernetes

イラストではじめる「Kubernetesの動かしかた」~Kubernetesクラスタを用意し、Podを作ってコンテナを起動しよう

  • X ポスト
  • このエントリーをはてなブックマークに追加

ローカル環境

 ローカルでKubernetesを起動する方法はたくさんありますが、ここでは筆者がよく利用するものをご紹介します。ローカル環境なので自分でマシンを用意できれば無料でKubernetesクラスタを構築することができます。

  • minikube
    • Kubernetes公式ドキュメントで紹介されているもののなかで最もシンプルにインストールできるツール。マルチノードクラスタ。
  • kind
    • 簡単に複数のKubernetesクラスタを構築できるが、Dockerが必要。マルチノードクラスタ。
  • Docker Desktop
    • Docker for Desktopを利用していると簡単に利用することができる。シングルノードクラスタ。

 Docker DesktopはLinuxに対応していませんが、minikubeとkindはmacOS、Windows、Linuxどの環境でも利用することができます。

 筆者の環境はmac OS Monterey(12.1)でメモリ16GBです。KubernetesはDockerよりも更にメモリを使いますので、ローカル環境のメモリには注意してください。

 また、既にDocker Desktopを使用している方はDocker DesktopでKubernetesの利用をお勧めします。

minikube

1. minikube をインストールする

 Installにはhomebrewを使います。

brew install minikube

 minikubeをインストールしたことがある方はwhich minikubeが失敗するかもしれません。その場合以下のコマンドを試してください。

brew unlink minikube
brew link minikube

2. クラスタを作成する

minikube start

 実行すると色々なメッセージがでてきます。

 実際はメッセージに絵文字が含まれることがありますが、本記事では省略しています。

❯ minikube start                                                                                                                                                                     [~]
Darwin 12.1 上の minikube v1.24.0
hyperkitドライバーが自動的に選択されました。他の選択肢:  virtualbox, ssh
docker-machine-driver-hyperkit ドライバをダウンロードしています:
    > docker-machine-driver-hyper...: 65 B / 65 B [----------] 100.00% ? p/s 0s
    > docker-machine-driver-hyper...: 8.35 MiB / 8.35 MiB  100.00% 39.32 MiB p/
The 'hyperkit' driver requires elevated permissions. The following commands will be executed:

    $ sudo chown root:wheel /Users/aoi/.minikube/bin/docker-machine-driver-hyperkit
    $ sudo chmod u+s /Users/aoi/.minikube/bin/docker-machine-driver-hyperkit


Password:
VM ブートイメージをダウンロードしています...
    > minikube-v1.24.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
    > minikube-v1.24.0.iso: 225.58 MiB / 225.58 MiB  100.00% 43.35 MiB p/s 5.4s
コントロールプレーンのノード minikube を minikube 上で起動しています
Kubernetes v1.22.3 のダウンロードの準備をしています
    > preloaded-images-k8s-v13-v1...: 501.73 MiB / 501.73 MiB  100.00% 43.40 Mi
hyperkit VM (CPUs=2, Memory=4000MB, Disk=20000MB) を作成しています...
この VM は https://k8s.gcr.io アクセスにおける問題があります
外部イメージを取得するためには、プロキシーを設定する必要があるかも知れません: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
Docker 20.10.8 で Kubernetes v1.22.3 を準備しています...
Certificate client.crt has expired. Generating a new one...
    ▪ 証明書と鍵を作成しています...
    ▪ Control Plane を起動しています...
    ▪ RBAC のルールを設定中です...
Kubernetes コンポーネントを検証しています...
    ▪ イメージ gcr.io/k8s-minikube/storage-provisioner:v5 を使用しています
有効なアドオン: storage-provisioner, default-storageclass

/usr/local/bin/kubectl is version 1.20.7, which may have incompatibilites with Kubernetes 1.22.3.
    ▪ kubectl v1.22.3 が必要ですか? 'minikube kubectl -- get pods -A' を試してみてください
完了しました! kubectl が「"minikube"」クラスタと「"default"」ネームスペースを使用するよう構成されました

3. kubectlにコンフィグを設定する

 minikube startを実行すると自動でkubectlのコンフィグが設定され、即座にクラスタにアクセスできるようになります。そのため、ここでは何も実行する必要がありません。

 正常に起動できたら、4ページ目の「kubectlを利用してクラスタにアクセスする」の章に進んでください。

kind

 kindを利用するためにはあらかじめDockerをインストールしておく必要があります(参考)。

 ただし既にDocker for Desktopを利用している方は学習用途としてであればkindよりもKubernetes for Docker Desktopを使う方がインストールが簡単でしょう。

1. kindをインストールする(参考

brew install kind

2. クラスタを作成する

kind create cluster

 実行すると以下の結果が得られます。

❯ kind create cluster                                                                                                                                                                [~]
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.21.1)
 ✓ Preparing nodes
 ✓ Writing configuration
 ✓ Starting control-plane
 ✓ Installing CNI
 ✓ Installing StorageClass
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community

3. kubectlにconfigを設定する

 筆者の環境では自動でconfigが設定されていましたが、configが設定されていない方はメッセージに書かれている通りconfigを設定しましょう。

kubectl cluster-info --context kind-kind

 完了したら「kubectlを利用してクラスタにアクセスする」の章に進んでください。

Docker Desktop

 筆者はDocker Desktop 4.2.1を利用しています。

1. Kubernetesをインストールする

1.1 メニューからPreferenceを選択する
1.2 Kubernetesメニューを開き、「Enable Kubernetes」にチェックを入れる。「Apply&Restart」をクリックする

2. kubectlにコンフィグを設定する

 自動でkubectlのconfigが設定されているはずです。kubectl context current-contextを実行して確認しましょう。

❯ kubectl config current-context
docker-desktop

次のページ
クラウドサービス

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イラストではじめるKubernetes連載記事一覧

もっと読む

この記事の著者

あおい(アオイ)

 大手メーカーにてソフトウェアエンジニアエンジニアを経て2019年7月サイボウズ株式会社にSREとして入社。 現行インフラ基盤上のアプリケーションを新インフラ基盤(Kubernetes)に移行するプロジェクトが主な仕事です。著書は、「まんがではじめるKubernetes」など。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15828 2022/05/10 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング