美文网首页
使用 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