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集群用于测试,不想部署复杂的k8s集群环境,这个时候我们就可以使用kind来部署一个k8s集群了,下面是使用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. 代码实现 题目链接:2871. Split Array Into Maximum Number of Subarrays 1. 解题思路 这一题实现上其实还是比较简单的,就是一个贪婪算法,主要就是思路上需要…...
Java基础---第十三篇
系列文章目录 文章目录 系列文章目录一、有数组了为什么还要搞个 ArrayList 呢?二、说说什么是 fail-fast?三、说说Hashtable 与 HashMap 的区别一、有数组了为什么还要搞个 ArrayList 呢? 通常我们在使用的时候,如果在不明确要插入多少数据的情况下,普通数组就很尴尬了,…...
Java 文档注释
Java 文档注释 目录 Java 文档注释 javadoc 标签 文档注释 javadoc输出什么 实例 Java只是三种注释方式。前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束。 说明注释允许你在程序中嵌入关于程序的信息。你可以使…...
【多媒体技术与实践】多媒体计算机系统概述
数码相机是利用___感受光信号, 使转换为电信号,再经模/数转换变成数字信号,存储在相机内部的存储器中。 选择一项: a. RGB b. OCR c. CCD d. MPEG 正确答案是:CCD 最基本的多媒体计算机是指安装了_部件的计算机。…...
DirectX 3D C++ 圆柱体的渲染(源代码)
作业内容 请勿抄袭 代码功能:渲染一个绕中心轴自转的圆柱体。要求该圆柱体高度为3.0,半径为0.5。 #include <windows.h> #include <d3d11.h> #include <d3dx11.h> #include <d3dcompiler.h> #include <xnamath.h> #incl…...
搭建前端框架
在终端进入web目录,然后创建vuecrud工程 创建工程并引入ElementUI和axios手把手教学>传送门:VueCLI脚手架搭建...
2310C++构造对象
原文 本文展示一个构造对象方式,用户无需显式调用构造器.对有参构造器类,该实现在构造改对象时传递默认值来构造. 当然用户也可指定(绑定)某个参数的值.实现思路参考boost-ext/di的实现.看下示例: 构 成员{整 x10; }; 构 成员1{整 x11; }; 类 例子1{ 公:例子1(成员 x,成员1 x…...
nginx多文件组织
背景: nginx的话,有时候,想部署多个配置,比如:使用不同的端口配置不同的web工程。 比如:8081部署:项目1的web页面。 8082部署:项目2的web页面。 1)nginx.conf worker_processes…...
扩容LVM卷导致lvm元数据丢失的恢复过程
一、问题描述 因某次MySQL binlog占用过高扩容时,是直接对云盘操作,而扩容直接操作了lvm卷而未操作云盘分区,并随后执行了扩容的partprobe,resize2fs卷等操作;最后,显示并未扩容成功,重启系统后…...
【MySQL教程】| (1-1) 2023MySQL-8.1.0 安装教程
文章目录 一、安装包下载二、安装配置1、解压安装包2、编写MySQL配置文件3、初始化MySQL数据库3、安装mysql服务并启动4、MySQL服务5、连接MySQL6、修改密码 三、配置环境变量四、防止mysql自启动拖慢开机时间 近日有粉丝问到mysql在win11的安装中遇到一些问题,应粉…...
数据大屏定时请求后端数据
需求: 因为大屏基本从上午展示到晚上,不会频繁去打开页面。 前端实现: 在Vue的created钩子函数中发送初次请求,并使用JavaScript中的setInterval函数来设置整点定时发送请求。以下是一个示例 <template><div><h1…...
数据结构--队列
一、队列是什么 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,队列是一种操作受限制的线性表。进行插入操作的端称为队尾&…...
Python绘图系统25:新增8种绘图函数
文章目录 常用绘图函数单选框的更改逻辑源代码 Python绘图系统: 前置源码: Python打造动态绘图系统📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制📈四 定制绘图风格 📈五 数据生成导…...
(二) gitblit用户使用教程
(一)gitblit安装教程 (二) gitblit用户使用教程 (三) gitblit管理员手册 目录 网页访问git客户端设置推送错误配置查看当前配置 日常使用仓库分组my profile修改上传代码简洁 网页访问 点击Advanced... 点击Accept the Risk and Contiue 初始用户名和密码都是admin,点击login…...
8.3Jmeter使用json提取器提取数组值并循环(循环控制器)遍历使用
Jmeter使用json提取器提取数组值并循环遍历使用 响应返回值例如: {"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、最简单的隐写 下载附件后,图片格式并不支持打开 根据题目提示&…...
MySql017——组合查询
一、UNION作用 可用UNION操作符来组合数条SQL查询。 二、UNION 使用规则 1、UNION的使用很简单。所需做的只是给出每条SELECT语句,在各条语句之间放上关键字UNION。2、UNION必须由两条或两条以上的SELECT语句组成,语句之间用关键字UNION分隔ÿ…...
【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){处理(前向&…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
