kind
kind 是一种使用 Docker 容器 节点
运行本地 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 那样内置的 Dashboard UI。但是,您仍然可以设置 Dashboard(基于 Web 的 Kubernetes UI)来查看您的集群。请按照以下说明为 kind 设置 Dashboard。
要部署 Dashboard,请运行以下命令
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
验证 Dashboard 是否已部署并运行。
$ 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
要登录 Dashboard,您需要一个 Bearer Token。使用以下命令将令牌存储在变量中。
$ token=$(kubectl -n kubernetes-dashboard create token admin-user)
使用
echo
命令显示令牌,并将它复制到 Dashboard 登录使用。$ echo $token
您可以使用 kubectl 命令行工具通过运行以下命令访问 Dashboard
$ kubectl proxy Starting to serve on 127.0.0.1:8001
点击 Kubernetes Dashboard 查看您的部署和服务。