当前位置: 首页 > news >正文

rocky9.4部署k8s群集v1.28.2版本(containerd)(纯命令)

文章目录

        • 前言
        • 三个节点的主机名
      • 所有节点操作
        • 主机名和ip解析
        • 关闭交换分区,关闭防火墙,关闭selinux
        • 更换阿里云yum源
        • 时间同步
        • 修改内核参数
        • 修改系统最大打开文件数
        • 开启bridge网桥过滤,加载br_netfilter模块,加载配置文件
        • 安装ipset及ipvsadm
          • 配置ipvsadm模块加载方式
          • 授权、运行、检查是否加载
        • 安装containerd
          • 安装一些系统工具、添加软件源信息、修改仓库地址为阿里云、创建缓存、安装containerd、启动containerd
          • 生成并修改containerd默认配置文件
          • 重启containerd,设置containerd为开启自启
        • 安装kubelet、kubeadm、kubectl
          • kubernetes 阿里云YUM源
          • 查看当前可安装版本
          • 设置cgroup
          • 设置kubelet开机自启
        • master节点操作
          • 初始化群集
          • 添加k8s快捷键
        • 其他节点操作
          • 加入k8s群集(根据提示,按照自己的来)
        • 所有节点操作
          • 集群网络插件部署 calico
            • 镜像压缩包,导入到所有节点中
        • master节点操作
          • 获取calico安装清单
          • 部署calico
        • 最后结果

前言

三台机器

可安可不安的都装上了

没有太多解释,基本都是命令,因为命令很多,加上解释就显得很乱

如果是初始环境可直接从头到尾复制粘贴,命令都验证过

过程有疑问可私信或评论

操作系统版本是rocky9.4

容器运行时是containerd

是pve的虚拟机

三个节点的主机名

我这里是三台机器,需要先设置好主机名

hostnamectl set-hostname testk8s1
hostnamectl set-hostname testk8s2
hostnamectl set-hostname testk8s3

所有节点操作

主机名和ip解析
cat >> /etc/hosts << EOF
10.20.21.166 testk8s1
10.20.21.167 testk8s2
10.20.21.168 testk8s3
EOF
关闭交换分区,关闭防火墙,关闭selinux
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
更换阿里云yum源
cd /etc/yum.repos.d
mkdir bak
cp *repo* bak/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*.repodnf makecache
时间同步
dnf install chrony
vim /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# pool 2.rocky.pool.ntp.org iburst      # 注释该行,添加如下两行,理论上想添加多少时间服务器都可以
Server ntp.aliyun.com iburst            # 阿里时间源服务器
Server time1.cloud.tencent.com iburst    # 腾讯时间源服务器
systemctl enable --now chronyd
date
修改内核参数
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_max_tw_buckets = 20480 
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20 
EOF
sysctl -p
修改系统最大打开文件数
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
EOF
开启bridge网桥过滤,加载br_netfilter模块,加载配置文件
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
modprobe br_netfilter && lsmod | grep br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
安装ipset及ipvsadm
yum -y install ipset ipvsadm
配置ipvsadm模块加载方式
cat > /lib/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
授权、运行、检查是否加载
chmod 755 /lib/modules/ipvs.modules && bash /lib/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
安装containerd
安装一些系统工具、添加软件源信息、修改仓库地址为阿里云、创建缓存、安装containerd、启动containerd
dnf install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
dnf makecache
dnf install containerd -y
systemctl enable --now containerd.service
生成并修改containerd默认配置文件
containerd config default > /etc/containerd/config.toml
vim /etc/containerd/config.toml

修改带有#的即可

  [plugins."io.containerd.grpc.v1.cri"]...sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.8" # 修改containerd镜像拉取地址为阿里云...[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]...SystemdCgroup = true # 启动Cgroup
重启containerd,设置containerd为开启自启
systemctl daemon-reload
systemctl restart containerd.service
systemctl enable containerd --now
安装kubelet、kubeadm、kubectl
kubernetes 阿里云YUM源
cat > /etc/yum.repos.d/k8s.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
查看当前可安装版本
dnf list kubeadm.x86_64 --showduplicates | sort -r
dnf list kubelet.x86_64 --showduplicates | sort -r
dnf list kubectl.x86_64 --showduplicates | sort -r

安装指定版本

dnf -y install  kubeadm-1.28.2-0  kubelet-1.28.2-0 kubectl-1.28.2-0
设置cgroup
tee > /etc/sysconfig/kubelet <<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
EOF
设置kubelet开机自启
systemctl enable kubelet
master节点操作
初始化群集

注:这里已经指定了镜像源为阿里云,一般不会出现镜像下载不下来的情况,如果出现,通过kubectl descirbe pod名称找到镜像名称,通过本机下载镜像上传到服务器

kubeadm init --kubernetes-version=v1.28.2 --pod-network-cidr=10.244.0.0/16 --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address=10.20.21.166

根据提示进行初始化操作
在这里插入图片描述

添加k8s快捷键
yum install -y bash-completion
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
其他节点操作
加入k8s群集(根据提示,按照自己的来)

在这里插入图片描述

kubeadm join 10.20.21.166:6443 --token neo62m.wz0vo8i092u22rkp \--discovery-token-ca-cert-hash sha256:2af19bd4a05e759c561b9ec346c0a27da5a56fe17449e6b00720e8cd77af9810 
所有节点操作
集群网络插件部署 calico

因为镜像不好下载,所以我已经传到csdn上了,看下我上传的资源下载下来就行

镜像压缩包,导入到所有节点中

注:containerd导入镜像要指定命名空间!!!

tar xf  calico_v3.25.0.tar
cd calicofor img in *.tar; doctr -n k8s.io images import "$img"
done
master节点操作
获取calico安装清单
wget https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml --no-check-certificate

如果获取不到,浏览器访问

https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

然后复制即可

部署calico
kubectl apply -f calico.yaml
最后结果


在这里插入图片描述

http://www.xdnf.cn/news/122509.html

相关文章:

  • 运维打铁:Centos 7使用yum安装 Redis 5
  • 模糊控制Fuzzy control
  • 《深入理解计算机系统》阅读笔记之第一章 计算机系统漫游
  • 面试之消息队列
  • OpenAI为何觊觎Chrome?AI时代浏览器争夺战背后的深层逻辑
  • Phthon
  • 智能吸顶灯/摄影补光灯专用!FP7195双通道LED驱动,高效节能省空间 !
  • 学员答题pk知识竞赛小程序怎么做
  • 视频汇聚平台EasyCVR赋能高清网络摄像机:打造高性价比视频监控系统
  • C++如何理解和避免ABA问题?在无锁编程中如何解决
  • 对话模型和补全模型区别
  • 聊聊Spring AI Alibaba的OneNoteDocumentReader
  • 【C/C++干货】VS Code 快捷键大全
  • 线上助农产品商城小程序源码介绍
  • 测试模版x
  • HTML5 详细学习笔记
  • torch serve部署原理探索
  • Comsol 超声波测厚度
  • Flask + ajax上传文件(一)
  • 访问者模式:分离数据结构与操作的设计模式
  • 什么是CMMI认证?CMMI评估内容?CMMI认证能带来哪些好处?
  • JCP官方定义的Java技术体系组成部分详解
  • RHCE练习1
  • 正则表达式学习指南
  • 深度解析 TransmittableThreadLocal(TTL):原理、实战与优化指南
  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录 第四章 不定积分同步测试卷 A卷
  • flutter 中各种日志
  • Flutter 在全新 Platform 和 UI 线程合并后,出现了什么大坑和变化?
  • 【Qt6 QML Book 基础】07:布局项 —— 锚定布局与动态交互(附完整可运行代码)
  • 使用localStorage的方式存储数据,刷新之后,无用户消息,需要重新登录,,localStorage 与 sessionStorage 的区别