kind
kind 是一個使用 Docker 容器 nodes
來執行本地 Kubernetes 叢集的工具。kind 主要設計用於測試 Kubernetes 本身,但也可用於本地開發或 CI。請按照以下說明準備一個用於安裝 Istio 的 kind 叢集。
先決條件
安裝步驟
使用以下命令建立一個叢集
$ 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
要與哪個叢集對話。您可以透過在Kubernetes kubeconfig檔案中設定目前的內容,來為kubectl
設定預設叢集。此外,您也可以執行以下命令來設定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。使用以下命令將 token 儲存在一個變數中。
$ token=$(kubectl -n kubernetes-dashboard create token admin-user)
使用
echo
命令顯示 token,並複製它以用於登入您的儀表板。$ echo $token
您可以使用 kubectl 命令列工具,透過執行以下命令來存取您的儀表板
$ kubectl proxy Starting to serve on 127.0.0.1:8001
點擊Kubernetes 儀表板以檢視您的部署和服務。