ansible配置k8s一主多从准备工作
·
配置需求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 #监测磁盘挂载是否有错误
更多推荐
所有评论(0)