环境安装篇 之 Kind 搭建 kubernetes 测试集群
云原生学习路线导航页(持续更新中)
本文是 环境安装 系列文章,介绍 使用Kind工具 快速安装 kubernetes 测试集群的详细步骤
1.Kind简介
- Kind 是一个使用 Docker 容器“节点”运行本地 Kubernetes 集群的工具。
- Kind 主要用于测试kubernetes本身,但也可用于本地开发或 CI。
2.Kind安装kubernetes集群
2.1.确保已经安装了go环境
# 创建gopath目录
$ mkdir /root/go
$ cd /root/go# 获取go安装包
$ wget https://go.dev/dl/go1.22.1.linux-amd64.tar.gz# 解压并加入/usr/local目录
$ tar -C /usr/local -zxf go1.22.1.linux-amd64.tar.gz# 导出go环境变量
$ vim /# 在文件最后加上下面这些export GOROOT=/usr/local/goexport GOPATH=/root/goexport GOPROXY=https://goproxy.cn,directexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin# 刷新环境变量
$ source /etc/profile# 查看go版本,检查是否安装成功
$ go version
2.2.确保已经安装了docker
- 没有安装docker的,执行命令安装
# 卸载旧版本docker $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine# 安装依赖包 $ sudo yum install -y yum-utils# 添加 yum 软件源 $ sudo yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo $ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo# 更新 yum 软件源缓存,并安装 docker-ce $ sudo yum install docker-ce docker-ce-cli containerd.io# 使用脚本自动安装 $ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun# 启动docker $ sudo systemctl enable docker $ sudo systemctl start docker# 如果非root用户,用下面的命令加入docker组 $ sudo groupadd docker $ sudo usermod -aG docker $USER# 测试 Docker 是否安装正确,有下面的输出则安装成功 $ docker run --rm hello-worldUnable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 Status: Downloaded newer image for hello-world:latestHello from Docker! This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps:1. The Docker client contacted the Docker daemon.2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)3. The Docker daemon created a new container from that image which runs theexecutable that produces the output you are currently reading.4. The Docker daemon streamed that output to the Docker client, which sent itto your terminal.To try something more ambitious, you can run an Ubuntu container with:$ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID:https://hub.docker.com/For more examples and ideas, visit:https://docs.docker.com/get-started/
2.3.安装kind
2.3.1.安装命令
```sh
# 安装kind工具,会安装到 $GOPATH/bin 目录下
$ go install sigs.k8s.io/kind@v0.20.0# 验证kind是否安装成功
$ kind version# 安装集群,有下面的输出,说明安装成功
$ kind create cluster
Creating cluster "kind" ...✓ Ensuring node image (kindest/node:v1.27.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-kindHave a nice day! 👋
```
2.3.2.安装过程遇到cgroup报错
- 报错信息
$ kind create cluster ✓ Ensuring node image (kindest/node:v1.27.3) 🖼 ✗ Preparing nodes 📦 Deleted nodes: ["dev-control-plane"] ERROR: failed to create cluster: command "docker run --name dev-control-plane --hostname dev-control-plane --label io.x-k8s.kind.role=control-plane --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined --tmpfs /tmp --tmpfs /run --volume /var --volume /lib/modules:/lib/modules:ro -e KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER --detach --tty --label io.x-k8s.kind.cluster=dev --net kind --restart=on-failure:1 --init=false --cgroupns=private --volume /dev/mapper:/dev/mapper --publish=127.0.0.1:33059:6443/TCP -e KUBECONFIG=/etc/kubernetes/admin.conf kindest/node:v1.22.0" failed with error: exit status 125 Command Output: WARNING: Your kernel does not support cgroup namespaces. Cgroup namespace setting discarded. a416609b76ef8e1bf4fdac66c159a0f1396841464aec2c8cc6e667fc83be83fe docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: cgroup namespaces aren't enabled in the kernel: unknown. - 原因:内核版本太低,不支持cgroup
- 解决方法:对内核升级
#1 更新系统,确保所有安装的包都是最新的 $ sudo yum update#2安装 elrepo 仓库,该仓库提供了最新的稳定内核 $ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org $ sudo yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm#3 安装新的内核(例如,最新的稳定版本是 kernel-ml) $ sudo yum --enablerepo=elrepo-kernel install kernel-ml -y#4 更新GRUB引导菜单 $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg#5 修改默认引导顺序,使新内核成为默认引导 $ sudo grub2-set-default 0#6 重新启动系统,确认新内核成功安装并生效 $ sudo reboot
2.3.3.安装过程遇到 failed to init node with kubeadm 错误
- 错误信息
$ kind create cluster Creating cluster "kind" ...✓ Ensuring node image (kindest/node:v1.29.1) 🖼✓ Preparing nodes 📦✓ Writing configuration 📜✗ Starting control-plane 🕹️ Deleted nodes: ["kind-control-plane"] ERROR: failed to create cluster: failed to init node with kubeadm: command "docker exec --privileged kind-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 126 Command Output: cannot exec in a stopped state: unknown - 原因:kind版本太高或太低
- 我让大家安装的是 kind 1.20.0,按照步骤来不会有问题
- 解决方法:更换kind版本,多试几个版本
# 重新下载合适的kind版本,更改后面的版本号 $ go install sigs.k8s.io/kind@v0.20.0# 重新安装 $ kind create cluster
相关文章:
环境安装篇 之 Kind 搭建 kubernetes 测试集群
云原生学习路线导航页(持续更新中) 本文是 环境安装 系列文章,介绍 使用Kind工具 快速安装 kubernetes 测试集群的详细步骤 1.Kind简介 Kind 是一个使用 Docker 容器“节点”运行本地 Kubernetes 集群的工具。Kind 主要用于测试kubernetes本…...
每日五道java面试题之mybatis篇(四)
目录: 第一题. 映射器#{}和${}的区别第二题. 模糊查询like语句该怎么写?第三题. 在mapper中如何传递多个参数?第四题. Mybatis如何执行批量操作第五题 MyBatis框架适用场景 第一题. 映射器#{}和${}的区别 #{}是占位符,预编译处理;${}是拼接…...
camunda流程引擎的插件如何使用
camunda工作流引擎是一个开放的架构,除了流程引擎默认提供的功能外,开发者可以通过流程插件机制,对流程引擎功能进行扩展。即流程引擎插件是流程引擎配置的扩展。插件必须提供 ProcessEnginePlugin 接口的实现。 下面以全局任务事件监听器为…...
Vue打包问题汇总:legacy、runtime.js
问题一:Vue3.x的版本中build后dist文件中出现legacy的js文件 解决办法是添加兼容的浏览器 package.json "browserslist": ["> 1%","last 2 versions","not dead","not ie 11" ]参考 Vue3.x的版本中build后…...
挑战杯 车位识别车道线检测 - python opencv
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …...
c++面经
1. 僵尸进程 僵尸进程(Zombie Process)在操作系统中指的是那些已经执行完毕,但其父进程尚未对其进行善后处理(例如读取子进程的状态信息或者执行回收资源的操作)的进程。在Unix和类Unix系统࿰…...
js中副作用的消除还解决了并行计算带来的竞争问题,具体是如何解决的
在JavaScript中,副作用是指对外部环境产生的可观察的变化,例如修改全局变量、修改DOM元素等。副作用的存在可能导致代码的可维护性和可测试性下降,并且在并行计算中可能引发竞争问题。 不纯的函数有可能访问同一块资源,如果先后调…...
3/14/24数据结构、线性表
目录 数据结构 数据结构三要素 逻辑结构 存储结构 数据运算 时间复杂度 空间复杂度 线性表 线性表定义 静态分配 动态分配 线性表插入 线性表删除 十天的时间学完了C语言督学课程,最后终于是可以投入到408的科目学习当中。关于数据结构和算法的学习很多部…...
软件测试面试200问,面试看这就够了。。。
🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 Part1 1、你的测试职业发展是什么? 测试经验越多,测试能力越高。所以我…...
力扣● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇
● 583. 两个字符串的删除操作 注意审题: 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 删除最少的字符使两者相同,说明留下来的就是最大公共子序列。不要求…...
Git速成
文章目录 Git 分布式版本控制工具课程内容1. 前言1.1 什么是Git1.2 使用Git能做什么 2. Git概述2.1 Git简介2.2 Git下载与安装 3. Git代码托管服务3.1 常用的Git代码托管服务3.2 码云代码托管服务3.2.1 注册码云账号3.2.2 登录码云3.2.3 创建远程仓库3.2.4 邀请其他用户成为仓库…...
一文看懂softmax loss
文章目录 softmax loss1.softmax函数2.交叉熵损失函数3.softmax loss损失函数(重点)4.带有temperature参数的softmax loss参考 softmax loss 1.softmax函数 softmax函数是一种常用的激活函数,通常用于多分类任务中。给定一个向量࿰…...
用C语言链表实现图书管理
#include <stdio.h> #include <stdlib.h> #include <string.h> struct ListNode {int val;//编号char title[50];//书名float price;//价格struct ListNode* next; };// 在尾部插入节点 struct ListNode* insertAtTail(struct ListNode* head, int val,char …...
Hello,Spider!入门第一个爬虫程序
在各大编程语言中,初学者要学会编写的第一个简单程序一般就是“Hello, World!”,即通过程序来在屏幕上输出一行“Hello, World!”这样的文字,在Python中,只需一行代码就可以做到。我们把这第一个爬虫就称之为“HelloSpider”&…...
AI实景无人自动直播间怎么搭建?三步教你轻松使用
最近很多朋友看到AI自动直播带货玩法,也想开启自己的自动直播间,但还是有些问题比较担心,这种自动讲解、自动回复做带货的直播间是不是很麻烦? 实景无人自动直播 实际上这种直播间搭建相当简单便捷!今天跟着笔者&…...
wechaty微信机器人,当机器人被@时做出响应
https://wechaty.js.org/zh/docs/api/message?_highlightmessage if (await msg.mentionSelf()) {console.log(this message were mentioned me! [You were mentioned] tip ([有人我]的提示))await room.say(不要微信机器人)} 我开发的人工智能学习网站: https://…...
8.6 Springboot项目实战 Spring Cache注解方式使用Redis
文章目录 前言一、配置Spring Cache1. @EnableCaching2. 配置CacheManager3. application.properties配置二、使用注解缓存数据1. 使用**@Cacheable** 改造查询代码2. 使用**@CacheEvict** 改造更新代码前言 在上文中我们使用Redis缓存热点数据时,使用的是手写代码的方式,这…...
rust引用本地crate
我们可以动态引用crate,build时从crate.io下载,但可能因无法下载导致build失败。首次正常引用三方crate,build时自动下载的crate源码,我们将其拷贝到固定目录中; build后可在RustRover中按住Ctrl键,在crat…...
分布式(计算机算法)
目录 分布式计算 分布式编辑 分布式和集群 分布式和集群的应用场景 分布式应用场景 集群应用场景 哪种技术更优、更快、更好呢 性能 稳定性 以下概念来源于百度百科 分布式计算 分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息…...
CSS概念及入门
文章目录 1. CSS 概念及入门1.1. 简介1.2. 组成1.2.1. 选择器1.2.2. 属性 1.3. 区别 2. CSS 引入方式2.1. 行内样式2.1.1. 语法2.1.2. 特点 2.2. 内部样式2.2.1. 语法2.2.2. 特点 2.3. 外部样式2.3.1. 特点 2.4. 三种引入优先级 1. CSS 概念及入门 1.1. 简介 CSS 的全称为&am…...
2026年Java面试突围指南(附高频场景题+答案)
前言今年的面试比往年要难得多,各个互联网企业对于 Java 岗位的要求越来越多,也越来越高,主要是初级岗位已经趋近饱和,但高级岗位又相对来说缺乏,这类的人才偏少,因此作为 Java 开发人员,我们应…...
Android系统级证书安装:解决HTTPS抓包的SSLHandshakeException
1. 为什么系统级证书安装成了Android抓包的“最后一道墙”做Android逆向分析的朋友,大概率都经历过这个场景:Charles或Fiddler配好代理、手机连上Wi-Fi、HTTP流量哗哗地跑,可一打开目标App——空白页、网络错误、甚至直接闪退。点开App的设置…...
Android HTTPS抓包原理与HTTPCanary证书配置全解
1. 这不是“绕过”,而是理解Android HTTPS抓包的底层逻辑HTTPCanary 是 Android 平台上少有的、真正能稳定抓取 HTTPS 流量的本地代理工具。但几乎所有新手在首次使用时都会卡在同一个地方:明明安装了 HTTPCanary 自带的证书,App 依然拒绝建立…...
颠覆性GIF处理终极方案:Gifsicle深度解密
颠覆性GIF处理终极方案:Gifsicle深度解密 【免费下载链接】giflossy Merged into Gifsicle! 项目地址: https://gitcode.com/gh_mirrors/gi/giflossy 你是否曾为网站上的GIF动画加载缓慢而烦恼?是否在处理大量GIF素材时感到力不从心?今…...
机器学习如何提升GNSS定位精度:从信号分类到多传感器融合
1. 项目概述:当GNSS遇见机器学习全球导航卫星系统(GNSS)早已融入现代社会的毛细血管,从我们手机上的地图导航,到港口集装箱的自动化调度,再到无人机的精准喷洒,其身影无处不在。其核心原理并不复…...
动力系统与机器学习融合:破解Sabra壳模型自相似爆破的非唯一性
1. 项目概述:当湍流奇点遇上动力系统与机器学习在流体动力学的世界里,有限时间奇点(Blowup)的形成一直是个迷人的谜题。想象一下,一个初始光滑的流体运动,在有限时间内,其速度或涡量等物理量突然…...
开发多语言翻译服务时借助Taotoken调用专用模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发多语言翻译服务时借助Taotoken调用专用模型 设想这样一个场景:你的团队正在开发一个内容平台或国际化应用…...
终极指南:如何让老款Mac免费升级到最新macOS系统
终极指南:如何让老款Mac免费升级到最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老款Mac无法升级最新系统而烦恼吗&…...
如何快速配置Atmosphere破解系统:Switch游戏体验全面升级指南
如何快速配置Atmosphere破解系统:Switch游戏体验全面升级指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要让你的Nintendo Switch游戏加载速度提升65%,帧率翻…...
新装Ubuntu 22.04.4 LTS后,我做的第一件事:开启root和SSH远程管理
新装Ubuntu 22.04.4 LTS后必做的安全加固与远程管理配置拿到一台全新安装的Ubuntu 22.04.4 LTS服务器时,很多开发者会迫不及待地开始部署应用。但根据我管理上百台服务器的经验,初始配置的质量直接决定了后续运维的难易程度。本文将分享我每次部署新系统…...
