最近在学习K8S部署实验环境,把搭建环境分享下。
此文只是部署环境初始化工作。具体集群的构建后面分享。
只是学习环境只有一个主机。
实验环境:
操作系统:CentOS7.9.2009
master:192.168.111.101
node-1:192.168.111.104
node-2:192.168.111.105
每个节点都需要执行初始化脚本。
完整脚本文件请在文后获取:
read -p "请输入主机名:" hstnhostnamectl set-hostname $hstn
ifconfigread -p "请输入本机IP:" localIPecho "$localIP $hstn" >> /etc/hosts
备份当前源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的CentOS-Base.repo到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 生成缓存yum clean all && yum makecache
有一些包不是安装K8S必须的,工作中用到的,就都写在这里了,安装K8S只需要第一行的包就可以了。
yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools \git yum-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl-devel zip unzip sudo \zlib-devel iftop rsync ansible iotop htop automake autoconf libtool pcre pcre-devel nmap-ncat
禁用firewalld防火墙
systemctl stop firewalldsystemctl disable firewalld
iptables服务配置
yum -y install iptables-servicessystemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
关闭swap分区可以增强Kubernetes中pod的效率
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
关闭SELINUX服务
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
设置内核参数文件
cat > /etc/sysctl.d/kubernetes.conf <
生效配置
sysctl -p /etc/sysctl.d/kubernetes.conf
设置系统时区为中国/上海
timedatectl set-timezone Asia/Shanghai
将当前的UTC时间写入硬件时钟
timedatectl set-local-rtc 0
重启依赖于系统时间的服务
systemctl restart rsyslogsystemctl restart crond
创建持久化保存日志的目录
mkdir /var/log/journal # 持久化保存日志的目录
mkdir /etc/systemd/journald.conf.dcat > /etc/systemd/journald.conf.d/99-prophet.conf <
重启日志系统
systemctl restart systemd-journald
安装Elrepo源
因为CentOS7自带的内核版本为3.10.x的系列,可能会导致运行k8s有bug
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgyum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
在线安装内核
yum --enablerepo=elrepo-kernel install kernel-lt -y
设置开机从新内核启动
安装完成后检查/boot/grub2/grub.cfg中,查看内核启动顺序。
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
手动选择启动顺序为0 表示第一个,根据时间顺序选择。
grub2-set-default 0
加载内核对应模块
modprobe br_netfilter
写对应配置模块脚本
cat > /etc/sysconfig/modules/ipvs.modules <
引导ipvs相关依赖模块加载
chmod 755 /etc/sysconfig/modules/ipvs.modulesbash /etc/sysconfig/modules/ipvs.moduleslsmod | grep -e ip_vs -e nf_conntrack_ipv
重启后请确定模块是否被引导
安装相关驱动
yum install -y yum-utils device-mapper-persistent-data lvm
添加docker源,采用阿里源
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
卸载已安装的docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
安装docker服务
yum update -y && yum install -y docker-ce docker-ce-cli containerd.io bash-completion
创建对应目录
mkdir -p /etc/dockermkdir -p /etc/systemd/system/docker.service.d
配置daemon文件
graph :指定docker文件保存位置
registry-mirrors:使用的阿里云加速,大家可以使用自己的
cat > /etc/docker/daemon.json <
重启docker服务
sudo systemctl daemon-reloadsudo systemctl restart dockersudo systemctl enable docker
初始化完成,重新启动系统
环境初始化完成后,就可以开始部署kubernetes集群。下期分享。
完整脚本获取:
https://www.aliyundrive.com/s/U7wvUEwKYwJ
留言与评论(共有 0 条评论) “” |