kind 安装 k8s 集群

在某些时候可能需要快速的部署一个k8s集群用于测试,不想部署复杂的k8s集群环境,这个时候我们就可以使用kind来部署一个k8s集群了,下面是使用kind部署的过程
一、安装单节点集群
1、下载kind二进制文件

[root@localhost knid]# curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100    97  100    97    0     0    115      0 --:--:-- --:--:-- --:--:--   1160     0    0     0    0     0      0      0 --:--:--  0:00:02 --:--:--     0
100 6766k  100 6766k    0     0   793k      0  0:00:08  0:00:08 --:--:-- 1259k

2、给下载好的kind添加可执行权限

[root@localhost knid]# chmod +x kind

3、将kind命令放在/usr/local/bin/kind

[root@localhost knid]# cp kind /usr/local/bin/kind

4、查看kind的版本

[root@localhost knid]# kind --version
kind version 0.17.0

5、使用kind创建集群

[root@localhost knid]# kind create cluster     # 使用此命令创建
Creating cluster "kind" ...✓ Ensuring node image (kindest/node:v1.25.3) 🖼 ✓ 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-kindThanks for using kind! 😊

说明:上面我们已经安装好了 kind,接下来就可以使用 kind 搭建 k8s 集群了
5.1、指定集群名称

# 使用 --name 指定名称
[root@localhost ~]# kind create cluster --name huhu
Creating cluster "huhu" ...✓ Ensuring node image (kindest/node:v1.25.3) 🖼 ✓ Preparing nodes 📦  ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 
Set kubectl context to "kind-huhu"
You can now use your cluster with:kubectl cluster-info --context kind-huhuThanks for using kind! 😊

6、默认情况下,如果未设置 $KUBECONFIG 环境变量,则集群访问配置存储在 ${HOME}/.kube/config 中

[root@localhost knid]# ll ${HOME}/.kube/config
-rw-------. 1 root root 5582 9月  25 21:55 /root/.kube/config

7、查看kind是否启动完成

[root@localhost knid]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                       NAMES
d9fa3a93f629        kindest/node:v1.25.3   "/usr/local/bin/entr…"   4 minutes ago       Up 3 minutes        127.0.0.1:42737->6443/tcp   kind-control-plane

8、查看集群

[root@localhost ~]# kind get clusters
kind
huhu

9、查看集群信息
9.1、查看集群我们需要进入到 docker 容器里面

# 查看 容器 id
[root@localhost ~]# docker ps |grep kind
d9fa3a93f629        kindest/node:v1.25.3   "/usr/local/bin/entr…"   12 hours ago        Up 12 hours         127.0.0.1:42737->6443/tcp   kind-control-plane# 进入到 docker 容器里面
[root@localhost ~]# docker exec -it d9fa3a93f629 /bin/bash
# 查看节点,可以看到,是单节点的
root@kind-control-plane:/# kubectl get nodes
NAME                 STATUS   ROLES           AGE   VERSION
kind-control-plane   Ready    control-plane   12h   v1.25.3
# 查看 pod
root@kind-control-plane:/# kubectl get pod -n kube-system
NAME                                         READY   STATUS    RESTARTS   AGE
coredns-565d847f94-7z8fc                     1/1     Running   0          12h
coredns-565d847f94-vtlbl                     1/1     Running   0          12h
etcd-kind-control-plane                      1/1     Running   0          12h
kindnet-69kkt                                1/1     Running   0          12h
kube-apiserver-kind-control-plane            1/1     Running   0          12h
kube-controller-manager-kind-control-plane   1/1     Running   0          12h
kube-proxy-stbwq                             1/1     Running   0          12h
kube-scheduler-kind-control-plane            1/1     Running   0          12h

10、删除集群
10.1、创建了一个集群使用​​kind create cluster​​那么删除同样简单,使用

# 删除集群,--name如果未指定标志,则 kind 将使用默认集群上下文名称kind并删除该集群
[root@localhost ~]# kind delete cluster

11、删除指定名称的集群

# 删除名称为 huhu 的集群
[root@localhost ~]# kind delete cluster --name=huhu
Deleting cluster "huhu" ...

12、使用如下命令创建nginx应用

[root@localhost ~]# kubectl run nginx-test --image=nginx:latest

13、查看nginx应用是否部署成功

root@kind-control-plane:/# kubectl get pod 
NAME                    READY   STATUS    RESTARTS   AGE
nginx-test              1/1     Running   0          11h

二、安装多节点集群
上面我们创建的是单节点的集群,默认安装的集群只部署了一个控制节点,如果需要部署多节点集群,我们可以通过配置文件的方式来创建多个容器。这样就可以达到模拟多个节点的目的,并以这些节点来构建一个多节点的 kubernetes 集群

创建多节点 kubernetes 集群配置文件

kind 在创建集群的时候,支持通过 --config 参数传递配置文件给 kind,配置文件可修改的内容主要有 role 和 节点使用的镜像
1、创建一个 multi-node.yaml 的文件,内容如下

[root@localhost kind]# cat multi-node.yaml
kind: Cluster
# 一共两个节点,一个主节点,一个从节点
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane  # 主节点
- role: worker  # 从节点

2、配置文件创建完成后,就可以使用下面的命令来完成多节点 Kubernetes 集群搭建

# --config 指定 yaml 文件的路径
[root@localhost kind]# kind create cluster --config=multi-node.yaml --name=my-cluster1
Creating cluster "my-cluster1" ...✓ Ensuring node image (kindest/node:v1.25.3) 🖼 
⢄⡱ Preparing nodes 📦 📦  ✓ Preparing nodes 📦 📦  ✓ Writing configuration 📜 ✓ Starting control-plane 🕹️ ✓ Installing CNI 🔌 ✓ Installing StorageClass 💾 ✓ Joining worker nodes 🚜 
Set kubectl context to "kind-my-cluster1"
You can now use your cluster with:kubectl cluster-info --context kind-my-cluster1Thanks for using kind! 😊

3、使用 docker ps 就可以看到有两个容器在运行

[root@localhost kind]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                       NAMES
ece0ed3760bb        kindest/node:v1.25.3   "/usr/local/bin/entr…"   14 minutes ago      Up 13 minutes       127.0.0.1:38929->6443/tcp   my-cluster1-control-plane
01a17747a401        kindest/node:v1.25.3   "/usr/local/bin/entr…"   14 minutes ago      Up 13 minutes                                   my-cluster1-worker

4、进入到容器中,查看节点信息

[root@localhost kind]# docker exec -it ece0ed3760bb /bin/bash
root@my-cluster1-control-plane:/# kubectl get nodes
NAME                        STATUS   ROLES           AGE   VERSION
my-cluster1-control-plane   Ready    control-plane   14m   v1.25.3
my-cluster1-worker          Ready    <none>          13m   v1.25.3
# 成功创建了一个master节点和一个node节点

5、删除集群

# 执行后,将会删除两个 docker 容器 
[root@localhost kind]# kind delete cluster --name=my-cluster1[root@localhost kind]# docker ps | grep kind

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统

. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程管理的提升提出了更高的要求。 二、企业通过数字化转型&#xff0c;不仅有利于优化业务流程、提升经营管…

LLM各层参数详细分析(以LLaMA为例)

网上大多分析LLM参数的文章都比较粗粒度&#xff0c;对于LLM的精确部署不太友好&#xff0c;在这里记录一下分析LLM参数的过程。 首先看QKV。先上transformer原文 也就是说&#xff0c;当h&#xff08;heads&#xff09; 1时&#xff0c;在默认情况下&#xff0c; W i Q W_i^…

电商项目高级篇-02 elasticsearch-下

电商项目高级篇-02 elasticsearch-下 4.2、QueryDSL返回指定字段 4.2、QueryDSL 返回指定字段 返回单个字段 GET bank/_search {"query": {"match_all": {}}, "sort": [{"balance": {"order": "desc"}}], &quo…

详解yolov1理论 代码

目标检测要解决的3大问题&#xff1a; 1、有没有&#xff1f; 图片中是否有要检测的物体&#xff1f;&#xff08;检测物体&#xff0c;判定前景背景&#xff09; 2、是什么&#xff1f; 这些物体分别是什么&#xff1f;&#xff08;检测到的物体是什么&#xff09; 3、在…

【RV1103】RTL8723bs (SD卡形状模块)驱动开发

文章目录 前言硬件分析Luckfox Pico的SD卡接口硬件原理图LicheePi zero WiFiBT模块总结 正文Kernel WiFi驱动支持Kernel 设备树支持修改一&#xff1a;修改二&#xff1a; SDK全局配置支持 wifi全局编译脚本支持编译逻辑拷贝rtl8723bs的固件到文件系统的固定目录里面去 上电后手…

Learn Prompt- Midjourney案例:Logo设计

Logo设计是一个充满挑战的任务&#xff0c;因为Logo是品牌重要价值的浓缩。 快速开始​ 直接使用logo design for...来获取灵感。 备注 图像中生成文字在Midjourney中的效果还不是很好&#xff0c;但你可以用Canva编辑图片并替换自己的文字。 在提示中使用那些擅长你所寻找的…

Spring整合RabbitMQ——生产者(利用配置类)

1.生产者配置步骤 2.引入依赖 3.编写配置 配置RabbitMQ的基本信息&#xff0c;用来创建连接工厂的 编写启动类 编写配置类 4. 编写测试类

idea没有maven工具栏解决方法

背景&#xff1a;接手的一些旧项目&#xff0c;有pom文件&#xff0c;但是用idea打开的时候&#xff0c;没有认为是maven文件&#xff0c;所以没有maven工具栏&#xff0c;不能进行重新加载pom文件中的依赖。 解决方法&#xff1a;选中pom.xml文件&#xff0c;右键 选择添加为…

Stm32_标准库_呼吸灯_按键控制

Stm32按键和输出差不多 PA1为LED供给正电&#xff0c;PB5放置按键&#xff0c;按键一端接PB5,另一端接负极 void Key_Init(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //APB2总线连接着GPIOBGPIO_InitStructur.GPIO_Mode GPIO_Mode_IPU;GPIO_InitStructur.…

24. 图论 - 图的表示种类

Hi,你好。我是茶桁。 之前的一节课中,我们了解了图的来由和构成,简单的理解了一下图的一些相关概念。那么这节课,我们要了解一下图的表示,种类。相应的,我们中间需要穿插一些新的知识点用于更好的去理解图,比如说邻接矩阵。 图的表示 我们一般用什么样的形式来表示图…

http基础教程(超详细)

HTTP HTTP 一 、基础概念 请求和响应报文URL 二、HTTP 方法 GETHEADPOSTPUTPATCHDELETEOPTIONSCONNECTTRACE 三、HTTP 状态码 1XX 信息2XX 成功3XX 重定向4XX 客户端错误5XX 服务器错误 四、HTTP 首部 通用首部字段请求首部字段响应首部字段实体首部字段 五、具体应用 连接管理…

使用 Python 函数callable和isinstance的意义

一、说明 在这篇博客中&#xff0c;我们将探讨两个python函数&#xff1a;1 callable 中的函数及其有趣的应用程序。该callable函数用于检查对象是否可调用&#xff0c;这意味着它可以作为函数调用。2 isinstance这个内置函数允许我们比较两种不同的数据类型并确定它们是否相…

Flink--6、输出算子(连接到外部系统、文件、kafka、MySQL、自定义Sink)

星光下的赶路人star的个人主页 世间真正温煦的春色&#xff0c;都熨帖着大地&#xff0c;潜伏在深谷 文章目录 1、输出算子&#xff08;Sink&#xff09;1.1 连接到外部系统1.2 输出到文件1.3 输出到Kafka1.4 输出到MySQL&#xff08;JDBC&#xff09;1.4 自定义Sink输出 1、输…

[密码学入门]仿射密码(Affine)

加密算法y(axb)mod N 解密算法x*(y-b)mod N(此处的为a关于N的乘法逆元&#xff0c;不是幂的概念&#xff09; 如何求&#xff0c;涉及的知识挺多&#xff0c;还没想好怎么写&#xff0c;丢番图方程&#xff0c;贝祖定理&#xff08;又译裴蜀定理&#xff09;&#xff0c;扩展欧…

IO流————

一、字符流 前面我们学习了字节流,使用字节流可以读取文件中的字节数据。但是如果文件中有中文,使用字节流来读取,就有可能读到半个汉字的情况,这样会导致乱码。虽然使用读取全部字节的方法不会出现乱码,但是如果文件过大又不太合适。 所以Java专门为我们提供了另外一种…

opencv: 解决保存视频失败的问题

摘要&#xff1a;opencv能读取视频&#xff0c;但保存视频时报错。 一、首先要确保已经下载了openh264.dll文件&#xff0c;否则保存的视频无法打开&#xff0c;详细可以浏览这个&#xff1a;opencv&#xff1a;保存视频。 二、保存视频时出现一下问题&#xff1a; OpenCV:…

vue_Delete `␍`eslint(prettier/prettier)

Delete ␍eslint(prettier/prettier) 错误的解决方案 问题背景 在Windows笔记本上新拉完代码&#xff0c;在执行pre-commit时&#xff0c;出现如下错误&#xff1a; Delete ␍eslint(prettier/prettier)问题根源 罪魁祸首是git的一个配置属性&#xff1a;core.autocrlf 由于…

【空间-光谱联合注意网络:多时相遥感图像】

A Spatial–Spectral Joint Attention Network for Change Detection in Multispectral Imagery &#xff08;一种用于多光谱图像变化检测的空间-光谱联合注意网络&#xff09; 变化检测是通过比较双时相图像来确定和评估变化&#xff0c;这是遥感领域的一项具有挑战性的任务…

Oracle VM VirtualBox安装并下载安装CentOS7

Oracle VM VirtualBox安装并下载安装CentOS7 Oracle VM VirtualBox下载CentOS创建虚拟机 Oracle VM VirtualBox VM下载链接 https://www.oracle.com/cn/virtualization/virtualbox/ 点击链接直接下载就行&#xff0c;下载完默认安装或者更改一下安装目录。 下载CentOS http://…

快速排序与冒泡排序以及代码

快速排序 快速排序&#xff08;Quicksort&#xff09;是一种常用的排序算法&#xff0c;它基于分治的思想。 时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 空间复杂度&#xff1a;O&#xff08;logn&#xff09; 快速排序的基本思想如下&#xff1a; 选择一个元素…