配置需求3台虚拟机,每台虚拟机2核心CPU,4G内存,50G硬盘;
IP地址规划:
master - 192.168.1.10  2CPU/4G内存/50G
node1  - 192.168.1.11  2CPU/4G内存/50G
node2  - 192.168.1.12  2CPU/4G内存/50G

sudo yum install lrzsz -y

上传Linux系统初始化脚本

bash 接脚本文件名称
hostnamectl set-hostname master #修改主机名
su -                            #切换环境 刷新主机名
hostnamectl set-hostname node1  
su -                            #切换环境 刷新主机名
hostnamectl set-hostname node2
su -                            #切换环境 刷新主机名

master节点安装ansible控制多节点执行命令

sudo dnf install -y ansible #安装软件
cd /etc/ansible             #进入目录
rm -rf hosts                #删除软件或vim hosts 然后 :%d 清空内容



vim hosts        #创建主机清单添加主机组
[k8s]            #主机组
192.168.1.10     #主机ip    
192.168.1.11
192.168.1.12
:wq              #英文冒号wq 保存退出


ansible all --list-hosts   #列出所有清单显示下列内容清单内容正确
 hosts (3):
    192.168.1.10
    192.168.1.11
    192.168.1.12
#ansible控制主节点配置免密登录下发ssh公钥给各个节点实现批量执行命令
ssh-keygen   #全程按回车确认
for ip in 192.168.1.{10..12}; do ssh-copy-id $ip; done #使用for循环执行,输入yes 然后输入主机密码 重复三次


# 发送到指定用户的主机
ssh-copy-id user@192.168.1.11

# 发送到非标准端口的主机
ssh-copy-id -p 2222 user@192.168.1.11

ssh 192.168.1.11 #检测是否配置免密登录成功,直接登录1.11主机表示成功无需要输密码。 

、

#创建文件目录下发配置文件给其他节点使用

mkdir  /root/k8s  #创建目录
cd     /root/k8s  #进入目录
cp /etc/hosts .   #拷贝主机映射到当前目录
vim hosts         #行尾添加ip和主机名 解析用
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node2
:wq               #保存退出
ansible k8s -m copy -a 'src=hosts dest=/etc/'  #ansible批量执行 src表示源文件路径  dest表示目标路径

vim /root/k8s.conf                          #创建文件写入下面参数 k8s必须开启参数 
net.bridge.bridge-nf-call-ip6tables = 1     #开启ipv6
net.bridge.bridge-nf-call-iptables = 1      #开启ipv4
net.ipv4.ip_forward = 1                     #开启路由转发

ansible k8s -m copy -a 'src=k8s.conf dest=/etc/sysctl.d/' #拷贝文件到/etc/sysctl.d/内核参数目录开机自动加载。

ansible k8s -m shell -a 'sysctl -p /etc/sysctl.d/k8s.conf'  #加载配置文件此时会报错
ansible k8s -m shell -a 'modprobe br_netfilter'  #批量执行命令 加载模块
lsmod | grep br_netfilter                        #查看模块是否存在
ansible k8s -m shell -a 'sysctl -p /etc/sysctl.d/k8s.conf'  #再次加载配置文件成功。

关闭 SWAP 交换分区
为了保证 kubelet 正常工作,k8s 强制要求禁用
ansible k8s -m shell -a "swapoff -a && \ sed -ri 's/.*swap.*/#&/' /etc/fstab" #临时关闭swap并注释fstab文件中的swap内容重启不会开启
mount -a    #监测磁盘挂载是否有错误

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐