使用KubeKey快速部署k8s v1.31.8集群

实战环境涉及软件版本信息:


使用kubekey部署k8s
1. 操作系统基础配置
设置主机名、DNS解析、时钟同步、防火墙关闭、ssh免密登录等等系统基本设置

dnf  install -y  curl socat conntrack ebtables ipset ipvsadm
2. 安装部署 K8s
2.1 下载 KubeKey

###地址
https://github.com/kubesphere/kubekey#下载最新版的 KubeKey
export KKZONE=cn  ####国内用户先执行此配置mkdir ~/kubekey
cd ~/kubekey
curl -sfL https://get-kk.kubesphere.io | sh -


查看 KubeKey 支持的 Kubernetes 版本列表

./kk version --show-supported-k8s
...
v1.30.10
v1.30.11
v1.30.12
v1.31.0
v1.31.1
v1.31.2
v1.31.3
v1.31.4
v1.31.5
v1.31.6
v1.31.7
v1.31.8
v1.32.0
v1.32.1
v1.32.2
v1.32.3
v1.32.4
v1.33.0

生成配置文件

./kk create config -f k8s-v1318.yaml --with-kubernetes v1.31.8

2.2 创建 K8s 集群部署配置文件

修改配置文件
采用 3 个节点同时作为 control-plane、etcd 和 worker 节点。

编辑配置文件 k8s-v1288.yaml,主要修改 kind: Cluster 小节的相关配置

修改 kind: Cluster 小节中 hosts 和 roleGroups 等信息,修改说明如下。

hosts:指定节点的 IP、ssh 用户、ssh 密码、ssh 端口
roleGroups:指定 3 个 etcd、control-plane 节点,复用相同的机器作为 3 个 worker 节点
internalLoadbalancer:启用内置的 HAProxy 负载均衡器
domain:可自定义域名
clusterName:可使用默认值 cluster.local
autoRenewCerts:该参数可以实现证书到期自动续期,默认为 true
containerManager:使用 containerd
部署完成需要大约 10-20 分钟左右,会在终端上看到类似于下面的输出。

安装的时候最好走代理,因为大部分包在国外,不走代理慢到哭,首先要让服务器走代理

cat << 'EOF' > /etc/profile.d/proxy.sh
export HTTP_PROXY="http://ip"
export HTTPS_PROXY="http://ip"
export NO_PROXY="127.0.0.1,localhost,ip,10.233.0.0/18,10.233.64.0/18"
EOF

source /etc/profile.d/proxy.sh

#####cat k8s-v1318.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:name: sample
spec:# ----------------- 节点列表 -----------------hosts:- name: k8s-masteraddress: ipinternalAddress: ipuser: rootpassword: "pass"- name: k8s-node1address: ipinternalAddress: ipuser: rootpassword: "pass"- name: k8s-node2address: ipinternalAddress: ipuser: rootpassword: "pass"roleGroups:etcd:- k8s-mastercontrol-plane:- k8s-masterworker:- k8s-node1- k8s-node2# --------------- ControlPlaneEndpoint ---------------controlPlaneEndpoint:##  - 如果前面已经有独立的 LoadBalancer,请指定 internalLoadbalancer 地址# internalLoadbalancer: haproxydomain: 主ip   # 虚拟 IP 或 DNSaddress: "主ip"     # 也可以写为负载均衡虚拟 IP port: 6443# ------------------- 代理设置 ----------------------# 下面三行会让 KubeKey 在下载二进制文件、拉镜像时都走代理proxies:httpProxy:  "http://ip"httpsProxy: "http://ip"noProxy:    "127.0.0.1,localhost,ip,10.233.0.0/18,10.233.64.0/18"# ------------------ Kubernetes 配置 ------------------kubernetes:version: v1.31.8clusterName: cluster.localautoRenewCerts: truecontainerManager: containerd    ####想用docker设置此项为docker# ------------------- ETCD 配置 ----------------------etcd:type: kubekey# ------------------- 网络插件 ----------------------network:plugin: calicokubePodsCIDR: 10.233.64.0/18kubeServiceCIDR: 10.233.0.0/18multusCNI:enabled: false# ------------------- 镜像仓库 ----------------------registry:# 如果你想使用私有 Registry,可以在下面填写privateRegistry: ""namespaceOverride: ""registryMirrors: []insecureRegistries: []# ------------------ 插件或组件 ---------------------addons: []

执行安装,安装时长看网速

./kk create cluster -f k8s-v1318.yaml 

3. 验证 K8s 集群
3.1 验证集群状态
查看集群节点信息

kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS      AGE
default       nginx-77657886dc-bhr94                     1/1     Running   0             15h
default       nginx-77657886dc-cxkmn                     1/1     Running   0             15h
kube-system   calico-kube-controllers-75c587cc8d-tlz4x   1/1     Running   1 (15h ago)   18h
kube-system   calico-node-47j2l                          1/1     Running   1 (15h ago)   18h
kube-system   calico-node-cf47t                          1/1     Running   1 (15h ago)   18h
kube-system   calico-node-wcfpc                          1/1     Running   1 (15h ago)   18h
kube-system   coredns-54b855dcd7-gvvmt                   1/1     Running   1 (15h ago)   18h
kube-system   coredns-54b855dcd7-lj6jv                   1/1     Running   1 (15h ago)   18h
kube-system   kube-apiserver-k8s-master                  1/1     Running   1 (15h ago)   18h
kube-system   kube-controller-manager-k8s-master         1/1     Running   1 (15h ago)   18h
kube-system   kube-proxy-7m4c5                           1/1     Running   1 (15h ago)   18h
kube-system   kube-proxy-8d4hq                           1/1     Running   1 (15h ago)   18h
kube-system   kube-proxy-lq7bb                           1/1     Running   1 (15h ago)   18h
kube-system   kube-scheduler-k8s-master                  1/1     Running   1 (15h ago)   18h
kube-system   metrics-server-76bf575666-sfnpg            1/1     Running   1 (15h ago)   18h
kube-system   nodelocaldns-mkrzd                         1/1     Running   1 (15h ago)   18h
kube-system   nodelocaldns-n6bqx                         1/1     Running   1 (15h ago)   18h
kube-system   nodelocaldns-rhg9n                         1/1     Running   1 (15h ago)   18h
kuboard       metrics-scraper-5c688489ff-cbfzk           1/1     Running   1 (15h ago)   18hkubectl get node
NAME         STATUS   ROLES           AGE   VERSION
k8s-master   Ready    control-plane   18h   v1.31.8
k8s-node1    Ready    worker          18h   v1.31.8
k8s-node2    Ready    worker          18h   v1.31.8

4. 部署测试资源

###部署NGINX
kubectl create deployment nginx --image=nginx:alpine --replicas=2
###暴露port
kubectl create service nodeport nginx --tcp=80:80
####查看地址
kubectl get deployment -o wide
kubectl get pods -o wide

5.验证服务
验证直接访问 Pod

root@k8s-master:~# kubectl get pods -o wide
NAME                     READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES
nginx-77657886dc-bhr94   1/1     Running   0          15h   10.233.81.4   k8s-node1   
nginx-77657886dc-cxkmn   1/1     Running   0          15h   10.233.76.4   k8s-node2   root@k8s-master:~# curl -I http://10.233.81.4
HTTP/1.1 200 OK
Server: nginx/1.27.5
Date: Fri, 23 May 2025 01:31:11 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 16 Apr 2025 12:55:34 GMT
Connection: keep-alive
ETag: "67ffa8c6-267"
Accept-Ranges: bytesroot@k8s-master:~# curl -I http://10.233.76.4
HTTP/1.1 200 OK
Server: nginx/1.27.5
Date: Fri, 23 May 2025 01:31:21 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 16 Apr 2025 12:55:34 GMT
Connection: keep-alive
ETag: "67ffa8c6-267"
Accept-Ranges: bytes

6.docker安装kuboard作为安装管理界面,默认用户名密码:admin、Kuboard123

docker run -itd   --restart=unless-stopped   --name=kuboard   -p 31000:80/tcp   -p 10081:10081/tcp   -e KUBOARD_ENDPOINT="http://本机ip:80:80"   -e KUBOARD_AGENT_SERVER_TCP_PORT="10081"   -v /root/kuboard-data:/data   eipwork/kuboard:v3.5.2.7

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL:窗口函数(Window Functions)

目录 什么是窗口函数&#xff1f; 基本语法结构 为什么要用窗口函数&#xff1f; 常见的窗口函数分类 1️⃣ 排名类函数 2️⃣ 聚合类函数&#xff08;不影响原始行&#xff09; 3️⃣ 值访问函数 窗口范围说明&#xff08;ROWS / RANGE&#xff09; 什么是窗口函数&a…

相机内参 opencv

视场角定相机内参 import numpy as np import cv2 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3Ddef calculate_camera_intrinsics(image_width640, image_height480, fov55, is_horizontalTrue):"""计算相机内参矩阵参数:image_w…

MATLAB 各个工具箱 功能说明

​ 想必大家在安装MATLAB时&#xff0c;或多或少会疑惑应该安装哪些工具箱。笔者遇到了两种情况——只安装了MATLAB主程序&#xff0c;老师让用MATLAB的时候却发现没有安装对应安装包&#xff1b;第二次安装学聪明了&#xff0c;全选安装&#xff0c;嗯……占用了20多个G。 ​…

学习日记-day14-5.23

完成目标&#xff1a; 学习java下半段课程 知识点&#xff1a; 1.多态转型 知识点 核心内容 重点 多态转型 向上转型&#xff08;父类引用指向子类对象&#xff09; 与向下转型&#xff08;强制类型转换&#xff09;的机制与区别 向上转型自动完成&#xff0c;向下转型需…

【编程语言】【Java】一篇文章学习java,复习完善知识体系

第一章 Java基础 1.1 变量与数据类型 1.1.1 基本数据类型 1.1.1.1 整数类型&#xff08;byte、short、int、long&#xff09; 在 Java 中&#xff0c;整数类型用于表示没有小数部分的数字&#xff0c;不同的整数类型有不同的取值范围和占用的存储空间&#xff1a; byte&am…

汇量科技前端面试题及参考答案

数组去重的方法有哪些&#xff1f; 在 JavaScript 中&#xff0c;数组去重是一个常见的操作&#xff0c;有多种方法可以实现这一目标。每种方法都有其适用场景和性能特点&#xff0c;下面将详细介绍几种主要的去重方法。 使用 Set 数据结构 Set 是 ES6 引入的一种新数据结构&a…

Git实战演练,模拟日常使用,快速掌握命令

01 引言 上一期借助Idea&#xff0c;完成了Git仓库的建立、配置、代码提交等操作&#xff0c;初步入门了Git的使用。然而日常开发中经常面临各种各样的问题&#xff0c;入门级的命令远远不够使用。 这一期&#xff0c;我们将展开介绍Git的日常处理命令&#xff0c;解决日常问…

wordpress主题开发中常用的12个模板文件

在WordPress主题开发中&#xff0c;有多种常用的模板文件&#xff0c;它们负责控制网站不同部分的显示内容和布局&#xff0c;以下是一些常见的模板文件&#xff1a; 1.index.php 这是WordPress主题的核心模板文件。当没有其他更具体的模板文件匹配当前页面时&#xff0c;Wor…

数据库blog5_数据库软件架构介绍(以Mysql为例)

&#x1f33f;软件的架构 &#x1f342;分类 软件架构总结为两种主要类型&#xff1a;一体式架构和分布式架构 ● 一体化架构 一体式架构是一种将所有功能集成到一个单一的、不可分割的应用程序中的架构模式。这种架构通常是一个大型的、复杂的单一应用程序&#xff0c;包含所…

离线服务器算法部署环境配置

本文将详细记录我如何为一台全新的离线服务器配置必要的运行环境&#xff0c;包括基础编译工具、NVIDIA显卡驱动以及NVIDIA-Docker&#xff0c;以便顺利部署深度学习算法。 前提条件&#xff1a; 目标离线服务器已安装操作系统&#xff08;本文以Ubuntu 18.04为例&#xff09…

chromedp -—— 基于 go 的自动化操作浏览器库

chromedp chromedp 是一个用于 Chrome 浏览器的自动化测试工具&#xff0c;基于 Go 语言开发&#xff0c;专门用于控制和操作 Chrome 浏览器实例。 chromedp 安装 go get -u github.com/chromedp/chromedp基于chromedp 实现的的简易学习通刷课系统 目前实现的功能&#xff…

高级特性实战:死信队列、延迟队列与优先级队列(三)

四、优先级队列&#xff1a;优先处理重要任务 4.1 优先级队列概念解析 优先级队列&#xff08;Priority Queue&#xff09;是一种特殊的队列数据结构&#xff0c;它与普通队列的主要区别在于&#xff0c;普通队列遵循先进先出&#xff08;FIFO&#xff09;的原则&#xff0c;…

python打卡day34

GPU训练及类的call方法 知识点回归&#xff1a; CPU性能的查看&#xff1a;看架构代际、核心数、线程数GPU性能的查看&#xff1a;看显存、看级别、看架构代际GPU训练的方法&#xff1a;数据和模型移动到GPU device上类的call方法&#xff1a;为什么定义前向传播时可以直接写作…

Newtonsoft Json序列化数据不序列化默认数据

问题描述 数据在序列号为json时,一些默认值也序列化了,像旋转rot都是0、缩放scal都是1,这样的默认值完全可以去掉,减少和服务器通信数据量 核心代码 数据结构字段增加[DefaultValue(1.0)]属性,缩放的默认值为1 public class Vec3DataOne{[DefaultValue(1.0)] public flo…

可增添功能的鼠标右键优化工具

软件介绍 本文介绍一款能优化Windows电脑的软件&#xff0c;它可以让鼠标右键菜单添加多种功能。 软件基本信息 这款名为Easy Context Menu的鼠标右键菜单工具非常小巧&#xff0c;软件大小仅1.14MB&#xff0c;打开即可直接使用&#xff0c;无需进行安装。 添加功能列举 它…

Gemini 2.5 Pro 一次测试

您好&#xff0c;您遇到的重定向循环问题&#xff0c;即在 /user/messaging、/user/login?return_to/user/messaging 和 /user/login 之间反复跳转&#xff0c;通常是由于客户端的身份验证状态检查和页面重定向逻辑存在冲突或竞争条件。 在分析了您提供的代码&#xff08;特别…

vue3前端后端地址可配置方案

在开发vue3项目过程中&#xff0c;需要切换不同的服务器部署&#xff0c;代码中配置的服务需要可灵活配置&#xff0c;不随着run npm build把网址打包到代码资源中&#xff0c;不然每次切换都需要重新run npm build。需要一个配置文件可以修改服务地址&#xff0c;而打包的代码…

大模型微调与高效训练

随着预训练大模型(如BERT、GPT、ViT、LLaMA、CLIP等)的崛起,人工智能进入了一个新的范式:预训练-微调(Pre-train, Fine-tune)。这些大模型在海量数据上学习到了通用的、强大的表示能力和世界知识。然而,要将这些通用模型应用于特定的下游任务或领域,通常还需要进行微调…

编程技能:字符串函数10,strchr

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;编程技能&#xff1a;字符串函数09&#xff0c;strncmp 回到目录…

动态规划-53.最大子数组和-力扣(LeetCode)

一、题目解析 在给定顺序的数组中找出一段具有最大和的连续子数组&#xff0c;且大小最小为1. 二、算法原理 1.状态表示 我们可以意一一枚举出所有的子数组&#xff0c;但我们想要的是最大子数组&#xff0c;所以f[i]表示&#xff1a;以i位置为结尾&#xff0c;所有子数组的最…