kind
kind は、Docker コンテナ ノード
を使用してローカル Kubernetes クラスターを実行するためのツールです。kind は主に Kubernetes 自体をテストするために設計されましたが、ローカル開発や CI にも使用できます。これらの手順に従って、Istio インストール用の kind クラスターを準備してください。
前提条件
- 最新の Go バージョンを使用してください。
- kind を使用するには、Docker をインストールする必要もあります。
- kind の最新バージョンをインストールします。
- Docker のメモリ制限を引き上げます。
インストール手順
次のコマンドを使用してクラスターを作成します
$ kind create cluster --name istio-testing
--name
は、クラスターに特定の名前を割り当てるために使用されます。デフォルトでは、クラスターには "kind" という名前が付けられます。kind クラスターのリストを表示するには、次のコマンドを使用します
$ kind get clusters istio-testing
ローカル Kubernetes コンテキストを一覧表示するには、次のコマンドを使用します。
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * kind-istio-testing kind-istio-testing kind-istio-testing minikube minikube minikube
複数のクラスターを実行する場合、
kubectl
がどのクラスターと通信するかを選択する必要があります。kubectl
のデフォルトクラスターは、Kubernetes kubeconfig ファイルで現在のコンテキストを設定することで設定できます。さらに、以下のコマンドを実行して、kubectl
の現在のコンテキストを設定できます。$ kubectl config use-context kind-istio-testing Switched to context "kind-istio-testing".
kind クラスターのセットアップが完了したら、Istio をインストールに進むことができます。
実験が終わり、既存のクラスターを削除したい場合は、以下のコマンドを使用してください。
$ 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 用にダッシュボードをセットアップするには、以下の手順に従ってください。
ダッシュボードをデプロイするには、以下のコマンドを実行します。
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
ダッシュボードがデプロイされ、実行されていることを確認します。
$ 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
新しく作成したクラスターに管理者アクセス権を付与するために、
ServiceAccount
とClusterRoleBinding
を作成します。$ kubectl create serviceaccount -n kubernetes-dashboard admin-user $ kubectl create clusterrolebinding -n kubernetes-dashboard admin-user --clusterrole cluster-admin --serviceaccount=kubernetes-dashboard:admin-user
ダッシュボードにログインするには、Bearer トークンが必要です。以下のコマンドを使用して、トークンを変数に保存します。
$ token=$(kubectl -n kubernetes-dashboard create token admin-user)
echo
コマンドを使用してトークンを表示し、ダッシュボードへのログインに使用するためにコピーします。$ echo $token
以下のコマンドを実行して、kubectl コマンドラインツールを使用してダッシュボードにアクセスできます。
$ kubectl proxy Starting to serve on 127.0.0.1:8001
Kubernetes ダッシュボードをクリックして、デプロイメントとサービスを表示します。