kind

kind 是一种使用 Docker 容器 nodes 运行本地 Kubernetes 集群的工具。 kind 主要是为了测试 Kubernetes 自身而设计的,但它也可用于本地开发或 CI。 请按照以下说明为 Istio 安装准备好 kind 集群。

准备

  • 请使用最新的 Go 版本,最好是 Go 1.13 或更新版本。
  • 为了使用 kind,还需要安装 docker
  • 安装最新版本的 kind
  • 增加 Docker 的内存限制

安装步骤

  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 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 设置操作界面

kind 不像 minikube 一样内置了操作界面。但仍然可以设置一个基于网页的 Kubernetes 界面,以查看集群。 参考以下说明来为 kind 设置操作界面。

  1. 运行以下命令以部署操作界面:

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.1.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. 创建 ClusterRoleBinding 以提供对新创建的集群的管理权限访问。

    $ kubectl create clusterrolebinding default-admin --clusterrole cluster-admin --serviceaccount=default:default
    
  4. 需要用 Bearer Token 来登录到操作界面。使用以下命令将 token 保存到变量。

    $ token=$(kubectl get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='default')].data.token}"|base64 -d)
    

    使用 echo 命令显示 token 并复制它,以用于登录到操作界面。

    $ echo $token
    
  5. 使用 kubectl 命令行工具运行以下命令以访问操作界面:

    $ kubectl proxy
    Starting to serve on 127.0.0.1:8001
    

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

这些信息有用吗?
Do you have any suggestions for improvement?

Thanks for your feedback!