k3d
k3d 是一個輕量級的包裝器,用於在 Docker 中執行 k3s(Rancher Lab 的最小 Kubernetes 發行版本)。k3d 使得在 Docker 中建立單節點和多節點 k3s 叢集非常容易,例如用於 Kubernetes 上的本機開發。
先決條件
安裝
使用以下命令建立叢集並停用
Traefik
$ k3d cluster create --api-port 6550 -p '9080:80@loadbalancer' -p '9443:443@loadbalancer' --agents 2 --k3s-arg '--disable=traefik@server:*'
若要檢視 k3d 叢集清單,請使用以下命令
$ k3d cluster list k3s-default
若要列出本機 Kubernetes 環境,請使用以下命令。
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * k3d-k3s-default k3d-k3s-default k3d-k3s-default
如果您執行多個叢集,您需要選擇
kubectl
與哪個叢集互動。您可以透過在 Kubernetes kubeconfig 檔案中設定目前的環境,為kubectl
設定預設叢集。此外,您可以執行以下命令來設定kubectl
的目前環境。$ kubectl config use-context k3d-k3s-default Switched to context "k3d-k3s-default".
為 k3d 設定 Istio
設定 k3d 叢集完成後,您可以繼續在該叢集上使用 Helm 3 安裝 Istio。
$ kubectl create namespace istio-system $ helm install istio-base istio/base -n istio-system --wait $ helm install istiod istio/istiod -n istio-system --wait
(選用)安裝入口閘道
$ helm install istio-ingressgateway istio/gateway -n istio-system --wait
為 k3d 設定儀表板 UI
k3d 不像 minikube 那樣內建儀表板 UI。但您仍然可以設定儀表板(一個基於網頁的 Kubernetes UI)來檢視您的叢集。請按照以下指示為 k3d 設定儀表板。
若要部署儀表板,請執行以下命令
$ helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/ $ helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard
確認儀表板已部署並正在執行。
$ kubectl get pod -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-8c47d4b5d-dd2ks 1/1 Running 0 25s kubernetes-dashboard-67bd8fc546-4xfmm 1/1 Running 0 25s
建立一個
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 儀表板 以檢視您的部署和服務。
解除安裝
當您完成實驗並想要刪除現有叢集時,請使用以下命令
$ k3d cluster delete k3s-default Deleting cluster "k3s-default" ...