Kubernetes入門:Docker Desctop for Mac でKubernetesを有効にする

スポンサーリンク
Kubernates入門:Docker Desctop for Mac でKubernatesを有効にする 初期設定
Kubernates入門:Docker Desctop for Mac でKubernatesを有効にする
この記事は約7分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、Docker Desctop for Mac でKubernetesを有効にする方法についてご紹介します。

スポンサーリンク

背景

Docker Desktop for Mac は、Mac ユーザーにとって Docker を使いやすくするためのツールです。Docker はコンテナ仮想化プラットフォームであり、アプリケーションやサービスをコンテナと呼ばれる軽量な環境にパッケージ化して実行することができます。

Kubernetes(クーバネティス)は、コンテナオーケストレーションツールの一つであり、大規模なコンテナベースのアプリケーションのデプロイメント、スケーリング、管理を簡素化するために使用されます。Kubernetes は、複数のコンテナをクラスターと呼ばれるグループにまとめ、自動的にスケジューリングやロードバランシングを行い、アプリケーションの高可用性や拡張性を実現します。

Docker Desktop for Mac は、Kubernetes のクラスターを作成し、Mac 上で Kubernetes を実行するための統合環境を提供しています。これにより、Mac ユーザーは手軽に Kubernetes を試したり、開発環境でのアプリケーションのデプロイやテストに活用することができます。

Kubernetes を有効にすると、Docker Desktop for Mac 上で Kubernetes クラスターを作成し、Kubernetes の機能を使用することができます。これには、コンテナのデプロイ、スケーリング、ネットワーキングの設定、監視などが含まれます。また、Kubernetes を使用することで、Docker コンテナだけでなく、他のクラウドプロバイダーやオンプレミスの環境でも同じアプリケーションをデプロイできるようになります。

したがって、Docker Desktop for Mac で Kubernetes を有効にすることで、Mac ユーザーは簡単に Kubernetes を利用し、コンテナベースのアプリケーションのデプロイと管理を行うことができます。

有効化手順

下記の手順で、Docker Desctop for Mac でKubernetesを有効にします。

  1. Docker ダッシュボードから、[Settings]を選択します。
  2. 左側のサイドバーから「Kubernetes」を選択します。
  3. [Enable Kubernetes]の横にあるチェックボックスをオンにします。
  4. 「Apply & restart」を選択して設定を保存し、「インストール」をクリックして確認します。

これにより、Kubernetes サーバーをコンテナとして実行するために必要なイメージがインスタンス化され、/usr/local/bin/kubectlコマンドがマシンにインストールされます。

確認

下記のコマンドを実行して、パスが表示されれば成功です。

% which kubectl
/usr/local/bin/kubectl

下記のコマンドを実行して、コンテキストにdocker-desktopが選択されていることを確認します。

% kubectl config get-contexts
CURRENT   NAME             CLUSTER          AUTHINFO         NAMESPACE
*         docker-desktop   docker-desktop   docker-desktop   

もしdocker-desktopでなかった場合は、下記のコマンドで変更することができます。

kubectl config use-context docker-desktop

下記のコマンドを実行すると、使用可能なノードがリストアップされます。これで、コマンドの動作テストができます。

% kubectl get nodes
NAME             STATUS   ROLES           AGE   VERSION
docker-desktop   Ready    control-plane   10m   v1.25.9

デプロイ手順

試しにPodをデプロイしてみます。

下記のコマンドを実行します。

touch pod.yaml

pod.yamlの内容を下記にします。

apiVersion: batch/v1
kind: Job
metadata:
  name: hello
spec:
  template:
    # これがPodテンプレートです
    spec:
      containers:
      - name: hello
        image: busybox:1.28
        command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']
      restartPolicy: OnFailure
    # Podテンプレートはここまでです

下記のコマンドを実行して、下記のように表示されれば成功です。

% kubectl apply -f pod.yaml
job.batch/hello created

% kubectl get pod
NAME          READY   STATUS    RESTARTS   AGE
hello-5fplp   1/1     Running   0          7s

% kubectl logs hello-5fplp   
Hello, Kubernetes!

% docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS          PORTS     NAMES
99e0374cbc8d   busybox   "sh -c 'echo \"Hello,…"   30 seconds ago   Up 29 seconds             k8s_hello_hello-5fplp_default_ce8f52c4-cfa1-4680-b038-dc4beb06b0ef_0

Podとは

Kubernetes(クーバネティス)において、Pod(ポッド)は最小単位のデプロイメントオブジェクトです。Pod は 1 つ以上のコンテナで構成され、同一のホスト上で共同して動作します。

Pod 内のコンテナは、共有ネットワーク名前空間と同じ IP アドレスとポート空間を持ち、同一のホスト上で直接通信できます。また、Pod 内のコンテナは共有ストレージボリュームを利用することもできます。

Pod は、以下のような特徴を持ちます:

  1. ライフサイクルの単位: Pod は、コンテナをまとめる単位であり、同じライフサイクルを共有します。つまり、コンテナが共通のリソースを利用したり、相互に連携する必要がある場合には、同じ Pod 内に配置することができます。
  2. スケジューリング単位: Pod は、Kubernetes クラスター上でスケジューリングされる単位です。Kubernetes スケジューラーは、Pod を実行するノード(ホスト)を選択し、そのノード上で Pod 内のコンテナをスケジュールします。
  3. ライフサイクル管理: Pod は、Kubernetes によって監視・管理されます。Pod 内のコンテナが異常終了した場合、Kubernetes はそのコンテナを再起動します。また、Pod 自体が削除された場合は、その中のすべてのコンテナも同時に削除されます。

Pod は一般的には単一のコンテナで構成されますが、複数の関連するコンテナをまとめることもできます。たとえば、Web サーバーとデータベースサーバーを同じ Pod に配置して、相互に通信することができます。また、Pod 内のコンテナは同じ IP アドレスとポート空間を共有するため、ローカルホスト経由で相互に通信できます。

Pod は Kubernetes クラスター内の他のリソースと連携して動作し、スケーリング、ネットワーキング、ストレージなどの管理が行われます。

無効化手順

無効化する手順は、下記になります。

  1. Docker ダッシュボードから、[Settings]を選択します。
  2. 左側のサイドバーから「Kubernetes」を選択します。
  3. [Enable Kubernetes]の横にあるチェックボックスをオフにします。
  4. 「Apply & restart」を選択して設定を保存します。

これにより、Kubernetes コンテナーが停止して削除され、/usr/local/bin/kubectlコマンドも削除されます。

おわりに

今日は、Docker Desctop for Mac でKubernetesを有効にする方法についてご紹介しました。次回は、Kubernetesコマンドの使い方を説明したいと思います。

よっしー
よっしー

何か質問や相談があれば、遠慮なくコメントしてください。また、エンジニア案件についても、いつでも相談にのっていますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました