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

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

相关文章:

kind 安装 k8s 集群

在某些时候可能需要快速的部署一个k8s集群用于测试&#xff0c;不想部署复杂的k8s集群环境&#xff0c;这个时候我们就可以使用kind来部署一个k8s集群了&#xff0c;下面是使用kind部署的过程 一、安装单节点集群 1、下载kind二进制文件 [rootlocalhost knid]# curl -Lo ./kin…...

Leetcode 2871. Split Array Into Maximum Number of Subarrays

Leetcode 2871. Split Array Into Maximum Number of Subarrays 1. 解题思路2. 代码实现 题目链接&#xff1a;2871. Split Array Into Maximum Number of Subarrays 1. 解题思路 这一题实现上其实还是比较简单的&#xff0c;就是一个贪婪算法&#xff0c;主要就是思路上需要…...

Java基础---第十三篇

系列文章目录 文章目录 系列文章目录一、有数组了为什么还要搞个 ArrayList 呢?二、说说什么是 fail-fast?三、说说Hashtable 与 HashMap 的区别一、有数组了为什么还要搞个 ArrayList 呢? 通常我们在使用的时候,如果在不明确要插入多少数据的情况下,普通数组就很尴尬了,…...

Java 文档注释

Java 文档注释 目录 Java 文档注释 javadoc 标签 文档注释 javadoc输出什么 实例 Java只是三种注释方式。前两种分别是// 和/* */&#xff0c;第三种被称作说明注释&#xff0c;它以/** 开始&#xff0c;以 */结束。 说明注释允许你在程序中嵌入关于程序的信息。你可以使…...

【多媒体技术与实践】多媒体计算机系统概述

数码相机是利用___感受光信号&#xff0c; 使转换为电信号&#xff0c;再经模/数转换变成数字信号&#xff0c;存储在相机内部的存储器中。 选择一项&#xff1a; a. RGB b. OCR c. CCD d. MPEG 正确答案是&#xff1a;CCD 最基本的多媒体计算机是指安装了_部件的计算机。…...

DirectX 3D C++ 圆柱体的渲染(源代码)

作业内容 请勿抄袭 代码功能&#xff1a;渲染一个绕中心轴自转的圆柱体。要求该圆柱体高度为3.0&#xff0c;半径为0.5。 #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dcompiler.h> #include <xnamath.h> #incl…...

搭建前端框架

在终端进入web目录&#xff0c;然后创建vuecrud工程 创建工程并引入ElementUI和axios手把手教学>传送门:VueCLI脚手架搭建...

2310C++构造对象

原文 本文展示一个构造对象方式,用户无需显式调用构造器.对有参构造器类,该实现在构造改对象时传递默认值来构造. 当然用户也可指定(绑定)某个参数的值.实现思路参考boost-ext/di的实现.看下示例: 构 成员{整 x10; }; 构 成员1{整 x11; }; 类 例子1{ 公:例子1(成员 x,成员1 x…...

nginx多文件组织

背景&#xff1a; nginx的话&#xff0c;有时候&#xff0c;想部署多个配置&#xff0c;比如&#xff1a;使用不同的端口配置不同的web工程。 比如&#xff1a;8081部署&#xff1a;项目1的web页面。 8082部署&#xff1a;项目2的web页面。 1)nginx.conf worker_processes…...

扩容LVM卷导致lvm元数据丢失的恢复过程

一、问题描述 因某次MySQL binlog占用过高扩容时&#xff0c;是直接对云盘操作&#xff0c;而扩容直接操作了lvm卷而未操作云盘分区&#xff0c;并随后执行了扩容的partprobe&#xff0c;resize2fs卷等操作&#xff1b;最后&#xff0c;显示并未扩容成功&#xff0c;重启系统后…...

【MySQL教程】| (1-1) 2023MySQL-8.1.0 安装教程

文章目录 一、安装包下载二、安装配置1、解压安装包2、编写MySQL配置文件3、初始化MySQL数据库3、安装mysql服务并启动4、MySQL服务5、连接MySQL6、修改密码 三、配置环境变量四、防止mysql自启动拖慢开机时间 近日有粉丝问到mysql在win11的安装中遇到一些问题&#xff0c;应粉…...

数据大屏定时请求后端数据

需求&#xff1a; 因为大屏基本从上午展示到晚上&#xff0c;不会频繁去打开页面。 前端实现&#xff1a; 在Vue的created钩子函数中发送初次请求&#xff0c;并使用JavaScript中的setInterval函数来设置整点定时发送请求。以下是一个示例 <template><div><h1…...

数据结构--队列

一、队列是什么 队列是一种特殊的线性表&#xff0c;特殊之处在于它只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;进行插入操作&#xff0c;队列是一种操作受限制的线性表。进行插入操作的端称为队尾&…...

Python绘图系统25:新增8种绘图函数

文章目录 常用绘图函数单选框的更改逻辑源代码 Python绘图系统&#xff1a; 前置源码&#xff1a; Python打造动态绘图系统&#x1f4c8;一 三维绘图系统 &#x1f4c8;二 多图绘制系统&#x1f4c8;三 坐 标 轴 定 制&#x1f4c8;四 定制绘图风格 &#x1f4c8;五 数据生成导…...

(二) gitblit用户使用教程

(一)gitblit安装教程 (二) gitblit用户使用教程 (三) gitblit管理员手册 目录 网页访问git客户端设置推送错误配置查看当前配置 日常使用仓库分组my profile修改上传代码简洁 网页访问 点击Advanced... 点击Accept the Risk and Contiue 初始用户名和密码都是admin,点击login…...

8.3Jmeter使用json提取器提取数组值并循环(循环控制器)遍历使用

Jmeter使用json提取器提取数组值并循环遍历使用 响应返回值例如&#xff1a; {"code":0,"data":{"totalCount":11,"pageSize":100,"totalPage":1,"currPage":1,"list":[{"structuredId":&q…...

SNERT预备队招新CTF体验赛-Misc(SWCTF)

目录 1、最简单的隐写 2、旋转我 3、is_here 4、zip伪加密 5、压缩包密码爆破 6、我就藏在照片里 7、所以我放弃了bk 8、套娃 9、来自银河的信号 10、Track_Me 11、勇师傅的奇思妙想 1、最简单的隐写 下载附件后&#xff0c;图片格式并不支持打开 根据题目提示&…...

MySql017——组合查询

一、UNION作用 可用UNION操作符来组合数条SQL查询。 二、UNION 使用规则 1、UNION的使用很简单。所需做的只是给出每条SELECT语句&#xff0c;在各条语句之间放上关键字UNION。2、UNION必须由两条或两条以上的SELECT语句组成&#xff0c;语句之间用关键字UNION分隔&#xff…...

【0224】源码分析RelFileNode对smgr访问磁盘表文件的重要性(2)

1. RelFileNode的角色 RelFileNode 是一个结构体数据类型,声明于relfilenode.h(src\include\storage )头文件中,该数据类型十分重要,因为它 “提供所有我们需要知道的物理访问关系表的信息。” smgr要访问磁盘上面的数据表文件,则需要此RelFileNode提供必要信息。 可以说…...

2310C++λ中完美转发

原文 C11里面就引入了完美转发概念,通过它,可按参数实际类型转发参数. 元<型名 T>空 处理(T&t){输出<<"左值\n";} 元<型名 T>空 处理(T&&t){输出<<"右值\n";} 元<型名 T>空 测试转发(T&&t){处理(前向&…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...