news 2026/4/17 21:52:43

K8s-1.29.2二进制安装-第一章

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8s-1.29.2二进制安装-第一章

从本章来完成安装k8s学习的最后一种安装方式(二进制安装),系统使用Rockly9.6,K8s版本1.29.2,一共会分成几张进行编写。

1. 安装Topo

2.环境初始化

1、镜像下载(所有节点)

# 官方下载地址
https://rockylinux.org/download

# 阿里云镜像下载地址
https://mirrors.aliyun.com/rockylinux/9/isos/x86_64/?spm=a2c6h.25603864.0.0.29696621VzJej5

2、环境配置(所有节点)

2.1 网卡配置(所有主机都要设置好IP)

# cat /etc/NetworkManager/system-connections/ens160.nmconnection[ipv4]method=manualaddress1=192.168.1.12/24,192.168.1.1dns=114.114.114.114;8.8.8.8

2.2 修改主机名和/etc/hosts解析文件

# 设置主机名hostnamectl set-hostname server170# Host文件解析# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.1.170 server170192.168.1.171 server171192.168.1.172 server172192.168.1.173 server173192.168.1.174 server174

2.3 Rocky 系统软件源更换

# 使用阿里源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/[Rr]ocky*.repo# 使用私有仓库sed-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=http://192.168.1.12:8081/repository/Rockylinux-YumGroup|g'\-i.bak\/etc/yum.repos.d/[Rr]ocky*.repo dnf makecache

2.4 防火墙修改 firewalld 为 iptables

systemctl stop firewalld systemctl disable firewalld yum -yinstalliptables-services systemctl start iptables iptables -F# 清理iptables规则systemctlenableiptables

2.5 禁用 Selinux

setenforce0sed-i"s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config grubby --update-kernel ALL --argsselinux=0

2.6 设置时区及时间同步

# 将3台master构建成高可用时间服务器,2台node作为客户端向时间服务器同步# 同步时间timedatectl set-timezone Asia/Shanghai# 3台服务端(master)yuminstallchrony -ycat>/etc/chrony.conf<<EOF pool ntp1.aliyun.com iburst pool ntp2.aliyun.com iburst pool ntp3.aliyun.com iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync allow 192.168.1.0/24 local stratum 10 # 设置权重,这个3台服务器要不同 keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony EOFsystemctl restart chronyd;systemctlenablechronyd# 客户端(node)yuminstallchrony -ycat>/etc/chrony.conf<<EOF pool 192.168.1.170 iburst pool 192.168.1.171 iburst pool 192.168.1.172 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync keyfile /etc/chrony.keys leapsectz right/UTC logdir /var/log/chrony EOFsystemctl restart chronyd;systemctlenablechronyd# 使用客户端进行验证chronyc sources -v

2.7 关闭 swap 分区

swapoff -ased-i's:/dev/mapper/rl-swap:#/dev/mapper/rl-swap:g'/etc/fstab

2.8 安装配置IPVs

# 安装 ipvsyuminstallipvsadm ipset sysstat conntrack libseccomp -ycat>>/etc/modules-load.d/ipvs.conf<<EOF ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack ip_tables ip_set xt_set ipt_set ipt_rpfilter ipt_REJECT ipip EOFsystemctl restart systemd-modules-load.service lsmod|grep-e ip_vs -e nf_conntrack

2.9 安装必备的工具包

yum update -y&&yum -yinstallwgetpsmiscvimnet-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2gittarcurl

2.10 将calico网卡排除被NetworkManager所管理(后期会用calico进行管理)

cat>/etc/NetworkManager/conf.d/calico.conf<<EOF [keyfile] unmanaged-devices=interface-name:cali*;interface-name:tunl* EOFsystemctl restart NetworkManager

2.11 内核参数优化

# 配置 ulimitulimit-SHn65535cat>>/etc/security/limits.conf<<EOF * soft nofile 655360 * hard nofile 131072 * soft nproc 655350 * hard nproc 655350 * seft memlock unlimited * hard memlock unlimitedd EOF# 修改内核参数cat<<EOF>/etc/sysctl.d/k8s.confnet.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-iptables = 1 fs.may_detach_mounts = 1 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_watches=89100 fs.file-max=52706963 fs.nr_open=52706963 net.netfilter.nf_conntrack_max=2310720 net.ipv4.tcp_keepalive_time = 600 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_keepalive_intvl =15 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_max_orphans = 327680 net.ipv4.tcp_orphan_retries = 3 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.ip_conntrack_max = 65536 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_timestamps = 0 net.core.somaxconn = 16384 net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 net.ipv6.conf.all.forwarding = 1 EOFsysctl --system

3、 安装 Docker

# 二进制包下载地址:https://download.docker.com/linux/static/stable/x86_64/# wget https://mirrors.ustc.edu.cn/docker-ce/linux/static/stable/x86_64/docker-25.0.3.tgztarxf docker-*.tgzcpdocker/* /usr/bin/# 创建 containerd 的 service 文件,并且启动cat>/etc/systemd/system/containerd.service<<EOF [Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target local-fs.target [Service] ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/bin/containerd Type=notify Delegate=yes KillMode=process Restart=always RestartSec=5 LimitNPROC=infinity LimitCORE=infinity LimitNOFILE=1048576 TasksMax=infinity OOMScoreAdjust=-999 [Install] WantedBy=multi-user.target EOFsystemctlenable--now containerd.service# 准备 docker 的 service 文件cat>/etc/systemd/system/docker.service<<EOF [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service cri-docker.service docker.socket containerd.service Wants=network-online.target Requires=docker.socket containerd.service [Service] Type=notify ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP$MAINPIDTimeoutSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes KillMode=process OOMScoreAdjust=-500 [Install] WantedBy=multi-user.target EOF#准备 docker 的 socket 文件cat>/etc/systemd/system/docker.socket<<EOF [Unit] Description=Docker Socket for the API [Socket] ListenStream=/var/run/docker.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target EOF# 配置加速器mkdir/etc/docker/ -pvcat>/etc/docker/daemon.json<<EOF { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": [ "https://docker.m.daocloud.io" ], "max-concurrent-downloads": 10, "log-driver": "json-file", "log-level": "warn", "log-opts": { "max-size": "10m", "max-file": "3" }, "data-root": "/var/lib/docker" } EOF# 启动 Dockergroupadddocker systemctl daemon-reload systemctlenable--now docker.socket systemctlenable--now docker.service systemctl status docker.service docker info

4、安装 cri-docker

# 解压 cri-docker# https://github.com/Mirantis/cri-dockerd/releases/# wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.10/cri-dockerd-0.3.10.amd64.tgztarxvf cri-dockerd-*.amd64.tgzcpcri-dockerd/cri-dockerd /usr/bin/chmod+x /usr/bin/cri-dockerd# 写入启动 cri-docker 配置文件cat>/usr/lib/systemd/system/cri-docker.service<<EOF [Unit] Description=CRI Interface for Docker Application Container Engine Documentation=https://docs.mirantis.com After=network-online.target firewalld.service docker.service Wants=network-online.target Requires=cri-docker.socket [Service] Type=notify ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.7 ExecReload=/bin/kill -s HUP$MAINPIDTimeoutSec=0 RestartSec=2 Restart=always StartLimitBurst=3 StartLimitInterval=60s LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TasksMax=infinity Delegate=yes KillMode=process [Install] WantedBy=multi-user.target EOF# 写入 cri-docker 的 socket 配置文件cat>/usr/lib/systemd/system/cri-docker.socket<<EOF [Unit] Description=CRI Docker Socket for the API PartOf=cri-docker.service [Socket] ListenStream=%t/cri-dockerd.sock SocketMode=0660 SocketUser=root SocketGroup=docker [Install] WantedBy=sockets.target EOF# 启动 cri-dockersystemctl daemon-reload systemctlenable--now cri-docker.service systemctl status cri-docker
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:03:25

力扣98 验证二叉搜索树 java实现

98. 验证二叉搜索树给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下&#xff1a;节点的左子树只包含 严格小于 当前节点的数。节点的右子树只包含 严格大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例…

作者头像 李华
网站建设 2026/4/16 21:38:42

WPF个人文档(一)—— 基础语法组件篇

一、XAML基础语法1.xaml语言简介XAML 是一种声明性标记语言&#xff0c;应用于 .NET 编程模型时&#xff0c;XAML 简化了为 .NET 应用创建 UI以文本形式表示时&#xff0c;XAML 文件是通常具有扩展名的 .xaml 文件可通过任何XML 编码进行编码&#xff0c;但编码通常为UTF-8格式…

作者头像 李华
网站建设 2026/4/15 23:17:26

【必藏干货】Java程序员无缝转AI大模型:优势深挖+0基础落地指南

当Java遇上AI大模型&#xff0c;是技术跨界的双赢还是转型的冒险&#xff1f;作为深耕后端的Java开发者&#xff0c;你是否困惑于“多年经验能否复用”“零AI基础该从何入手”&#xff1f;这篇专为Java人定制的收藏级攻略&#xff0c;从行业趋势到代码实操全拆解&#xff0c;让…

作者头像 李华