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

news2025/5/24 23:18:32

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


使用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-master
      address: ip
      internalAddress: ip
      user: root
      password: "pass"
    - name: k8s-node1
      address: ip
      internalAddress: ip
      user: root
      password: "pass"
    - name: k8s-node2
      address: ip
      internalAddress: ip
      user: root
      password: "pass"

  roleGroups:
    etcd:
      - k8s-master
    control-plane:
      - k8s-master
    worker:
      - k8s-node1
      - k8s-node2

  # --------------- ControlPlaneEndpoint ---------------
  controlPlaneEndpoint:
    ##  - 如果前面已经有独立的 LoadBalancer,请指定 internalLoadbalancer 地址
    # internalLoadbalancer: haproxy

    domain: 主ip   # 虚拟 IP 或 DNS
    address: "主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.8
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd    ####想用docker设置此项为docker

  # ------------------- ETCD 配置 ----------------------
  etcd:
    type: kubekey

  # ------------------- 网络插件 ----------------------
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 10.233.0.0/18
    multusCNI:
      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)   18h

kubectl 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: bytes

root@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.coloradmin.cn/o/2384938.html

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

相关文章

leetcode hot100:十四、解题思路大全:真·大全!

因为某大厂的算法没有撕出来&#xff0c;怒而整理该贴。部分题目有python版本的AC代码。本贴耗时4天呜呜呜 1.哈希 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下…

kali的简化安装

首先点击kali的官网 https://www.kali.org/get-kali/#kali-platforms 点击虚拟机版本 下载VMware版本的压缩包 解压后 点击 后缀名为 .vmx的文件 原始账号密码为 kali kali 这样安装 就不需要我们再去配置镜像 等等复杂操作了

Vortex GPGPU的github流程跑通与功能模块波形探索(三)

文章目录 前言一、./build/ci下的文件结构二、基于驱动进行仿真过程牵扯的文件2.1 blackbox.sh文件2.2 demo文件2.3 额外牵扯到的ramulator2.3.1 ramulator简单介绍2.3.2 ramulator使用方法2.3.3 ramulator的输出2.3.4 ramulator的复现2.3.4.1 调试与验证&#xff08;第 4.1 节…

实用蓝牙耳机哪款好?先做好使用场景分析!

市面上的蓝牙耳机款式繁多&#xff0c;618到来之际&#xff0c;消费者如何选择适合自己的蓝牙耳机&#xff1f;实用蓝牙耳机哪款好&#xff1f;关键在于做好使用场景分析&#xff01;今天&#xff0c;就带大家结合不同的使用场景&#xff0c;分享三款倍思音频的精品蓝牙耳机。 …

防火墙NAT地址组NAT策略安全策略

本文仅供学习交流&#xff0c;所涉及的知识技术产权归属华为技术有限公司所有&#xff01;&#xff01;&#xff01; 本文仅供学习交流&#xff0c;所涉及的知识技术产权归属华为技术有限公司所有&#xff01;&#xff01;&#xff01; 本文仅供学习交流&#xff0c;所涉及的…

Windows 使用 WSL 安装 Ubuntu

一&#xff0c;前言 Windows 上轻松跑 Linux 又不想用笨重的VMware 和VirtualBox &#xff0c;怎么办&#xff1f; 开源项目 Windows Subsystem for Linux (WSL)。它解决了许多开发者在 Windows 和 Linux 间切换的痛点&#xff0c;实现在 Windows 上无缝跑 Linux 工具和命令。…

第九天的尝试

目录 一、每日一言 二、练习题 三、效果展示 四、下次题目 五、总结 一、每日一言 创造美好的代价是努力&#xff0c;失望以及毅力&#xff0c;首先是痛苦&#xff0c;然后才是欢乐。 时间是快的&#xff0c;看怎么利用&#xff0c;安排好一切事情&#xff0c;才能从容面对…

流程自动化引擎:重塑企业数字神经回路

在数字经济高速发展的今天&#xff0c;企业运营的核心逻辑正在经历一场静默的革命。流程自动化引擎作为这场变革的中枢神经系统&#xff0c;通过智能化的技术手段重构企业的业务逻辑与决策链路&#xff0c;将原本离散的“数字神经元”编织成高效协同的神经网络。这种技术不仅打…

nginx web服务日志分析

特点&#xff1a; 实时分析&#xff1a;支持实时分析 Nginx 日志&#xff0c;无需预先存储大量日志数据&#xff0c;能即时反馈网站的访问情况。轻量级高效&#xff1a;资源占用少&#xff0c;运行速度快&#xff0c;适合处理高流量网站的日志分析。多种输出格式&#xff1a;除…

VSCode+EIDE通过KeilC51编译,使VSCode+EIDE“支持”C和ASM混编

在使用Keil C51时&#xff0c;要让Keil C51支持混编则需要在混编的.c文件上右键选择Options for File *(ALTF7)&#xff0c;打开选项界面后&#xff0c;在 Properties 页 勾上 Generate Assembler SRC File 和 Assemble SRC File &#xff0c;如下图所示&#xff1a; 这样设置后…

游戏引擎学习第298天:改进排序键 - 第1部分

关于向玩家展示多个房间层所需的两种 Z 值 我们在前一天基本完成了为渲染系统引入分层 Z 值的工作&#xff0c;但还没有完全完成所有细节。我们开始引入图形渲染中的分层概念&#xff0c;即在 Z 轴方向上拥有多个独立图层&#xff0c;每个图层内部再使用一个单独的 Z 值来实现…

Mysql篇-优化

Mysql篇主要是纯理论的面试问题与技巧。 主要从以下进行开展&#xff1a; 索引相关问题&#xff1a; 1、Mysql如何定位慢查询&#xff1f; Mysql慢查询&#xff1a;某个业务查询数据响应时间过长或者与预期响应时间相差大。 表象&#xff1a;页面加载过慢、接口压测响应时间…

一文详解生成式 AI:李宏毅《生成式 AI 导论》学习笔记

生成式 AI 是怎么回事 人工智能&#xff08;Artificial Intelligence&#xff09; “智能”是一个广泛而复杂的概念&#xff0c;其定义和应用范围随着技术、科学和社会的发展不断演变。在当前的语境下&#xff0c;“智能”通常与人工智能&#xff08;AI&#xff09;相关联&am…

什么是物联网 (IoT):2024 年物联网概述

物联网&#xff08;IoT&#xff09;是一个有望彻底改变我们生活、工作以及与环境互动方式的概念。如今&#xff0c;越来越多的新兴企业和老牌企业都在利用物联网的力量创造创新产品与服务。正因为这一转变&#xff0c;互联互通已成为我们生活中不可或缺的一部分&#xff0c;科技…

8级-数组

前情回顾&#xff1a;在7级的时候&#xff0c;我们学习了如何定义、使用函数 目录 概念 什么是数组&#xff1f; 一维数组 声明 初始化 访问元素 计算数组长度 二维数组 声明 初始化 访问元素 思考 一维数组在内存中如何存储&#xff1f; 二维数组在内存中如何存储&…

大模型 Agent 就是文字艺术吗?

最近在技术圈里有一个很有趣的争论&#xff1a;大模型 Agent 是不是就是各种 Prompt 的堆叠&#xff1f;像 Manus 这样看起来很智能的 Agent&#xff0c;本质上是不是就是用巧妙的 Prompt 约束大模型生成更好的输出&#xff1f;换句话说&#xff0c;这是不是一门文字艺术&#…

YOLOv8检测头代码详解(示例展示数据变换过程)

本文旨在通过实例数据&#xff0c;详细解读YOLOv8检测头的网络结构及其代码实现。首先将从检测头的网络架构开始讲解&#xff0c;涵盖代码与网络结构图的对比分析。关键在于深入探讨检测头的输出结果&#xff0c;因为这些输出将直接用于损失函数的计算。由于在不同阶段&#xf…

JUC并发编程1

什么是juc 在java的java.util.concurrent包下的工具。 锁 传统的synchronize public class SealTicket {int total 50;public synchronized void seal() {if (total > 0) {System.out.println(Thread.currentThread().getName() "卖出第" (total--) "张…

STM32开发环境配置——VSCode+PlatformIO + CubeMX + FreeRTOS的集成环境配置

前言 为什么配置这样的一个环境呢&#xff1f;鄙人受够了Keil5那个简陋的工作环境了&#xff0c;实在是用不下去&#xff0c;调试上很容易跟CubeMX的代码产生不协调导致调试——发布代码不一致造成的一系列问题。CubeIDE虽说不错&#xff0c;但是它的代码辅助功能和构建系统实在…

Profibus转Profinet网关赋能鼓式硫化机:智能化生产升级的关键突破

在现代工业自动化领域&#xff0c;通讯协议转换器发挥着至关重要的角色。它们能够实现不同网络间的无缝对接和数据传输&#xff0c;确保了生产线上的设备可以顺畅地交流信息。今天&#xff0c;我们就来深入讨论开疆智能profibus转profinet网关KJ-PBM-PN以及其在鼓式硫化机中的应…