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

2024-04-25 06:28

本文主要是介绍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 服务器的证书,增强安全性。

这篇关于5分钟快速搭建k8s集群1.29.x的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/933915

相关文章

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv