kind

kind は、Docker コンテナ ノード を使用してローカル Kubernetes クラスターを実行するためのツールです。kind は主に Kubernetes 自体をテストするために設計されましたが、ローカル開発や CI にも使用できます。これらの手順に従って、Istio インストール用の kind クラスターを準備してください。

前提条件

  • 最新の Go バージョンを使用してください。
  • kind を使用するには、Docker をインストールする必要もあります。
  • kind の最新バージョンをインストールします。
  • Docker のメモリ制限を引き上げます。

インストール手順

  1. 次のコマンドを使用してクラスターを作成します

    $ kind create cluster --name istio-testing
    

    --name は、クラスターに特定の名前を割り当てるために使用されます。デフォルトでは、クラスターには "kind" という名前が付けられます。

  2. kind クラスターのリストを表示するには、次のコマンドを使用します

    $ kind get clusters
    istio-testing
    
  3. ローカル Kubernetes コンテキストを一覧表示するには、次のコマンドを使用します。

    $ kubectl config get-contexts
    CURRENT   NAME                 CLUSTER              AUTHINFO             NAMESPACE
    *         kind-istio-testing   kind-istio-testing   kind-istio-testing
              minikube             minikube             minikube
    
  4. 複数のクラスターを実行する場合、kubectl がどのクラスターと通信するかを選択する必要があります。kubectl のデフォルトクラスターは、Kubernetes kubeconfig ファイルで現在のコンテキストを設定することで設定できます。さらに、以下のコマンドを実行して、kubectl の現在のコンテキストを設定できます。

    $ kubectl config use-context kind-istio-testing
    Switched to context "kind-istio-testing".
    

    kind クラスターのセットアップが完了したら、Istio をインストールに進むことができます。

  5. 実験が終わり、既存のクラスターを削除したい場合は、以下のコマンドを使用してください。

    $ kind delete cluster --name istio-testing
    Deleting cluster "istio-testing" ...
    

kind 用の MetalLB のセットアップ

kind には、Loadbalancer サービスタイプに IP アドレスを提供する組み込みの方法はありません。Gateway サービスへの IP アドレスの割り当てを確実に行うには、詳細についてこのガイドを参照してください。

kind 用のダッシュボード UI のセットアップ

kind には、minikube のような組み込みのダッシュボード UI はありません。しかし、クラスターを表示するために、Web ベースの Kubernetes UI であるダッシュボードをセットアップすることはできます。kind 用にダッシュボードをセットアップするには、以下の手順に従ってください。

  1. ダッシュボードをデプロイするには、以下のコマンドを実行します。

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  2. ダッシュボードがデプロイされ、実行されていることを確認します。

    $ kubectl get pod -n kubernetes-dashboard
    NAME                                         READY   STATUS    RESTARTS   AGE
    dashboard-metrics-scraper-76585494d8-zdb66   1/1     Running   0          39s
    kubernetes-dashboard-b7ffbc8cb-zl8zg         1/1     Running   0          39s
    
  3. 新しく作成したクラスターに管理者アクセス権を付与するために、ServiceAccountClusterRoleBinding を作成します。

    $ kubectl create serviceaccount -n kubernetes-dashboard admin-user
    $ kubectl create clusterrolebinding -n kubernetes-dashboard admin-user --clusterrole cluster-admin --serviceaccount=kubernetes-dashboard:admin-user
    
  4. ダッシュボードにログインするには、Bearer トークンが必要です。以下のコマンドを使用して、トークンを変数に保存します。

    $ token=$(kubectl -n kubernetes-dashboard create token admin-user)
    

    echo コマンドを使用してトークンを表示し、ダッシュボードへのログインに使用するためにコピーします。

    $ echo $token
    
  5. 以下のコマンドを実行して、kubectl コマンドラインツールを使用してダッシュボードにアクセスできます。

    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
    

    Kubernetes ダッシュボードをクリックして、デプロイメントとサービスを表示します。

この情報は役立ちましたか?
改善のための提案はありますか?

フィードバックありがとうございます!