kind

kind 是一個使用 Docker 容器 nodes 來執行本地 Kubernetes 叢集的工具。kind 主要設計用於測試 Kubernetes 本身,但也可用於本地開發或 CI。請按照以下說明準備一個用於安裝 Istio 的 kind 叢集。

先決條件

安裝步驟

  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 要與哪個叢集對話。您可以透過在Kubernetes kubeconfig檔案中設定目前的內容,來為 kubectl 設定預設叢集。此外,您也可以執行以下命令來設定 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。使用以下命令將 token 儲存在一個變數中。

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

    使用 echo 命令顯示 token,並複製它以用於登入您的儀表板。

    $ echo $token
    
  5. 您可以使用 kubectl 命令列工具,透過執行以下命令來存取您的儀表板

    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
    

    點擊Kubernetes 儀表板以檢視您的部署和服務。

這個資訊對您有用嗎?
您有任何改進建議嗎?

感謝您的回饋!