当前位置: 首页 > news >正文

使用Kind搭建本地k8s集群环境

目录

1.前提条件

2.安装Kind

3.使用Kind创建一个K8s集群

3.1.创建一个双节点集群(一个Master节点,一个Worker节点)

3.2.验证一下新创建的集群信息

 3.3.删除刚刚新建的集群

 4.安装集群客户端

 4.1.安装kubectl

4.1.1.验证kubectl

4.2.安装Lens

4.2.1.下载最新Lens安装包

4.2.2.打开Lens

4.参考文章


1.前提条件

本地环境需要的系统和软件,win10系统推荐这种方式

  • win10 + WSL2 + Ubuntu(截止202308最新版本是20.04.xx) +Docker(Docker Desktop是兼容WSL2的)
图1 允许Ubuntu直接使用Win10安装的Docker Desktop
图2 Win10 安装WSL2后,再安装Ubuntu子系统,Docker Desktop可以在Ubuntu中使用docker命令

        若是一直使用Linux统开发,则直接安装Docker即可以使用了

  • Linux + Docker

2.安装Kind

# 在本地路径下创建文件夹kind
mkdir -p kind
# 将Kind的二进制文件下载到本地
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
# 授权给当前用户执行权限
chmod +x ./kind
# 将可执行文件移动到路径/usr/bin/下(该路径下的二进制文件是全局可执行的)
mv ./kind /usr/bin/kind

         安装好之后,可以立刻验证一下版本

图3 安装Kind之后,验证一下版本信息

        整个安装过程比较简单,也有很多可以参考的博客文章,可能需要注意的是操作用户的权限问题,注意使用命令:

# 使用root用户执行命令
sudo ${command}
# 切换用户
su - ${username}
# 对某个二进制文件授权
chmod u+x+r+r ${executable_binary_file}
# 修改某个文件的归属权限
chown -R ${file}

3.使用Kind创建一个K8s集群

3.1.创建一个双节点集群(一个Master节点,一个Worker节点)

        为何是双节点?因为正常的集群都是多节点的,但是本地开发环境的资源可能比较有限,节点多了,本地电脑就会变卡,2个节点是比较实际的,可以体验多节点的特性,又可以最大程度节约资源

# 创建集群配置文件,1个master node,1个worker node。
cat << EOF > kind-clusters-mutil-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
EOF# start to create cluster
kind create cluster --name k8s-local-dev --config ./kind-clusters-mutil-config.yaml

3.2.验证一下新创建的集群信息

图4 验证新创建的新集群k8s-local-dev

        其中,在Docker Desktop中,也可以看到两个集群节点的容器。 

图5 Docker Desktop可以查看集群节点的运行状态

         从这里也能看到,为什么我推荐使用Kind,因为kind创建的集群也是镜像式的,如果使用其他的,例如Docker Desktop自带的Dev environment或者K3s或者minkube,都是很多image下载下来,然后启动一堆容器,删除集群的时候就很麻烦,当然,这是我的一家之言,对于这一点,其实也有人专门写文章分析这几个的利弊。

 3.3.删除刚刚新建的集群

# 查询刚刚新建的集群名
kind get clusters
# 根据集群名称删除集群
kind delete cluster --name k8s-local-dev
图6 删除新建的集群

 4.安装集群客户端

 4.1.安装kubectl

# 下载最新版本的kubectl命令二进制文件
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"# 授权二进制文件已执行权限(如果是root用户操作,可以不用sudo)
sudo chmod 777 ./kubectl# 将kubectl命令移动到/usr/local/bin目录下(这样就可以全局执行了)
mv ./kubectl /usr/local/bin/

官方文档中,非常全面,但是我这里简化一下,只针对我本地Unbuntu系统设置

4.1.1.验证kubectl

图7 安装kubectl之后,验证

 查看新集群的信息

# 查看kubectl版本信息
kubectl version
# 查看当前版本
kubectl cluster-info
# 查看集群信息
kubectl config get-clusters
# 查看当前context
kubectl config get-contexts
# 查看当前context
kubectl config current-context
图8 当前集群的信息

        这里涉及的内容需要理解k8s的访问权限设置,分为user(credentials)、cluster、context如何配置,起到什么作用,我之前也写过一篇如何配置kubectl访问集群的文章(点击传送)

        其中,这个配置可以通过以下命令查看

# 查看kubectl访问k8s集群的配置
kubectl config view

        这是一个配置文件,可以直接打开文件进行修改

cat ~/.kube/config

4.2.安装Lens

        Lens是其中比较推荐的可视化k8s客户端工具之一,开始是完全免费的,之后分了收费版本,变得有点无语,不过仍旧是比较推荐的工具,毕竟可视化界面操作非常方便,只要选择personal版本就可以了

4.2.1.下载最新Lens安装包

也可以自行选择版本,看自己需要

图9 选择windows版本下载

 选择Personal版本的,必然会跳到付费界面,一直卡住,自行研究一下即可,不赘述。

4.2.2.打开Lens

图10 Lens的集群列表界面

         第一次安装的话,会直接从path:~/.kube/config中复制放到用户目录下,所谓的用户目录可以在上图的settings中找到。

图11 Lens访问集群的相关配置

         这个配置和kubectl的配置一样的,如果cluster信息变更后,Lens的配置可能没有更新,可以直接从kubectl的kubeconfig中copy到对应的目录下。否则会出现如下情况:

图12 kubeconfig有误,无法访问集群

4.参考文章

kind

Kind创建单、多集群 – Jason Tan's blog

https://www.cnblogs.com/yakniu/p/16435276.html

Lens download portal | The Kubernetes IDE

在 Linux 系统中安装并设置 kubectl | Kubernetes

Minikube vs. kind vs. k3s vs k3d vs MicroK8s_ghostwritten的博客-CSDN博客 

相关文章:

使用Kind搭建本地k8s集群环境

目录 1.前提条件 2.安装Kind 3.使用Kind创建一个K8s集群 3.1.创建一个双节点集群&#xff08;一个Master节点&#xff0c;一个Worker节点&#xff09; 3.2.验证一下新创建的集群信息 3.3.删除刚刚新建的集群 4.安装集群客户端 4.1.安装kubectl 4.1.1.验证kubectl 4.2.安…...

【STM32RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)

硬件&#xff1a;STM32F103ZET6、ST-LINK、usb转串口工具、4个LED灯、1个蜂鸣器、4个1k电阻、2个按键、面包板、杜邦线 文章目录 前言一、RT-Thread相关接口函数1. 获取当前运行的线程2. 设置调度器钩子函数 二、程序设计1. 头文件包含及宏定义2. 线程入口函数定义3. main函数设…...

.net日志系统

.NET 平台提供了强大的日志记录系统,用于在应用程序中记录各种事件、错误和调试信息。最常用的日志记录库是 Microsoft.Extensions.Logging,它是一个通用的日志接口和基础框架,可以与多种日志实现集成。以下是如何使用 .NET 日志系统的基本步骤: 安装 NuGet 包:首先,您需…...

SpringCloud学习笔记(二)_Eureka注册中心

一、Eureka简介 Eureka是一项基于REST&#xff08;代表性状态转移&#xff09;的服务&#xff0c;主要在AWS云中用于定位服务&#xff0c;以实现负载均衡和中间层服务器的故障转移。我们称此服务为Eureka Server。Eureka还带有一个基于Java的客户端组件Eureka Client&#xff…...

spark的eventLog日志分析

查找满足指定条件的app_id查询条件: 表名、时间、节点名时间限定: 最好适当放大, 不知道什么原因有点不准eventLog的存放路径: spark.history.fs.logDirectory 1. spark-sql 先限定时间段;数据是逐行读入的, 但 app_id要按整个文件过滤, 按每个条件打标;按app_id粒度聚合, 查…...

探究Java spring中jdk代理和cglib代理!

面对新鲜事物&#xff0c;我们要先了解在去探索事物的本质-默 目录 一.介绍二者代理模式 1.1.Jdk代理模式 1.2cglib代理模式 1.3二者区别 1.3.1有无接口 1.3.2灵活性 1.4对于两种代理模式的总结 1.4.1jdk代理模式 1.4.2cglib代理模式 二.两种代理模式应用场景 2.1jd…...

反转链表(C++)

1、迭代法的一种写法 ListNode* reverse_linkList(ListNode* head){if(head nullptr || head->next nullptr) return head;ListNode* begin nullptr;ListNode* mid head;ListNode* end head->next;while(true){mid->next begin;if(end nullptr){break;}begin …...

适配器模式:让不兼容的接口协同工作

在面向对象设计中&#xff0c;适配器模式是一种常见的结构型设计模式。它允许将不兼容的接口转换成客户端所期望的另一个接口&#xff0c;从而使不同的类协同工作。适配器模式的主要目的是解决不同接口之间的兼容性问题&#xff0c;同时也提高了代码的可重用性和灵活性。 问题…...

【1day】复现Milesight-VPNserver.js 任意文件读取漏洞

目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 Milesight路由器-VPN是由Milesight Technology Co., Ltd.开发的一种集成了VPN功能的路由器产品。它旨在为用户提供安全、可靠的远程访问和连接解决方案。Milesight-VPNserver.js存在任意文件读取…...

前端代码规范

1 husky husky用于绑定git hooks&#xff0c;在指定时机执行想要的命令 {"husky": {"hooks": {"pre-commit": "lint-staged" }} }需要手动修改.husky文件内容&#xff1a; . "$(dirname -- "$0")/_/husky.sh"n…...

Java接入文心一言

文章目录 文心一言应用创建接口对接接口文档代码示例依赖 常量类实体类 结束语 文心一言应用创建 首先需要先申请文心千帆大模型&#xff0c;申请地址&#xff1a;文心一言 (baidu.com)&#xff0c;点击加入体验&#xff0c;等通过审核之后就可以进入文心千帆大模型后台进行应…...

信息管理系统三级等保的一些要求

一、前言 在做一些互联网系统或面向互联网的系统时&#xff0c;需要进行备案&#xff0c;需要满足网络信息安全维护规章及有关规章制度要求&#xff0c;才能发布到互联网。所以在做系统的需求分析时&#xff0c;往往需要把信息管理系统三级等保的需求加上&#xff0c;方便开发…...

第六届“蓝帽杯”电子取证模块(初赛)解析+全资源一次性分享

前言:资源一次性分享 手机+电脑+exe+内存四个模块,我自己在网上也找了很久,才把资源找齐全,题目我也整理在这里,方便大家训练。 目录...

《Go 语言第一课》课程学习笔记(九)

常量&#xff1a;Go 在“常量”设计上的创新有哪些&#xff1f; Go 语言在常量方面的创新包括下面这几点&#xff1a; 支持无类型常量&#xff1b;支持隐式自动转型&#xff1b;可用于实现枚举。 常量 Go 语言的常量是一种在源码编译期间被创建的语法元素。这是在说这个元素…...

docker 安装nginx 和 elasticsearch ik 自定义分词

1、切换到/mydata 文件夹 创建 nginx 目录 mkdir nginx 2、运行 docker run --name nginx -p 80:80 -d nginx:1.22.0 3、复制docker 里面的nginx配置到 外面的nginx/conf 下面 docker cp nginx:/etc/nginx /mydata/nginx 4、把 /mydata/nginx下面的nginx 改…...

谈谈收音机的发展

目录 1.什么是收音机 2.收音机的工作原理 3.收音机的发展历史 4.收音机的历史作用 1.什么是收音机 收音机是一种电子设备&#xff0c;用于接收和播放广播电台的无线电信号。它是人们获取各种音乐、新闻、娱乐和其他广播节目的常用设备。 收音机通常由以下几个部分组成&…...

QTreeWidget——信号处理

文章目录 基本属性信号一、信号种类二、信号测试1、currentItemChanged、itemCollapsed、itemExpanded三个信号的测试2、itemActivated信号3、 itemChanged信号4、其余信号的测试代码&#xff08;包含以上代码&#xff09; 基本属性 信号 一、信号种类 //当前项发生变化时触…...

【Java从入门到精通|1】从特点到第一个Hello World程序

写在前面 在计算机编程领域&#xff0c;Java是一门广泛应用的高级编程语言。它以其强大的跨平台性能、丰富的库和生态系统以及易于学习的语法而备受开发者欢迎。本文将引导您逐步了解Java的特点、如何安装和配置开发环境&#xff0c;以及如何编写您的第一个Java程序。 一、Java…...

JAVA 读取jar包中excel模板

1、在resources路径下&#xff0c;新建report文件夹&#xff0c;放入excel模板 2、配置文件中的目录&#xff0c;分隔符使用 / template: /report/报告模板V1.0.xlsx3、使用getResourceAsStream()读取 XSSFWorkbook wb;try {//需要以/开始InputStream resourceAsStream this.g…...

解决方案:fatal error: openssl/bio.h: 没有那个文件或目录

出现报错如下&#xff1a; 出现该错误的原因有两个&#xff1a; 没有安装openssl或者libssl-dev库Libssl-dev版本过高&#xff0c;需要降级 一. 没有安装openssl或者libssl-dev库 使用指令安装openssl&#xff1a; 我的是已经安装完成了&#xff0c;所以再把libssl-dev的库也…...

【MySQL系列】ALTER语句详解,以及UPDATE,DELECT,TRUNCATE语句的使用+区别

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

c++关键字 =delete和=default

在C的类中&#xff0c;有四类特殊的成员函数&#xff1a;① 默认构造函数&#xff1b;② 拷贝构造函数&#xff1b;③ 拷贝赋值函数&#xff08;operator&#xff09;&#xff1b;④ 析构函数&#xff1b;它们控制着类的实例的创建、初始化、拷贝以及销毁。 &#xff08;1&…...

idea 左下角的Git(Version Control)中显示Local Changes窗口

打开Local Changes窗口来查看当前Git仓库的本地变更。 使用快捷键: - Windows: Alt9 - Mac: Cmd9 解决&#xff1a; &#xff08;1&#xff09;idea打开settings &#xff08;2&#xff09;点击Version Control窗口选项卡&#xff0c;选择Commit选项&#xff0c;对 Use.... in…...

.net老项目中Jquery访问webservice

.net老项目中Jquery访问webservice 1. xml类型返回 jQuery.ajax({type: "POST",async: false,url: "WebService/Evection.asmx/GetCheckUpApplyEForm",contentType: "application/json",data: "{lngEvectionID:" eformSNOriginal &…...

SpringBoot项目集成ElasticSearch服务

本文已收录于专栏 《中间件合集》 目录 版本介绍背景介绍优势说明集成过程1.引入依赖2.添加配置文件3.初始化 示例说明代码结果 总结提升 版本介绍 Spring boot的版本是&#xff1a; 2.3.12   ElasticSearch的版本是&#xff1a;7.6.2 背景介绍 在我们的项目中经常会遇到对于…...

2023年网络安全比赛--综合渗透测试(超详细)

一、竞赛时间 180分钟 共计3小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 1.扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23); 2.扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4); 3.靶机网站存在目录遍历漏洞,请将…...

一次网络不通“争吵“引发的思考

作者&#xff1a; 郑明泉、余凯 为啥争吵&#xff0c;吵什么&#xff1f; “你到底在说什么啊&#xff0c;我K8s的ecs节点要访问clb的地址不通和本地网卡有什么关系…” 气愤语气都从电话那头传了过来&#xff0c;这时电话两端都沉默了。过了好一会传来地铁小姐姐甜美的播报声…...

【使用Node.js搭建自己的HTTP服务器】

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…...

回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现PSO-RF粒子群优化算法优化随机森林算法多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果…...

● 392.判断子序列 ● 115.不同的子序列

● 392.判断子序列 class Solution { public:bool isSubsequence(string s, string t) {int len1s.size(),len2t.size();int res0;vector<vector<int>>dp(s.size()1,vector<int>(t.size()1,false));for(int i1;i<s.size();i){for(int j1;j<len2;j){if(…...

查询网站用什么做的/查看浏览过的历史记录百度

本文将带你了解Android应用开发arcgis for android 实现绘图功能&#xff0c;希望本文对大家学Android有所帮助。<一&#xff1a;实现绘图功能的思路1&#xff1a;首先需要一个点击地图的一个监听函数&#xff0c;可以实现点击地图画点、线、面。arcgis提供一个MapOnTouchLi…...

tklink的登录做网站/软文营销的步骤

开头 开发上线的版本能保证不存在Bug么&#xff1f; 修复后的版本能保证用户都及时更新么&#xff1f; 如何最大化减少线上Bug对业务的影响&#xff1f; 热修复技术帮助我们解决了很多问题&#xff0c;带来的优势不言而喻。不知道各位对于热修复技术掌握如何&#xff1f; 面试…...

济南网站建设jnjy8/长沙优化网站哪家公司好

文章目录Spring Boot1.概念2. SpringBoot项目的创建3. SpringBoot网页版创建4. 启动SpringBootSpring Boot 1.概念 Spring 的诞生是为了简化 Java程序开发&#xff0c;而SpringBoot的诞生就是为了简化Spring程序开发的。也就是SpringBoot就是为了快速搭建Spring项目而诞生的。…...

wordpress验证ticket/酒店线上推广方案有哪些

深度剖析 Kubernetes 深度剖析 k8s 如何学习 Kubernetes &#xff1f;如何入门 Kubernetes&#xff1f; 为了帮帮初学者&#xff0c;2018 年 InfoQ 旗下&#xff08;就是你知道的那个 InfoQ 哇&#xff09;的极客时间&#xff0c;出了一份很有深度的专栏《深度剖析 Kubernetes》…...

wp标题 wordpress/百度上做优化

document.getElementById 根据 id 获取元素document.getElementsByClassName 根据 class 名获取元素类数组document.getElementsByTagName 根据标签名获取元素类数组document.querySelector 根据 css 选择器获取匹配的第一个元素document.querySelectorAll 根据 css 选择器获取…...

做网站的流程 优帮云/b站推广网站2024年不用下载

本文旨在如何快速在maven项目中配置logback日志框架&#xff0c;使日志即输出在控制台&#xff0c;又以log文件的形式输出到本地磁盘保存。1、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件。它当前分为下面下个模块&#xff1a;logback-core&#xff1a;其它两…...