5分钟快速搭建k8s集群1.29.x

  1. 配置主机名和hosts
    配置主机名
    hostnamectl set-hostname node1
    hostnamectl set-hostname node2
    hostnamectl set-hostname node3

    vim /etc/hosts
    172.19.35.202 node1
    172.19.35.203 node2
    172.19.35.204 node3
    测试
    hostname
    ping -c 3 node2

  2. 配置时间同步

  3. 关闭防火墙

    systemctl disable --now firewalld
    

    这两条命令分别用于停止并禁用防火墙(firewalld)和DNS服务(dnsmasq)。

  4. 关闭并禁用SELinux

    setenforce 0
    sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
    sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
    

    以上命令会立即将SELinux设置为宽容模式,并在系统配置文件中将SELinux永久禁用。

  5. 关闭并禁用交换分区(swap)

    swapoff -a
    sysctl -w vm.swappiness=0
    sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
    

    这些命令将立即关闭swap分区,设置系统不使用swap,以及在fstab文件中注释掉所有swap相关的行,防止系统重启时重新启动swap。

  6. 配置软件源为阿里云镜像,并安装必要软件(可选)

    sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/rocky-*.repo
    dnf makecache
    yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y
    

    以上命令用于将软件源切换到阿里云镜像,然后安装常用的一些软件工具。

  7. 配置Kubernetes仓库

    cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/repodata/repomd.xml.key
    EOF
    

    设置Kubernetes软件仓库,之后可以通过此仓库安装Kubernetes相关组件。

  8. 安装并配置Containerd运行环境
    这一部分是关于安装和配置 containerd 作为 Kubernetes 的容器运行时环境

    1. 安装 containerd(其实这里docker不需要安装)

       sudo yum remove podman buildah
       sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
       sudo yum makecache
       sudo yum install -y docker-ce docker-ce-cli containerd.io
       sudo systemctl start docker
       sudo systemctl enable docker
      

      这条命令通过 yum 包管理器安装 containerd。-y 参数意味着自动同意所有询问,无需手动确认。

    2. 加载内核模块

      cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
      overlay
      br_netfilter
      EOF
      sudo modprobe overlay
      sudo modprobe br_netfilter
      
      • 这部分创建了一个配置文件 /etc/modules-load.d/containerd.conf,在系统启动时自动加载 overlaybr_netfilter 这两个内核模块。
      • overlay 模块支持 overlay 文件系统,这是 Docker 和其他容器技术常用的文件系统类型。
      • br_netfilter 模块用于在网络桥接接口上进行包过滤和NAT功能,这对 Kubernetes 网络是必需的。
    3. 设置网络相关的系统参数

      cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      sudo sysctl --system
      
      • 这些参数配置允许在网络桥接时通过 iptables 对数据包进行处理,以及启用 IP 转发。
      • sysctl --system 用来立即应用这些新的系统参数设置。
    4. 配置 containerd

      sudo mkdir -p /etc/containerd
      containerd config default | sudo tee /etc/containerd/config.toml
      
      • 首先创建 containerd 的配置目录。
      • 然后通过 containerd config default 生成默认的配置,并保存到 /etc/containerd/config.toml 文件中。
    5. 修改 containerd 的配置

      sed -i 's#SystemdCgroup = false#SystemdCgroup = true#g' /etc/containerd/config.toml
      sed -i 's#k8s.gcr.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g' /etc/containerd/config.toml
      sed -i 's#registry.gcr.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g' /etc/containerd/config.toml
      sed -i 's#registry.k8s.io/pause#registry.cn-hangzhou.aliyuncs.com/google_containers/pause#g' /etc/containerd/config.toml
      
      • 修改配置使用 SystemdCgroup = true,这确保 containerd 使用 systemd 管理 cgroup,有助于与 systemd 更好的集成。
      • 替换镜像源地址,将默认的 Kubernetes 镜像源改为阿里云提供的镜像源,这可以提高在中国大陆的访问速度和稳定性。
    6. 启动并使 containerd 自启动

      systemctl daemon-reload
      systemctl enable --now containerd
      
      • daemon-reload 命令让 systemd 重新加载配置文件,包括新安装的服务。
      • enable --now containerd 将 containerd 服务设置为开机自启,并立即启动服务。

    这些步骤共同配置了 containerd 作为 Kubernetes 集群的容器运行时环境,确保了其与系统参数和 Kubernetes 的兼容性,同时优化了网络和镜像源设置以提高效率和响应速度。

  9. 安装Kubernetes组件并初始化集群

    1. 安装 Kubernetes 组件

      yum install kubeadm-1.29.* kubelet-1.29.* kubectl-1.29.* -y
      
      • 使用 yum 安装 kubeadm, kubelet, 和 kubectl。这些组件分别用于初始化 Kubernetes 集群、运行集群的节点、和与集群交互。
      • 版本 1.29.* 确保安装的是特定版本的 Kubernetes。
      • -y 参数自动确认安装过程中的询问。
    2. 启动并设置 kubelet 自启动

      systemctl enable --now kubelet
      
      • kubelet 是在每个节点上运行的核心组件,负责维护容器的生命周期。
      • 此命令使 kubelet 在启动时自动运行。
    3. 预拉取 Kubernetes 集群所需的镜像

      kubeadm config images pull --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --kubernetes-version 1.29.4
      
      • 使用 kubeadmimages pull 命令从指定的镜像仓库预先拉取 Kubernetes 运行所需的所有容器镜像。
      • 这里使用的是阿里云的镜像仓库,以提高在中国区的下载速度和稳定性。
    4. 初始化 Kubernetes 集群

      kubeadm init --apiserver-advertise-address 10.0.3.233 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers --cri-socket "unix:///var/run/containerd/containerd.sock" --kubernetes-version 1.29.4
      
      • kubeadm init 是用于初始化集群的主命令。
      • --apiserver-advertise-address 指定 API 服务器将广播到其他集群成员的 IP 地址。
      • --image-repository 为 Kubernetes 集群使用的容器镜像仓库地址。
      • --cri-socket 指定容器运行时的接口,这里使用的是 containerd。
      • --kubernetes-version 指定了安装的 Kubernetes 版本。
    5. 将节点加入到 Kubernetes 集群

      kubeadm join 10.0.3.233:6443 --token cg0bkg.w83qlih44rjby2jk --discovery-token-ca-cert-hash sha256:4efd525d2708c60bd450b0bd3f22a850283738f49b23e04334301a4ca07a1a8f
      
      • 使用 kubeadm join 将其他节点加入到已初始化的 Kubernetes 集群。
      • --token 是用于节点身份验证的安全令牌,保证只有拥有令牌的节点可以加入集群。
      • --discovery-token-ca-cert-hash 是 CA 证书的哈希值,用于节点加入时验证 API 服务器的证书,增强安全性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

玩转微服务-SonarQube

这里写目录标题 第一节 SonarQube1.1 简介1.2 四个组成部分1.2.1 SonarQube服务器1.2.2 SonarQube数据库1.2.3 插件1.2.4 Scanner 1.3 工作流程 第二节 SonarQube的安装2.1 安装2.2 插件 第三节 P3C规范3.1 简介3.2 SonarQube 配置 P3C规范3.3 IDEA配置 P3C规范 第四节 Maven项…

机器学习-期末复习

本文的内容按照作者的课程考试要求书写&#xff0c;仅供复习参考。&#x1f337;&#x1f337;&#x1f337;欢迎大家指正&#xff01; 机器学习是一种人工智能&#xff08;AI&#xff09;的分支领域&#xff0c;它致力于开发能够通过数据学习和改进的算法和模型。简而言之&…

2024年AIGC+教育行业报告

在宏观层面上&#xff0c;如果把人工智能看作一种生命体&#xff0c;AIGC教育的内涵其实是碳基生命和硅基生命的 交互和培育问题。AIGC技术是对人脑计算、思考、判断等内在能力的延伸&#xff0c;是人的智能在机器形态 上的规模化聚集、运作和反应。由此&#xff0c;部分基础性…

【漏洞复现】云时空社会化商业ERP系统LoginName SQL注入漏洞

漏洞描述&#xff1a; 云时空社会化商业ERP系统loginName存在SQL注入漏洞&#xff0c;攻击者可以通过此漏洞获取数据库敏感信息。 搜索语法: Fofa-Query: app"云时空社会化商业ERP系统" 漏洞详情&#xff1a; 1.云时空社会化商业ERP系统。 2.漏洞POC&#xff1a…

倒计时开始!Big Demo Day第十二期,揭秘DePIN,探索Web3未来(附参会指南)

香港—— 全球领先的 Web3.0 活动 Big Demo Day 第十二期即将于 4 月 26 日在香港数码港盛大举行。本次活动由知名科技企业 ZeeprLabs 赞助&#xff0c;Central Research 主办&#xff0c;并得到 Techub News 的联合主办以及数码港、852Web3 等机构的合作支持。 在过去的 11 期…

鸿蒙HarmonyOS应用 - ArkUI组件

ArkUI组件 基础组件 Image 声明Image组件并设置图片源 网络权限&#xff1a;ohos.permission.INTERNET Image(scr: string | PixelMap | Resource)// 1. string&#xff1a;用于加载网络图片&#xff0c;需要申请网络权限 Image("https://xxx.png")// 2. PixelMap…

驱鸟器低成本OTP语音方案选型-wtn6020唯创知音

一、开发背景&#xff1a; 随着农业现代化的不断推进&#xff0c;鸟类对农作物的侵扰问题愈发严重。传统的驱鸟方法&#xff0c;如人工驱赶或使用化学药剂&#xff0c;不仅效率低下&#xff0c;而且可能对环境造成污染。因此&#xff0c;开发一种高效、环保、低成本的驱鸟器成…

考研日常记录(upd 24.4.24)

由于实在太无聊了 &#xff0c; 所以记录以下考研备考日常 &#xff0c; 增加一点成就感 &#xff0c; 获得一点前进动力。 文章目录 2024.4.18 周四课程情况&#xff1a;时间规划&#xff1a; 2024.4.19 周五课程情况&#xff1a;时间规划&#xff1a; 2024.4.20 周六2024.4.2…

RK3588构建ubuntu22.04根文件系统

前言 RK系列的平台提供了buildroot和debian的系统&#xff0c;使用脚本可以直接构建出来&#xff0c;但是没有提供ubuntu的系统&#xff0c;很多厂商只提供一个rootfs.img的固件包&#xff0c;没有将方法开源出来。本文实现了从ubuntu官网开始构建一个ubuntu22.04根文件系统。…

SSTV音频转图片

SSTV工具有很多&#xff0c;这里使用RX-SSTV慢扫描工具 下载安装 RX-SSTV解码软件 下载地址&#xff1a;https://www.qsl.net/on6mu/rxsstv.htm 一直点下一步&#xff0c;安装成功如下图: 虚拟声卡e2eSoft 由于SSTV工具是根据音频传递图片信息&#xff0c;正常解法需要一…

人耳的七个效应

1、掩蔽效应 • 人们在安静环境中能够分辨出轻微的声音&#xff0c;即人耳对这个声音的听域很低&#xff0c;但在嘈杂的环境中轻微的声音就会被淹没掉&#xff0c;这时将轻微的声音增强才能听到。 • 这种在聆听时&#xff0c;一个声音的听阈因另一声音的出现而提高的现象&…

本地修改localhost--手把手

找到本地hosts文件 1、C:\Windows\System32\drivers–快捷键ctrlR,输入drivers 2、点击etc目录&#xff0c;找到hosts文件&#xff0c;右键使用记事本方式打开编辑 3、添加自己想得到的域名【只能在本地使用】 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.…

面试:JVM内存结构

一、Java代码的运行步骤 一段Java代码先会被反编译为Java字节码&#xff0c;当执行java命令时&#xff0c;JVM虚拟机会被创建出来&#xff0c;并会创建一个main主线程来执行主方法。 二、JVM的内存结构有哪些&#xff1f; 1、方法区&#xff1a;&#xff08;线程共享&#xff…

Linux交换空间的创建使用

交换空间&#xff1a; 换出&#xff1a;将内存中不常用&#xff08;冷数据&#xff09;的放去硬盘里 换出&#xff1a;内存要使用这部分数据时&#xff0c;将硬盘的这部分数据放入内存 在内存和硬盘上用来交换数据的空间就是交换空间 创建交换空间的步骤 1.去磁盘上创建一个分…

Linux中的高级IO函数(一)pipe socketpair dup

Linux提供了很多高级的I/O函数。它们并不像Linux基础I/O函数&#xff08;比如open和read&#xff09;那么常用&#xff08;编写内核模块时一般要实现这些I/O函数&#xff09;&#xff0c;但在特定的条件下却表现出优秀的性能。这些函数大致分为三类&#xff1a; 用于创建文件描…

Mongodb语法使用说明(含详细示例)

点击下载《Mongodb语法使用说明&#xff08;含详细示例&#xff09;》 1. 前言 MongoDB是一款高性能、开源、面向文档的NoSQL数据库&#xff0c;它使用类似JSON的BSON格式存储数据&#xff0c;提供了灵活的数据模型和强大的查询功能。本文将详细介绍MongoDB数据库的基本增删改…

CSS常用属性之(列表、表格、鼠标)属性,(如果想知道CSS的列表、表格、鼠标相关的属性知识点,那么只看这一篇就足够了!)

前言&#xff1a;在学习CSS的时候&#xff0c;必不可少的就要学习选择器和常见的属性&#xff0c;而本篇文章讲解的是CSS中的列表、表格、背景、鼠标属性。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 大致了解一下本篇文章…

new String和直接赋值的一些问题

分析1 我们先看以下代码&#xff1a; String str1 "abc"; // 在常量池中String str2 new String("abc"); // 在堆上System.out.println(str1 str2)以上结果的输出是什么&#xff1f; 输出&#xff1a;false 前置知识&#xff1a; 在JVM中&#xff0c…

VForm3的文件上传后的一种文件回显方式

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…

(C++) 内类生成智能指针shared_from_this介绍

文章目录 &#x1f601;介绍&#x1f914;类外操作&#x1f605;错误操作&#x1f602;正确操作 &#x1f914;类内操作&#x1f62e;std::enable_shared_from_this<>&#x1f62e;奇异递归模板 CRTP&#xff08;Curiously Recurring Template Pattern&#xff09;&#…