kind

kind 是一种使用 Docker 容器 节点 运行本地 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 那样内置的 Dashboard UI。但是,您仍然可以设置 Dashboard(基于 Web 的 Kubernetes UI)来查看您的集群。请按照以下说明为 kind 设置 Dashboard。

  1. 要部署 Dashboard,请运行以下命令

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
    
  2. 验证 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
    
  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. 要登录 Dashboard,您需要一个 Bearer Token。使用以下命令将令牌存储在变量中。

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

    使用 echo 命令显示令牌,并将它复制到 Dashboard 登录使用。

    $ echo $token
    
  5. 您可以使用 kubectl 命令行工具通过运行以下命令访问 Dashboard

    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
    

    点击 Kubernetes Dashboard 查看您的部署和服务。

这些信息对您有用吗?
您有什么改进建议吗?

感谢您的反馈!