美文网首页
使用 kind 部署单机版 kubernetes 集群

使用 kind 部署单机版 kubernetes 集群

作者: leileitang_blog | 来源:发表于2020-09-04 13:47 被阅读0次

    1.kind 的介绍和优势

    kind(Kubernetes in Docker)是一个基于Docker构建的Kubernetes集群的工具。它经过CNCF认证,并且支持多节点集群,包括高可用集群。并且支持Linux、macOS以及Windows操作系统,操作简单,学习成本低,非常适合用来在本地搭建基于Kubernetes的开发/测试环境

    2. 使用kind 部署本地k8s集群

    2.1 本地安装kind

    • mac 环境安装kind,可以直接使用brew 安装
    brew install kind
    
    • Linux 环境安装kind,
    curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.8.1/kind-$(uname)-amd64"
    chmod +x ./kind
    mv ./kind /some-dir-in-your-PATH/kind
    
    • Windows 环境安装kind
    curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.8.1/kind-windows-amd64
    Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe
    
    # OR via Chocolatey (https://chocolatey.org/packages/kind)
    choco install kind
    
    • 查看已安装的kind的版本
    ➜  ~ kind version
    kind v0.8.1 go1.14.2 darwin/amd64
    

    2.2 本地安装Kubectl

    • Mac 上安装kubectl

      运行安装命令:

      brew install kubectl 
      # 或者
      brew install kubernetes-cli
      # 测试以确保您安装的版本是最新的:
      kubectl version --client
      
    • 在Linux上使用curl安装Kubectl二进制文件
    1. 使用以下命令下载最新版本:

      curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
      

      要下载特定版本,请用特定版本替换$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)命令部分。

      例如,要在Linux上下载版本v1.18.0,请输入:

      curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl
      
    2. 使kubectl二进制可执行文件。

      chmod +x ./kubectl
      
    3. 将二进制文件移到您的PATH中。

      sudo mv ./kubectl /usr/local/bin/kubectl
      
    4. 测试以确保您安装的版本是最新的:

      kubectl version --client
      
    • 在Windows上安装Kubectl
    1. 从此链接下载最新版本的v1.18.0 。

      或者,如果已curl安装,请使用以下命令:

      curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/windows/amd64/kubectl.exe
      

      要查找最新的稳定版本(例如,用于脚本编写),请查看https://storage.googleapis.com/kubernetes-release/release/stable.txt

    2. 将二进制文件添加到您的PATH中。

    3. 测试以确保的版本kubectl与下载的版本相同:

      kubectl version --client
      

    注意: 适用于Windows的Docker桌面将其自己的版本添加kubectl到PATH。如果您之前已经安装了Docker Desktop,则可能需要将PATH条目放置在Docker Desktop安装程序添加的PATH之前,或者删除Docker Desktop的kubectl

    3. 创建集群

    Tips: 使用kind ,需要环境安装docker

    现在,我们应该能够使用kind CLI来启动一个Kubernetes集群:

    Usage:
      kind [command]Available Commands:
      build       Build one of [node-image]
      completion  Output shell completion code for the specified shell
      create      Creates one of [cluster]
      delete      Deletes one of [cluster]
      export      Exports one of [kubeconfig, logs]
      get         Gets one of [clusters, nodes, kubeconfig]
      help        Help about any command
      load        Loads images into nodes
      version     Prints the kind CLI version
    

    3.1.创建k8s集群:

    kind create cluster
    

    如下:

    ➜  ~ kind create cluster
    Creating cluster "kind" ...
    ⠈⠁ Ensuring node image (kindest/node:v1.18.2) 🖼
     ✓ Ensuring node image (kindest/node:v1.18.2) 🖼
     ✓ Preparing nodes 📦
     ✓ Writing configuration 📜
     ✓ Starting control-plane 🕹️
     ✓ Installing CNI 🔌
     ✓ Installing StorageClass 💾
    Set kubectl context to "kind-kind"
    You can now use your cluster with:
    
    kubectl cluster-info --context kind-kind
    
    Have a nice day! 👋
    

    3.2.创建特定版本的k8s集群

    将通过拉取最新的Kubernetes节点(v 1.18.2)来创建一个Kubernetes集群。刚刚我们已经创建了一个v 1.18.2的Kubernetes集群。

    在创建集群的过程中如果我们没有--name参数,那么集群名称将会默认设置为kind。

    kind build node-image
    kind create cluster --image kindest/node:latest
    

    如下:

    ➜  ~ kind create cluster --image kindest/node:v1.15.6 --name kind-1.15.6
    Creating cluster "kind-1.15.6" ...
     ✓ Ensuring node image (kindest/node:v1.15.6) 🖼
     ✓ Preparing nodes 📦
     ✓ Writing configuration 📜
     ✓ Starting control-plane 🕹️
     ✓ Installing CNI 🔌
    Could not read storage manifest, falling back on old k8s.io/host-path default ...
     ✓ Installing StorageClass 💾
    Set kubectl context to "kind-kind-1.15.6"
    You can now use your cluster with:
    
    kubectl cluster-info --context kind-kind-1.15.6
    
    Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
    

    4. 查看部署好的集群

    kind get clusters
    

    如下:

    ➜  ~ kind get clusters
    kind
    kind-1.15.6
    

    5.为kubectl设置上下文

    创建集群之后,kubectl会指出最近创建的K8S集群。

    让我们来检查一下所有可用的上下文。

    ➜  ~ kubectl config get-contexts
    CURRENT   NAME                 CLUSTER                      AUTHINFO             NAMESPACE
              docker-for-desktop   docker-for-desktop-cluster   docker-for-desktop   
              kind-kind            kind-kind                    kind-kind            
    *         kind-kind-1.15.6     kind-kind-1.15.6             kind-kind-1.15.6 
    

    从输出中,我们可以得到结论,kubectl上下文目前已经被设置为最新的集群,即kind-1.15.6。(上下文名称是以kind为前缀的)

    要将kubectl上下文设置为版本是1.18.2的kind集群,我们需要进行如下操作:

    ➜  ~ kubectl config set-context kind-kind 
    Context "kind-kind" modified.
    

    要验证kubectl是否指向正确的集群,我们需要检查节点:

    ➜  ~  kubectl get nodes
    NAME                 STATUS   ROLES    AGE   VERSION
    kind-control-plane   Ready    master   74m   v1.18.2
    

    6. 删除集群

    kind delete cluster
    

    如下:

    > kind delete cluster --name kind
    Deleting cluster "kind" ...
    

    如果你想一次性删除所有集群,请执行:

    kind delete clusters –all
    

    如下:

    > kind delete clusters --all
    Deleted clusters: ["kind-1.15.6"]
    

    相关文章

      网友评论

          本文标题:使用 kind 部署单机版 kubernetes 集群

          本文链接:https://www.haomeiwen.com/subject/amuzsktx.html