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 buildahsudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum makecachesudo yum install -y docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo 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.mzph.cn/bicheng/2747.shtml

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

相关文章

AI视频教程下载:ChatGPT个人生产力提升指南

在本课程中&#xff0c;您将学习如何成功地将ChatGPT融入您的工作和生活&#xff0c;以优化您的社交媒体内容并扩展您的业务。 您将学习如何使用ChatGPT自动创建、校对、总结和翻译文本&#xff0c;以及如何与机器人沟通以实现您的目标。 您还将学习如何创建jQuery代码、编程…

倪海厦是怎么去思考问题的(一)下

1《天纪》是自然法则 2自然法则是个《真理》 3《真理》不需要再证实 4《真理》没有二元对立 紧接着第三点&#xff1a;真理不需要再去证实。现在有很多的人呢&#xff0c;看书学习&#xff0c;自认为自己很聪明&#xff0c;总要去证实一些东西。证明谁的说法是错的&#xff…

麒麟龙芯loongarch64 electron 打包deb包

在麒麟龙芯&#xff08;loongarch64&#xff09;电脑上 使用electron 开发桌面应用。之前用electron-packager 打包出来的是文件夹 是 unpack 包。现在需要打包deb包&#xff0c;依据开发指南开始打包。 在项目文件夹下 打开终端 输入 npm run packager 先打包unpack包 然后…

信创测试究竟是什么?与性能测试的差别是什么?

信创测试和性能测试在多个方面存在显著的区别。 首先&#xff0c;信创测试是一个更为全面和系统的测试过程&#xff0c;它主要针对信创工程项目中的产品、系统等进行测试和验证&#xff0c;以确保其自主可控和满足性能要求。这包括适配测试、功能测试、性能测试、安全测试、兼…

Day40 网络编程(二) InetAddress类, Socket ,TCP编程,UDP编程

Day40 网络编程&#xff08;二&#xff09; InetAddress类, Socket ,TCP编程&#xff0c;UDP编程 文章目录 Day40 网络编程&#xff08;二&#xff09; InetAddress类, Socket ,TCP编程&#xff0c;UDP编程一、 InetAddress类二、 Socket三、TCP编程四、UDP编程 一、 InetAddre…

ATFX汇市:澳大利亚一季度CPI年率大降,澳元升值态势延续

▲ATFX图 据澳大利亚统计局数据&#xff0c;第一季度CPI年率最新值3.6%&#xff0c;相比前值4.1%大降0.5个百分点&#xff0c;但仍高于3.5%的预期值。历史数据看&#xff0c;自从2022年四季度创出7.8%阶段性高点之后&#xff0c;澳大利亚的季度CPI年率就保持着稳定的下降态势。…

ssm项目启动的时候 修改 配置文件 定义的值

ssm项目启动的时候 修改 配置文件 定义的值 import org.springframework.beans.factory.InitializingBean; import org.springframework.core.env.ConfigurableEnvironment;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import …

SQLite去除.db-shm和.db-wal文件【已解决】

原因是开启了WAL 日志模式&#xff0c;实现日志回滚功能&#xff1b; 如果是多个连接访问数据库就会出现共享内存-shm文件 PRAGMA journal_modeWAL; 解决办法就是设置为默认模式 PRAGMA journal_modeDELETE; 执行成功后断开再重新连接&#xff0c;就不会出现这两个文件了…

翻译《The Old New Thing》 - Why are HANDLE return values so inconsistent?

Why are HANDLE return values so inconsistent? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20040302-00/?p40443 Raymond Chen 2004年01月27日 简介 在处理 Windows 编程中的句柄时&#xff0c;开发者需要面对的一个挑战是不同函数可…

SWCTF

easy_php 源码 <?php// flag is in flag.php highlight_file(__FILE__); ini_set(display_errors, 0); error_reporting(0);if (isset($_GET[myon1]) && isset($_GET[myon2]) && isset($_GET[myon3])) {$myon1 $_GET[myon1];$myon2 $_GET[myon2];$myon…

苍穹外卖day12 (Apache POI) 数据统计-Excel报表

文章目录 前言一、工作台1.1 今日数据1.1.1 接口设计1.1.2 代码实现 1.2 订单管理接口1.3菜品总览接口1.4 套餐总览接口1.5 订单搜索&#xff08;已完成&#xff09;1.6 各个状态的订单数量统计&#xff08;已完成&#xff09; 二、Apache POI2.1 概述2.2 效果展示 三、导出运营…

vue中web端播放rtsp视频流(摄像头监控视频)(海康威视录像机)

一、ffmpeg安装​​​​​​ ffmpeg下载 https://ffmpeg.org/download.html找ffmpeg-release-essentials.zip点击下载&#xff0c;下载完解压ffmpeg.exe 程序运行 二、配置ffmpeg环境变量 添加成功后验证是否生效任意地方打开cmd窗口输入 ffmpeg 打印如下表示成功 三、node…

谈谈对情绪周期和题材轮动的个人理解

首先讲两个概念&#xff1a; 1、情绪周期 我个人理解的情绪周期&#xff0c;就是不管在大盘跌与涨的过程中&#xff0c;短线情绪都会有几个阶段&#xff0c;低位震荡&#xff0c;主升浪&#xff0c;高位震荡&#xff0c;退潮期&#xff0c;这几个阶段。 低位震荡指的是&#xf…

未来五十年,智能科技将如何改变传统行业格局?

未来五十年内&#xff0c;随着人工智能&#xff08;AI&#xff09;和智能科技的不断发展&#xff0c;许多行业将面临被取代的风险。虽然这种趋势可能会带来一些担忧&#xff0c;但也将为人类社会带来巨大的变革。下面将详细探讨哪些行业可能会在未来被智能科技所取代。 ▶ 制造…

利用弹性云主机部署高效数据库系统

在当今云计算的时代&#xff0c;弹性云主机&#xff08;EC2&#xff09;为我们提供了前所未有的灵活性和可扩展性&#xff0c;使得在云端部署高效的数据库系统成为可能。本文将从选择适当的云服务配置、优化数据库设置、建立完备的数据备份与恢复策略&#xff0c;以及加强数据库…

ardupilot开发 --- Jetson Orin Nano 篇

多情应笑我早生华发 0. 一些概念1. 系统安装&#xff08;刷机、flash&#xff09;1.1 使用SD卡安装系统1.2 使用固态硬盘安装系统 0. 一些概念 官网&#xff1a;https://www.nvidia.com/en-us/ Developers Documentation Getting Started Jetson Developer Kits User Guid…

「C++ 内存管理篇 1」C++动态内存分配

〇、C语言的动态内存分配方式 关于C语言的动态内存分配方式&#xff0c;简单来讲就是使用四个库函数&#xff1a;malloc、calloc、 realloc、free对堆区的内存进行灵活的分配和回收。有兴趣的话可以看看这篇文章: 「C语言进阶1」动态内存分配 一、C的动态内存分配方式 1. 什么…

国产大模型各自优势如何?大家都怎么选?

近日&#xff0c;一份国产大模型排行榜在网上流传&#xff0c;显示文心一言、通义千问、Kimi位居前三名&#xff0c;其中文心一言用户数为2亿&#xff0c;与其他产品拉开明显差距&#xff1b;前三名月访问量总计超过3000万。国内大模型也开始出现分化效应。

Linux部署MySQL

部署MySQL 先停掉虚拟机中的MySQL&#xff0c;确保你的虚拟机已经安装Docker&#xff0c;且网络开通的情况下&#xff0c;执行下面命令即可安装MySQL&#xff1a; docker run -d \ --name mysql \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORD123 \ mysql 安…

Linux fcntl函数

fcntl函数 读法&#xff1a;file control函数 作用&#xff1a;复制文件描述符、设置/获取文件的状态标志 int fcntl(int fd, int cmd, ... /* arg */ )fd是文件描述符&#xff0c;cmd是命令&#xff08;定义的宏&#xff09;&#xff0c;… 表示可变的参数&#xff08;可有可…