10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

如何使用 kind 快速创建本地集群

2020 年 9 月 10 日

如何使用kind快速创建本地集群

简介

kind 是另一个 Kubernetes SIG 项目,但它与 minikube 有很大区别。它可以将集群迁移到 Docker 容器中,这与生成虚拟机相比,启动速度大大加快。简而言之,kind 是一个使用 Docker 容器节点运行本地 Kubernetes 集群的工具(CLI)。


接下来,我们开始吧!


前期准备

想要顺利完成本教程,你需要在本地系统中准备好以下程序:


  • Go

  • 需要运行的 Docker 服务


安装

使用以下命令下载和安装kind二进制文件:


GO111MODULE=”on” go get sigs.k8s.io/kind@v0.8.1
复制代码


确保 kind 二进制文件是存在的

> kind versionkind v0.8.1 go1.14.2 darwin/amd64
复制代码


现在,我们应该能够使用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
复制代码


在本文中,我们将聚焦于creategetdelete命令。


创建一个集群

执行以下命令即可创建一个集群:


kind create cluster


> kind create clusterCreating cluster "kind" ... ✓ 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! 👋
复制代码


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


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


创建特定版本的 K8S 集群

我们可以传–image 参数来部署一个特定版本的 Kubernetes 集群。


使用的命令为:


kind create cluster --image kindest/node:v1.15.6


> kind create cluster --image kindest/node:v1.15.6 --name kind-1.15.6Creating cluster "kind" ... ✓ Ensuring node image (kindest/node:v1.15.6) 🖼 ✓ 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! 👋
复制代码


列出部署的集群

输入命令:kind get clusters


> kind get clusterskindkind-1.15.6
复制代码


这应该列出我们此前创建的两个不同 K8S 版本的集群。


为 kubectl 设置上下文

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


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


> kubectl config get-contextsCURRENT   NAME                               CLUSTER                                kind-kind                          kind-kind            *         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 nodesNAME                        STATUS   ROLES    AGE     VERSIONkind-1.18.2-control-plane   Ready    master   8m20s   v1.18.2
复制代码


删除某个集群

要删除一个特定的群集,可以在--name参数中把集群名称传递给删除命令。


命令为:kind delete cluster --name kind


> kind delete cluster --name kindDeleting cluster "kind" ...
复制代码


删除所有集群

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


kind delete clusters –all


> kind delete clusters --allDeleted clusters: ["kind-1.15.6"]
复制代码


kind 的优势是什么?

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


原文链接:

https://medium.com/better-programming/a-simple-way-to-create-kubernetes-clusters-locally-using-kind-efc4b21e6788


本文转载自公众号 RancherLabs(ID:RancherLabs)。


原文链接


如何使用kind快速创建本地集群


2020 年 9 月 10 日 14:001050

评论

发布
暂无评论
发现更多内容

Apache Druid 安装的时候进行 Java 版本校验没有输出

HoneyMoose

Go语言:指针和unsafe.Pointer有什么区别?

微客鸟窝

Go

企业架构师的职业发展

在天涯的海角

架构师 职业发展 企业架构师

Python OpenCV 图像的二值化操作再次学习与图像平滑处理(卷积处理)

梦想橡皮擦

Python 7月日更

Redis - 配置文件

旺仔大菜包

redis

实战架构营模块三作业-外包学生管理系统架构设计

王晓宇

C# BS方向 该如何规划学习?【学习路线指南】

Andy阿辉

C# 学习 编程 程序猿

细说节流(Throttle)和防抖(Debounce)

devpoint

防抖 节流 7月日更

强强联手:2021强网杯LongTimeAgo复盘分析

网络安全学海

网络安全 信息安全 渗透测试 漏洞扫描 强网杯

攒学分赢大奖

IT蜗壳-Tango

7月日更

golang学习之路--内存分配器

en

Go 内存

Vue进阶(六):组件之间的数据传递

No Silver Bullet

Vue 组件 7月日更 数据传递

4种Spring Boot中集成Elasticsearch的方法实战

北游学Java

Java Spring Boot ES

Java为什么用迭代器

卢卡多多

7月日更

Python 正则表达式急速入门

喵叔

7月日更

Linux之grep命令

入门小站

Linux

[翻译] InnoDB 空间文件中的页面管理

keaper

MySQL 数据库 后端 服务端 innodb

JVM知识整理

十二万伏特皮卡丘

JVM

这份Java面试八股文让329人成功进入大厂,堪称2021最强

北游学Java

Java 面试

使用Apache Spark构建可靠的数据湖(九)

数据与智能

spark Data Lake iceberg Hudi

程序员必备技能之SpringBoot的自动装配原理,很详细,建议收藏!!!

AI乔治

Java spring 架构 微服务 springboot

在线正则表达式可视化工具

入门小站

工具

详解轻量日志聚合系统Loki架构

运维研习社

Grafana 日志系统 Loki

[翻译] InnoDB 空间文件布局基础

keaper

MySQL 数据库 后端 服务端 innodb

架构实战营 - 模块 9- 作业

请弄脏我的身体

架构实战营

从家里到阿里,学弟求职的一年

程序员鱼皮

Java 数据库 redis 面试 求职

Seldon 使用 (四):内置的推理服务TFServing

托内多

tensorflow kubeflow seldon tfserving

[翻译] 使用 innodb_ruby 探索 InnoDB 的页面管理

keaper

MySQL 数据库 后端 服务端 innodb

Vue进阶(十八):router.beforeEach 与 router.afterEach 钩子函数

No Silver Bullet

Vue 钩子函数 路由 7月日更

第九课作业

杰语

如何与同事相处

escray

学习 极客时间 朱赟的技术管理课 7月日更

如何使用kind快速创建本地集群-InfoQ