[Kubernetes] KubeKey 部署 K8s v1.28.8
文章目录
- 1.K8s 部署方式
- 2.操作系统基础配置
- 3.安装部署 K8s
- 4.验证 K8s 集群
- 5.部署测试资源
1.K8s 部署方式
- kubeadm: kubekey, sealos, kubespray
- 二进制: kubeasz
- rancher

2.操作系统基础配置
| 主机名 | 内网IP | 外网IP |
|---|---|---|
| master | 192.168.66.2 | 139.198.9.7 |
| node1 | 192.168.66.3 | 139.198.40.175 |
| node2 | 192.168.66.4 | 139.198.16.33 |
- 内网互通
- 每个机器有自己域名
- 防火墙开放30000~32767端口
#各个机器设置自己的域名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab#允许 iptables 检查桥接流量
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOFcat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
配置时间同步:
yum install chrony# 上面的手工操作,也可以使用 sed 自动替换
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.confsystemctl enable chronyd --now# 执行查看命令
chronyc sourcestats -v
安装依赖:
# 安装 Kubernetes 系统依赖包
yum install -y curl socat conntrack ebtables ipset ipvsadm# 安装 tar 包,不装的话后面会报错。openEuler 也是个奇葩,迭代这么多版本了,默认居然还不安装 tar
yum install tar
3.安装部署 K8s
master节点:
下载 kk:
mkdir ~/kubekey
cd ~/kubekey/# 选择中文区下载(访问 GitHub 受限时使用)
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -

#查看 KubeKey 支持的 Kubernetes 版本列表
./kk version --show-supported-k8s
创建 K8s 集群部署配置文件:
# 创建 K8s 集群部署配置文件
./kk create config -f k8s-v1288.yaml --with-kubernetes v1.28.8

修改配置文件:
vi k8s-v1288.yaml# 修改配置文件
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:hosts:- {name: master, address: 192.168.66.2, internalAddress: 192.168.66.2, user: root, password: "111111zZ!"}- {name: node1, address: 192.168.66.3, internalAddress: 192.168.66.3, user: root, password: "111111zZ!"}- {name: node2, address: 192.168.66.4, internalAddress: 192.168.66.4, user: root, password: "111111zZ!"}roleGroups:etcd:- mastercontrol-plane:- masterworker:- master- node1- node2controlPlaneEndpoint:## Internal loadbalancer for apiserversinternalLoadbalancer: haproxydomain: lb.opsxlab.cnaddress: ""port: 6443kubernetes:version: v1.28.8clusterName: opsxlab.cnautoRenewCerts: truecontainerManager: containerdetcd:type: kubekeynetwork:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18## multus support. https://github.com/k8snetworkplumbingwg/multus-cnimultusCNI:enabled: falseregistry:privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []addons: []
执行配置文件:
./kk create cluster -f k8s-v1288.yaml
[root@ksp-master-1 kubekey]# ./kk create cluster -f k8s-v1288.yaml_ __ _ _ __
| | / / | | | | / /
| |/ / _ _| |__ ___| |/ / ___ _ _
| \| | | | '_ \ / _ \ \ / _ \ | | |
| |\ \ |_| | |_) | __/ |\ \ __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |__/ ||___/14:24:09 CST [GreetingsModule] Greetings
14:24:09 CST message: [node2]
Greetings, KubeKey!
14:24:09 CST message: [master]
Greetings, KubeKey!
14:24:09 CST message: [node1]
Greetings, KubeKey!
14:24:09 CST success: [node2]
14:24:09 CST success: [master]
14:24:09 CST success: [node1]
14:24:09 CST [NodePreCheckModule] A pre-check on nodes
14:24:09 CST success: [node2]
14:24:09 CST success: [master]
14:24:09 CST success: [node1]14:24:09 CST [ConfirmModule] Display confirmation form
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time |
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| master | y | y | y | y | y | y | y | y | y | | | | | | CST 14:24:09 |
| node1 | y | y | y | y | y | y | y | y | y | | | | | | CST 14:24:09 |
| node2 | y | y | y | y | y | y | y | y | y | | | | | | CST 14:24:09 |
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendationsContinue this installation? [yes/no]:yes
nfs client、ceph client、glusterfs client 3 个与存储有关的 client 显示没有安装。
docker、containerd 会根据配置文件选择的 containerManager 类型自动安装。
4.验证 K8s 集群
kubectl get nodes

获取在 K8s 集群节点上已经下载的 Image 列表:
crictl images ls

kubectl get pod -A

5.部署测试资源

kubectl create deployment nginx --image=nginx:alpine --replicas=2
kubectl create service nodeport nginx --tcp=80:80
kubectl get svc -o wide

相关文章:
[Kubernetes] KubeKey 部署 K8s v1.28.8
文章目录 1.K8s 部署方式2.操作系统基础配置3.安装部署 K8s4.验证 K8s 集群5.部署测试资源 1.K8s 部署方式 kubeadm: kubekey, sealos, kubespray二进制: kubeaszrancher 2.操作系统基础配置 主机名内网IP外网IPmaster192.168.66.2139.198.9.7node1192.168.66.3139.198.40.17…...
C# 与 Qt 的对比分析
C# 与 Qt 的对比分析 目录 C# 与 Qt 的对比分析 1. 语言特性 2. 开发环境 3. 框架和库 4. 用户界面设计 5. 企业级应用 6. 性能考量 在软件开发领域,C# 和 Qt 是两种常用的技术栈,它们分别在.NET平台和跨平台桌面应用开发中占据重要位置。本文将深…...
MapReduce | 二次排序
1.需求 主播数据--按照观众人数降序排序,如果观众人数相同,按照直播时长降序 # 案例数据 用户id 观众人数 直播时长 团团 300 1000 小黑 200 2000 哦吼 400 7000 卢本伟 100 6000 八戒 250 5000 悟空 100 4000 唐僧 100 3000 # 期望结果 哦吼 4…...
Java后端初始化项目(项目模板)
介绍 emmmm,最近看了一些网络资料,也是心血来潮,想自己手工搭建一个java后端的初始化项目模板来简化一下开发,也就发一个模板的具体制作流程,(一步一步搭建,从易到难) okÿ…...
electron 多窗口 vuex/pinia 数据状态同步简易方案(利用 LocalStorage)
全局 stroe 添加 mutations 状态同步方法 // 用于其他窗口同步 vuex 中的 DeviceTcpDataasyncDeviceTcpData(state: StateType, data: any) {state.deviceTcpData data},App.vue 里 onMounted(() > {console.log("App mounted");/*** vuex 多窗口 store 同步*//…...
自定义数据集图像分类实现
模型训练 要使用自己的图片分类数据集进行训练,这意味着数据集应该包含一个目录,其中每个子目录代表一个类别,子目录中包含该类别的所有图片。以下是一个使用Keras和TensorFlow加载自定义图片数据集进行分类训练的例子。 我们自己创建的数据集…...
【C++】手搓读写ini文件源码
【C】手搓读写ini文件源码 思路需求:ini.hini.cppconfig.confmian.cpp 思路 ini文件是一种系统配置文件,它有特定的格式组成。通常做法,我们读取ini文件并按照ini格式进行解析即可。在c语言中,提供了模板类的功能,所以…...
undolog
undolog回滚段 undolog执行的时间:在执行器操作bufferpool之前。 undolog页...
项目文档分享
Hello , 我是小恒。提前祝福妈妈母亲节快乐 。 本文写一篇初成的项目文档 (不是README.md哈),仅供参考 项目名称 脚本存储网页 项目简介 本项目旨在创建一个网页,用于存储和展示各种命令,用户可以通过粘贴复制命令到…...
【深耕 Python】Quantum Computing 量子计算机(5)量子物理概念(二)
写在前面 往期量子计算机博客: 【深耕 Python】Quantum Computing 量子计算机(1)图像绘制基础 【深耕 Python】Quantum Computing 量子计算机(2)绘制电子运动平面波 【深耕 Python】Quantum Computing 量子计算机&…...
手写Spring5【笔记】
Spring5【笔记】 前言前言推荐Spring5【笔记】1介绍2手写 最后 前言 这是陈旧已久的草稿2022-12-01 23:32:59 这个是刷B站的时候,看到一个手写Spring的课程。 最后我自己好像运行不了,就没写。 现在2024-5-12 22:22:46,发布到[笔记]专栏中…...
2024中国(重庆)机器人展览会8月举办
2024中国(重庆)机器人展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 2024中国重庆机器人展会将汇聚机器人全产业链知名企业,世界科技领先的生产制造企业与来自多个国家和地区…...
Apache 开源项目文档中心 (英文 + 中文)
进度:持续更新中。。。 Apache Ambari 2.7.5 Apache Ambari Installation 2.7.5.0 (latest)Apache Ambari Installation 2.7.5.0 中文版 (latest) Apache DolphinScheduler Apache DolphinScheduler 1.2.0 中文版Apache DolphinScheduler 1.2.1 中文版...
蓝桥杯 算法提高 ADV-1164 和谐宿舍 python AC
贪心,二分 同类型题:蓝桥杯 算法提高 ADV-1175 打包 def judge(x):wood 0max_val 0ans_len 0for i in ll:if i > x:return Falseelif max(max_val, i) * (ans_len 1) < x:max_val max(max_val, i)ans_len 1else:wood 1max_val ians_len …...
Dragonfly 拓扑的路由算法
Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估3. 存在问题 (1)吞吐量限制(2)较高的中间延迟 references Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而…...
android基础-服务
同样使用intent来传递服务 oncreate是服务第一次启动调用,onStartCommand是服务每次启动的时候调用,也就是说服务只要启动后就不会调用oncreate方法了。可以在myservice中的任何位置调用stopself方法让服务停止下来。 服务生命周期 前台服务类似于通知会…...
mysql 事物
MySQL中的事务(Transaction)是一个确保数据完整性和一致性的重要概念。它将一组SQL操作捆绑在一起,当作一个单一的工作单元来执行。事务具备以下四个关键特性,即ACID特性: 原子性(Atomicity)&am…...
Unity Shader中获取像素点深度信息
1.顶点着色器中对深度进行计算 v2f vert(appdata v) {v2f o;o.pos UnityObjectToClipPos(v.vertex);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.depth (o.pos.z / o.pos.w 1.0) * 0.5; // Normalize depth to [0, 1]return o; }但是达不到预期,最后返回的值一直大于…...
ROS——Action学习
文章目录 ROS Action概念自定义Action类型参考ROS Action概念 ROS Service会阻塞程序流,程序无法进行其它的工作,有时我们需要同时进行多个任务。 ROS Action可以满足要求,ROS Action提供程序的非阻塞执行。 Action是ROS Node的通信方式之一 Action server 向ROS系统广…...
基于C语言中的类型转换,C++标准创造出了更加可视化的类型转换
目录 前言 一、 C语言中的类型转换 二、为什么C需要四种类型转换 三、C中新增的四种强制类型转换操作符以及它们的应用场景 1.static_cast 2.reinterpret_cast 3.const_cast 4.dynamic_cast 前言 在C语言中,如果赋值运算符左右两侧的类型不同,或者…...
终极Enformer基因表达预测指南:如何在10分钟内快速部署深度学习模型
终极Enformer基因表达预测指南:如何在10分钟内快速部署深度学习模型 【免费下载链接】enformer-pytorch Implementation of Enformer, Deepminds attention network for predicting gene expression, in Pytorch 项目地址: https://gitcode.com/gh_mirrors/en/enf…...
用8086和蜂鸣器DIY音乐盒:手把手教你复刻童年旋律(附完整汇编代码)
用8086和蜂鸣器DIY音乐盒:手把手教你复刻童年旋律(附完整汇编代码) 记得小时候第一次听到电子贺卡发出《生日快乐》的单调旋律时,那种机械却又神奇的"音乐"让我盯着电路板研究了半天。现在想来,那些简单的方…...
Pixel Aurora Engine 辅助UI/UX设计:自动生成界面原型与素材
Pixel Aurora Engine 辅助UI/UX设计:自动生成界面原型与素材 1. 设计效率的革命性提升 想象一下这样的场景:产品经理刚描述完"我们需要一个社交App的登录页,要简洁现代感,带点科技风",几分钟后,…...
7个实用技巧让Continue AI编程助手提升开发效率
7个实用技巧让Continue AI编程助手提升开发效率 【免费下载链接】continue ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI 项目地址: https://gitcode.com/GitHub_Trending/co/continue 在当今快节奏的开发环境中&#…...
Deep-Live-Cam实时换脸诊断指南:从启动失败到流畅运行的快速修复方案
Deep-Live-Cam实时换脸诊断指南:从启动失败到流畅运行的快速修复方案 【免费下载链接】Deep-Live-Cam real time face swap and one-click video deepfake with only a single image 项目地址: https://gitcode.com/GitHub_Trending/de/Deep-Live-Cam Deep-L…...
【实战指南】解决Qt平台插件加载失败:从环境变量到PyQt5重装的完整方案
1. 遇到Qt平台插件加载失败?别慌,先看懂报错信息 最近在Windows上跑labelimg标注工具时,突然弹出一个让人头疼的错误: qt.qpa.plugin: Could not load the Qt platform plugin "windows" in "" even though…...
如何高效使用开源工具EnergyStarX提升Windows 11电池续航:完整实战指南
如何高效使用开源工具EnergyStarX提升Windows 11电池续航:完整实战指南 【免费下载链接】EnergyStarX 🔋 Improve your Windows 11 devices battery life. A WinUI 3 GUI for https://github.com/imbushuo/EnergyStar. 项目地址: https://gitcode.com/…...
apt-cyg项目架构与开发指南:理解开源包管理器的设计思路
apt-cyg项目架构与开发指南:理解开源包管理器的设计思路 【免费下载链接】apt-cyg Apt-cyg, an apt-get like tool for Cygwin 项目地址: https://gitcode.com/gh_mirrors/ap/apt-cyg apt-cyg是一个为Cygwin环境设计的强大包管理器,它模仿了Debia…...
GyverDS18库:工业级DS18B20单总线温度驱动设计与实践
1. GyverDS18库深度解析:面向工业级应用的DS18B20全功能驱动设计Dallas DS18B20是业界最成熟的单总线数字温度传感器之一,凭借其独特的1-Wire协议、无需外部ADC、支持多点组网及寄生供电能力,在工业监控、环境监测、智能家电等领域广泛应用。…...
效率提升:基于快马平台实现openclaw windows部署的自动化与优化
最近在团队里负责优化openclaw在Windows环境的部署流程,发现传统手动部署方式存在不少效率瓶颈。经过在InsCode(快马)平台上的实践,我们实现了一套自动化部署方案,效果提升明显。这里分享几个关键优化点: 全流程一键化部署 过去部…...
