使用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博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/85718.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂设备管理系统:是什么、谁需要、怎样选

工业的迅猛发展让人类向前迈出了史无前例的步伐&#xff0c;工业4.0将我们又带入了一个信息化技术促进工业变革的新时代——智能化时代。一台台机器设备是工业发展史上必不可少的参与者&#xff0c;但企业对设备的管理存在种种痛点&#xff0c;比如生产设备多&#xff0c;但备件…

无涯教程-PHP - 简介

PHP 7是最期待的&#xff0c;它是PHP编程语言的主要功能版本。 PHP 7于2015年12月3日发布。本教程将以简单直观的方式教您PHP 7的新功能及其用法。 无涯教程假设您已经了解旧版本的PHP&#xff0c;现在就可以开始学习PHP 7的新功能。 使用下面的示例- <html><head&…

node安装node-sass依赖失败(版本不一致)

1.官网对应node版本 https://www.npmjs.com/package/node-sass2.node-sass版本对应表

WPS右键新建没有docx pptx xlsx 修复

解决wps右键没有新建文档的问题 右键没有新建PPT和Excel 1 wps自带的修复直接修复没有用 以上不管咋修复都没用 2 先编辑注册表 找到 HKEY_CLASSES_ROOT CTRLF搜文件扩展名 pptx docx xlsx 新建字符串 三种扩展名都一样操作 注册表编辑之后再次使用wps修复 注册组件&am…

使用Netplan建立Linux网络,简便的声明性方法

除了周围网络环境的复杂性之外&#xff0c;由于使用的技术堆栈和工具范围很广&#xff0c;Linux 网络可能会令人困惑。网桥、绑定、VRF 或路由的配置可以通过编程、声明、手动或自动化方式使用 ifupdown、ifupdown2、ifupdown-ng、iproute2、NetworkManager、systemd-networkd …

u盘数据丢失但占内存如何恢复?不要着急,这里有拯救方案

U盘数据丢失但占内存如何恢复&#xff1f;数据丢失是一种让人非常头疼的问题&#xff0c;尤其是当我们的U盘数据丢失了&#xff0c;但内存仍然被占用时&#xff0c;更令人困惑和焦虑。然而&#xff0c;不要慌张&#xff01;在本文中&#xff0c;将为大家介绍一些有效的方法来恢…

Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)

背景 在Apache Hudi初探(一)(与flink的结合)中&#xff0c;我们提到了Pipelines.hoodieStreamWrite 写hudi文件,这个操作真正写hudi是在Pipelines.hoodieStreamWrite方法下的transform(opName("stream_write", conf), TypeInformation.of(Object.class), operatorFa…

Vue的Ajax请求-axios、前后端分离练习

Vue的Ajax请求 axios简介 ​ Axios&#xff0c;是Web数据交互方式&#xff0c;是一个基于promise [5]的网络请求库&#xff0c;作用于node.js和浏览器中&#xff0c;它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在…

手写模拟SpringBoot核心流程(一):实现极简一个SpringBoot——模拟SpringBoot启动过程

前言 Spring Boot 是一个开源的框架&#xff0c;用于简化 Spring 应用程序的开发和部署。它建立在 Spring Framework 的基础上&#xff0c;内置了web服务器——tomcat和jetty&#xff0c;使得 Spring 应用的构建变得更加快速、简单和可维护。 本文通过实现一个SpringBoot&…

HTTP连接管理

基础知识&#xff1a;非持久连接 HTTP初始时1.0版本在浏览器每一次向服务器请求完资源都会立即断开TCP连接&#xff0c;如果想要请求多个资源&#xff0c;就必须建立多个连接&#xff0c;这就导致了服务端和客户端维护连接的开销。 例如&#xff1a;一个网页中包含文字资源也包…

第一百三十三天学习记录:数据结构与算法基础:串、数组和广义表(串Ⅱ)(王卓教学视频)

注&#xff1a;在之前学习C语言的时候&#xff0c;了解过这一块。其中对KMP算法进行了自学&#xff0c;前面的学习记录也有提到过。这一次根据视频教学再系统性的学习学习一次。 串的模式匹配算法 KMP算法

[oneAPI] 基于BERT预训练模型的SQuAD问答任务

[oneAPI] 基于BERT预训练模型的SQuAD问答任务 Intel Optimization for PyTorch and Intel DevCloud for oneAPI基于BERT预训练模型的SQuAD问答任务语料介绍数据下载构建 模型 结果参考资料 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Int…

GPT-4一纸重洗:从97.6%降至2.4%的巨大挑战

斯坦福大学和加州大学伯克利分校合作进行的一项 “How Is ChatGPTs Behavior Changing Over Time?” 研究表明&#xff0c;随着时间的推移&#xff0c;GPT-4 的响应能力非但没有提高&#xff0c;反而随着语言模型的进一步更新而变得更糟糕。 研究小组评估了 2023 年 3 月和 20…

Django视图-HttpRequest请求对象和HttpResponse响应对象

文章目录 HttpRequestHttpResponse实践request对象的属性和方法响应 def index(request): 这个request其实就是内部已经封装好的Http请求HttpRequest&#xff0c;它是一个请求对象Django中的视图主要用来接受Web请求&#xff0c;并做出响应。 视图的本质就是一个Python中的函数…

Eduma主题 - 线上教育WordPress主题/网站

Eduma主题 – 线上教育WordPress主题是为教育网站、LMS、培训中心、课程中心、学院、大学、学校、幼儿园而制作的。基于我们使用以前的主题eLearning WP构建WordPress LMS的经验&#xff0c;Education WP是下一代&#xff0c;也是围绕WordPress最好的教育主题之一&#xff0c;它…

Qt下拉菜单

1&#xff0c;QComboBox 2&#xff0c;setMenu()---设置下拉菜单 AI对话未来丨智能写作对话: setMenu()是QWidget类的一个成员函数&#xff0c;在Qt中用于将一个菜单作为一个控件的下拉菜单设置。具体来说&#xff0c;它会把相应的菜单对象与该控件关联&#xff0c;并在控件上…

PySpark-核心编程

2. PySpark——RDD编程入门 文章目录 2. PySpark——RDD编程入门2.1 程序执行入口SparkContext对象2.2 RDD的创建2.2.1 并行化创建2.2.2 获取RDD分区数2.2.3 读取文件创建 2.3 RDD算子2.4 常用Transformation算子2.4.1 map算子2.4.2 flatMap算子2.4.3 reduceByKey算子2.4.4 Wor…

(一)idea连接GitHub的全部流程(注册GitHub、idea集成GitHub、增加合作伙伴、跨团队合作、分支操作)

&#xff08;二&#xff09;Git在公司中团队内合作和跨团队合作和分支操作的全部流程&#xff08;一篇就够&#xff09;https://blog.csdn.net/m0_65992672/article/details/132336481 4.1、简介 Git是一个免费的、开源的*分布式**版本控制**系统*&#xff0c;可以快速高效地…

mongodb 数据库管理(数据库、集合、文档)

目录 一、数据库操作 1、创建数据库 2、删除数据库 二、集合操作 1、创建集合 2、删除集合 三、文档操作 1、创建文档 2、 插入文档 3、查看文档 4、更新文档 1&#xff09;update() 方法 2&#xff09;replace() 方法 一、数据库操作 1、创建数据库 创建数据库…

hive表的全关联full join用法

背景&#xff1a;实际开发中需要用到全关联的用法&#xff0c;之前没遇到过&#xff0c;现在记录一下。需求是找到两张表的并集。 全关联的解释如下&#xff1b; 下面建两张表进行测试 test_a表的数据如下 test_b表的数据如下&#xff1b; 写第一个full join 的SQL进行查询…
最新文章