使用 kind 快速搭建 Kubernetes 环境

Intro

kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在本地搭建基于 Kubernetes 的开发/测试环境。

想写一篇 kind 的文章很久了,但是之前的 kind 都会有一个问题,每次系统重启或 docker daemon 重启的时候会导致原来的创建的集群不可用,需要重新创建才可以,从 0.8 版本开始,kind 不再需要重新创建集群了,基于这个集群的资源部署也会自动重启,无需再手动重新部署了,具体可以参考 Issue https://github.com/kubernetes-sigs/kind/issues/148,就在前几天 kind 0.8 版本发布了于是打算写一篇介绍 kind 的文章

Install

Kind 的安装不包括 kubectl,你需要独立安装 kubectl 来通过命令行来操作 kubernetes 集群,kubectl 的安装可以参考: https://kubernetes.io/docs/tasks/tools/install-kubectl/

通过 https://github.com/kubernetes-sigs/kind/releases/latest 获取最新的 release,根据自己的系统类型选择相应的系统 release,下载 release 之后重命名为 kind(Windows 系统 release 重命名为 kind.exe),然后将其放在某一个目录下,并要确保这个目录在系统 PATH 中以方便的使用,linux 系统中可能需要配置文件权限

sudo chmod +x kind

操作 Kuberneters 集群

使用 kind 创建 Kubernetes 集群非常的方便,只需要一行命令即可

kind create cluster

删除集群

kind delete cluster

默认集群名称是 "kind",如果要创建多个或者指定集群名称,可以指定 name 参数:

kind create cluster --name=k8s-cluster1

删除集群

kind delete cluster --name=k8s-cluster1

创建集群成功之后,就可以使用 kubectl 来操作 k8s 集群了

获取 k8s 集群所有资源示例:

既然说是基于 docker 的,那么我们再来看下 docker 资源,来验证一下是否真的是基于 docker 的

docker ps

可以看到 docker 里有一个 container,而 kind 创建的集群就是基于这个 container 的,如果你直接删掉了这个 container,通过 kind 创建的 k8s 集群也会有问题,

再来看一下 network,运行 docker network ls

可以看到有一个名称为 kind 的 network

我们可以进一步探究 kind-control-plane(就是上面的 docker container)

通过 docker exec kind-control-plane crictl ps 获取这个容器内部的运行容器列表,这个容器内部通过 crictl 来操作容器,可以参考 https://github.com/kubernetes-sigs/cri-tools

More

除了搭建开发测试环境之外,kind 也支持创建高可用的 kuberneters 集群,具体可以参考官方文档

kind 创建集群成功之后,就可以向 kubernetes 集群部署资源了,开始你的 Kubernetes 之旅吧~

Reference

使用 kind 快速搭建 kubernetes 环境的更多相关文章

  1. 烂泥:学习ubuntu之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 现在公司使用的都是ubuntu系统,这几天由于个别项目需要,需要搭建一个LNMP环境.为了快速搭建这个环境,我使用是apt-get方式进行安装.具体的操作 ...

  2. 快速搭建Web环境 Angularjs + Express3 + Bootstrap3

    快速搭建Web环境 Angularjs + Express3 + Bootstrap3 AngularJS体验式编程系列文章, 将介绍如何用angularjs构建一个强大的web前端系统.angula ...

  3. windows 7 下快速搭建php环境(windows7+IIS7+php+mysql)

    原文:windows 7 下快速搭建php环境(windows7+IIS7+php+mysql) 1).采用理由: 优点:最大化的桌面图形化操作系统,可维护性优秀.基于IIS v6.0/v7.0(20 ...

  4. spring boot / cloud (十八) 使用docker快速搭建本地环境

    spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...

  5. LVS+keepalived快速搭建测试环境

    #LVS+keepalived快速搭建测试环境 #LVS+keepalived快速搭建测试环境 #centos6 X64 # LVS 负载均衡模式:DR(直接路由) 192.168.18.31 mas ...

  6. 使用Docker快速搭建ELK环境

    今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...

  7. 93.快速搭建Web环境 Angularjs + Express3 + Bootstrap3

    转自:https://www.cnblogs.com/wawahaha/p/3946023.html 前言 Angularjs越用越顺手,不仅代码量比jQuery少很多,而且实现思路特别清晰,构建大型 ...

  8. XAMPP:继MAMP之后,Mac OS X平台下又一款帮你快速搭建服务器环境软件

    之前,有很多人都有打算在自己的Mac OS下搭建一个本地测试用的Apache+PHP+MySQL网络服务器环境. 在目前而言至少有3种办法可以实现这一点: 通过Xcode开发者套件和php.Apach ...

  9. 阿里云体验实验室 教你如何《快速搭建LNMP环境》

    ## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...

随机推荐

  1. 【python实现卷积神经网络】优化器的实现(SGD、Nesterov、Adagrad、Adadelta、RMSprop、Adam)

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  2. cgdb使用方法

    cgdb --args [exe_name] [arg1] [arg2] [arg3] [...] 进入代码窗口 按ESC键 进入调试窗口 按i键 调试命令 r 运行 n 单步执行(不进入函数) s ...

  3. Python 操作mysql数据库之 SQLAlchemy 案例详解

      前言: 字段声明类型中,最右边的是数据库中对应的字段,我们依然可以使用,其左边的的 SQLAchemy 则是其自身封装的自定义类型. 本篇不会讲太多的理论知识,因为这个实用性更强,所以通篇全部都是 ...

  4. 一个不错的spring 学习博客

    http://www.iteye.com/blogs/subjects/spring-tittle-tattle

  5. C#_关键字:Lock的解释和使用

    定义 lock关键字,互斥锁,通过锁住某一对象从而将语句块({})里面的代码设置为临界区. 线程在线性执行代码时若遇到互斥锁,必须先申请互斥锁的访问权,若访问成功,则继续线性访问互斥锁后的临界区代码块 ...

  6. 时间格式的转化 vue与js 年月日 时分秒

    首先使用原生转化的方法 第一种 //时间转换 dateStr(d, sign) { //如果没有传递符号,给一个默认的符号 if (!sign) { sign = '-' } //获取d里面年月日时分 ...

  7. stand up meeting 12/21/2015

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云  完成PDF UI主页面的页面切换功能,待完善    4  完善 ...

  8. Obtain The String CodeForces - 1295C binary_search+思维

    妈耶,,,被B题卡到哭,C题一发就过了... 字符串问题.首先用vector记录每个字符出现的位置,然后对字符串t的每个字符,用二分查找函数查找,注意用upper_bound查找,对于字符i,首先用变 ...

  9. Oracle数据库提权

    一.执行java代码 简介 oracle提权漏洞集中存在于PL/SQL编写的函数.存储过程.包.触发器中.oracle存在提权漏洞的一个重要原因是PL/SQL定义的两种调用权限导致(定义者权限和调用者 ...

  10. shiro:注解配置(五)

    基于[shiro集成spring]项目改造 引入相关依赖环境 <!--AOP的jar包--> <dependency> <groupId>org.aspectj&l ...