Kubeadm搭建高可用K8S(一)环境准备

前提:自行安装VMWare

1.准备至少三套CentOS7系统,入门配置:master节点需要4G4C,worker节点需要2G2C

2.每台机器配置好静态IP

3.保证各个机器之间和宿主机之间通信没有问题

一、多master节点单node节点机器配置

集群角色IP主机名安装的组件
Master-1192.168.74.10master01apiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calico
Master-2192.168.74.11master02apiserver、controller-manager、scheduler、kubelet、etcd、docker、kube-proxy、keepalived、nginx、calico
Worker-1192.168.74.12worker01kubelet、kube-proxy、docker、calico、coredns
Worker-2192.168.74.13worker02kubelet、kube-proxy、docker、calico、coredns
virtual-ip(VIP)192.168.74.110

二、各机器实验环境准备

配置虚拟机静态IP

vim /etc/sysconfig/network-scripts/ifcfg-ens33

配置主机名

# 每一台机器都操作
# 机器之间可以通过主机名访问
hostnamectl set-hostname master1 && bash
# 查看主机状况
hostnamectl

配置主机host文件

vim /etc/hosts
# [ip] [hostname]
192.168.74.10 master01
# 【验证】互相ping域名,能够通
ping master02
ping www.baidu.com

配置主机之间无密码登录

# 要在每一台机器上都执行,且都需要拷贝(两两相互)
# 使得机器之间可以无密码相互访问
ssh-keygen  #一路回车,不输入密码
# 把本地生成的密钥文件和私钥文件拷贝到远程主机
ssh-copy-id master1
ssh-copy-id master2
ssh-copy-id worker1
ssh-copy-id -i /root/.ssh/id_rsa.pub master1
#【验证】在master1上执行
ssh root@master2
# 是否可以无密码跳转登录
ls -a #查看隐藏文件夹 .ssh

关闭交换分区swap

# 要在每一台机器上都操作
# 避免资源耗尽导致k8s异常,提升性能
#1.临时关闭
swapoff -a
#2.永久关闭:注释swap挂载,给swap这行开头加一下注释
vim /etc/fstab
    /dev/mapper/centos-swap swap      swap    defaults        0 0
#如果是克隆的虚拟机,需要删除UUID
# 运行完毕后,查看交换分区情况,执行如下命令:
free -m

修改机器内核参数 

# 要在每一台机器上都操作
# 开启包转发等等(??)
modprobe br_netfilter
​
echo "modprobe br_netfilter" >> /etc/profile
​
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
​
# 在运行时配置内核参数 -p:从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
sysctl -p /etc/sysctl.d/k8s.conf
​
# 为什么要修改内核参数
#/etc/sysctl.d/k8s.conf文件中三行参数的意思

关闭firewalld防火墙

# 要在每一台机器上都操作
# 安全相关,kubeadm初始化检测项目
systemctl stop firewalld ; systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld 
# 或者
firewall-cmd --state

关闭selinux (?)

# 要在每一台机器上都操作
# 安全相关,kubeadm初始化检测项目
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#修改selinux配置文件之后,重启机器,selinux配置才能永久生效
​
#显示Disabled说明selinux已经关闭
getenforce

配置阿里云的repo源

# 要在每一台机器上都操作
# 安装文件操作工具
yum install lrzsz -y
yum install openssh-clients
# 备份repo源(只需要操作Base源即可,其他保留)
mkdir /root/repo.bak
cd /etc/yum.repos.d/
mv CentOS-Base.repo /root/repo.bak/
# 把CentOS-Base.repo文件上传到master1主机的/etc/yum.repos.d/目录下
​
#安装yum-utils
yum -y install yum-utils
# 配置国内阿里云docker的repo源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 配置epel.repo
# 直接上传文件即可
# 最终/etc/yum.repo.d/下有 CentOS-Base.repo、docker-ce.repo、epel.repo

配置安装k8s组件需要的阿里云的repo源 (二进制不需要做)

# 编辑文件
vim  /etc/yum.repos.d/kubernetes.repo
# 内容如下
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
# 使用scp命令将文件copy到其他虚拟机
scp /etc/yum.repos.d/kubernetes.repo master2:/etc/yum.repos.d/

配置时间同步

# 要在每一台机器上都操作
# kubeadm要求的
# 安装时间同步工具
yum install ntpdate -y
# 跟网络时间做同步
ntpdate cn.pool.ntp.org
# 把时间同步做成计划任务
crontab -e
# 内容如下:
* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org
# 重启定时服务
service crond restart

开启IPVS

# 要在每一台机器上都操作
# 作用:数据包转发
# 把ipvs.modules脚本上传到master1机器的/etc/sysconfig/modules/目录下,其他可使用scp命令拷贝
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash
# 执行命令并检测
/etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs
# 结果如下即可
ip_vs_ftp              13079  0 
nf_nat                 26583  1 ip_vs_ftp
ip_vs_sed              12519  0 
ip_vs_nq               12516  0 
ip_vs_sh               12688  0 
ip_vs_dh               12688  0 

安装基础软件包

# 要在每一台机器上都操作
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel epel-release openssh-server socat  ipvsadm conntrack ntpdate telnet ipvsadm

安装iptables

# 要在每一台机器上配置
# 由于k8s配置一些规则要用到iptables
yum install iptables-services -y
# 禁用
service iptables stop && systemctl disable iptables
# 清空防火墙规则
iptables -F

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgebraFly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值