首页 > 系统相关 >安装k8s系统初始化的shell脚本

安装k8s系统初始化的shell脚本

时间:2022-09-19 21:36:30浏览次数:96  
标签:初始化 shell kernel -- hostname elrepo echo yum k8s

]# cat init_centos7.sh
#! /bin/bash
export LANG="en_US.UTF-8"

init_yum_repo(){
echo "===================初始化yum base 源========================="
sleep 2
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
echo ""
echo "安装基础工具......"
sleep 2
yum install vim-enhanced wget openssl* telnet lrzsz bash-completion net-tools -y
echo "init_yum_repo done!"
echo ""
echo ""
}

set_hostname(){
echo "====================设置hostname============================="
sleep 2
echo "please input a hostname you want to set:"
read hostname
hostnamectl set-hostname $hostname
echo "===================添加解析到/etc/hosts======================"
local_ip=`ip a | grep inet | grep -v inet6 | grep -v 127.0.0.1 | awk '{print $2}' | awk -F '/' '{print $1}'`
echo "$local_ip  $hostname" >> /etc/hosts
sleep 2
echo "done!"
echo ""
}


init_sec(){
echo "===================关闭防火墙================================"
systemctl disable firewalld --now
sleep 2
echo "当前防火墙状态: "
firewall-cmd --state
echo ""
echo "===================关闭selinux==============================="
sleep 2
se_status_config=`sestatus | awk 'NR==6 {print $5}'`
if [ "$se_status_config" != "disabled" ];then
  echo "当前配置文件状态为:$se_status_config ,修改配置文件..."
  sed -ri "s/SELINUX=$se_status_config/SELINUX=disabled/" /etc/selinux/config
  echo "修改完成"
  se_status=`sestatus | awk 'NR==6 {print $5}'`
  echo "selinux配置文件已修改为:$se_status"
  echo "临时关闭selinux..."
  setenforce 0
fi
echo "done!"
echo ""
}


init_ntpd(){
echo "==================配置ntp时间同步==========================="
echo "安装ntpd包..."
yum -y install ntpdate
echo ""
echo "请输入ntp服务器同步地址:"
read ntp_url
echo "开始同步......."
/usr/sbin/ntpdate $ntp_url
echo "设置计划任务......"
crontab_job="0 */1 * * * /usr/sbin/ntpdate $ntp_url"
(echo "$crontab_job" ; crontab -l) | crontab
echo "计划任务配置完成,检查:"
crontab -l
echo ""
}


upgrade_kernel(){
echo "===================开始升级内核============================="
echo "导入elrepo gpg key"
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
echo "安装elrepo yum 源仓库"
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
echo "查看可用的系统内核包"
yum  --disablerepo="*"  --enablerepo="elrepo-kernel"  list  available
echo "长期维护版本则安装kernel-lt  最新稳定版安装kernel-ml,请输入你想安装的版本:"
read ke
yum  --enablerepo=elrepo-kernel  install  -y  $ke
echo "查看可用内核版本及启动顺序"
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
echo "请选择内核默认启动顺序:"
read order
grub2-set-default $order
echo "重新生grub2 引导文件....."
grub2-mkconfig -o /boot/grub2/grub.cfg
echo "请稍后重启系统!"
echo "重启后请按照如下命令操作,如有需要请自行保存:"
echo "
# 查看已安装内核
rpm -qa | grep kernel
# 删除旧版本内核
yum remove -y  kernel-devel-3.10.0   kernel-3.10.0  kernel-headers-3.10.0 
# 删除旧版本工具包--可选
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
# 安装新版本工具包
# lt版本安装命令:
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt-tools.x86_64
# ml版本安装命令
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
"
echo ""
}


init_kubernetes(){
echo "====================kubernetes网络配置初始化======================="
echo "===============配置内核转发及网桥过滤====================="
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

echo "修改/etc/fstab 文件,禁用swap......"
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
echo "查看是否配置正确......"
cat /etc/fstab | grep swap
sleep 2
echo "临时手动关闭"
swapoff -a
echo "done"

echo ""
echo "增加网桥过滤模块......"
modprobe br_netfilter
echo "检查是否添加成功......"
lsmod | grep br_netfilter
sleep 2
echo ""

echo "加载网桥过滤和内核转发的配置文件......"
sysctl -p /etc/sysctl.d/k8s.conf
echo ""
sleep 2

echo "===============安装ipset和ipvsadm========================"
yum -y install ipset ipvsadm
echo ""
echo "配置ipvsadm模块加载方式,添加需要加载的模块......"
cat > /etc/sysconfig/modules/ipvs.module <<EOF
#! /bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_sh
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- nf_conntrack
EOF

echo "授权、运行、检查是否加载......"
chmod 755 /etc/sysconfig/modules/ipvs.module && bash /etc/sysconfig/modules/ipvs.module && lsmod | grep -e ip_vs -e nf_conntrack
echo ""
echo "done"
}


#=========main===========
echo "
请输入以下数字以执行相应任务:
[1]更新阿里yum源
[2]修改hostname和hosts文件
[3]关闭firewall和selinux
[4]时间同步
[5]更新系统内核
[6]kubernetes 网络配置初始化
注:如需同时执行多个任务,请输入对应数字,并用空格隔开:"
read -a taskid
echo "========================BEGIN==========================="
for(( i=0;i<${#taskid[@]};i++)) do
#${#array[@]}获取数组长度用于循环
  if [ ${taskid[i]} = 1 ];then
    init_yum_repo
  elif [ ${taskid[i]} = 2 ];then
    set_hostname
  elif [ ${taskid[i]} = 3 ];then
    init_sec
  elif [ ${taskid[i]} = 4 ];then
    init_ntpd
  elif [ ${taskid[i]} = 5 ];then
    upgrade_kernel
  elif [ ${taskid[i]} = 6 ];then
    init_kubernetes
  fi
done
echo "==============================END====================="

标签:初始化,shell,kernel,--,hostname,elrepo,echo,yum,k8s
From: https://www.cnblogs.com/likaifei/p/16709122.html

相关文章

  • Linux -- ShellScript
    0x0站在巨人的肩膀上一个简易的教程为什么要在可执行文件前面加./shell脚本开头的#!是什么使用mv替换rm防止误删常用shell脚本0x1小的知识点转义字符:e......
  • 初始化gitlab仓库
    初始化gitlab仓库一、Git全局设置gitconfig--globaluser.name"yourgitlabusername"gitconfig--globaluser.email"yourgitlabuserpassword"二、创......
  • k8s 1.18证书更新
    1.证书过期k8s安装一年以后,证书会过期ubuntu@ip-172-31-25-85:~$kubectlgetpodsUnabletoconnecttotheserver:x509:certificatehasexpiredorisnotyetva......
  • k8s系列学习
    一、k8s介绍  一个k8s集群有master和node节点组成,每个节点需要安装对应的组件master节点:ApiServer:资源操作的唯一入口,接收用户输入的命令,提供认证、授权、API注......
  • 3.搭建K8S集群
    一,平台规划1.单master集群2.多master集群 ......
  • k8s给pod添加hosts
    ###1.背景线上待办功能一直不通,发现正式环境的待办系统域名无法访问,需要配置hosts。因为应用部署在云上,需使用k8s给pod添加域名IP映射。2.实战过程使用yaml方式创......
  • PowerShell 函数
    Powershell中的函数使用关键字(function)声明,后面依次跟函数名称、左右大括号。函数将执行的代码包含在这些大括号中。#创建函数FunctionGetPSversion{......
  • 非构造函数为何初始化被调用了
    前提@DataHpPatient···StringidNo;//有定义//StringidNoEnc;//!!!无定义···voidsetIdNoEnc(StringidNo){this.idNo=funA(idNo)}现象setIdNoEnc初始......
  • 本次介绍如何利用ansible一键初始化centos7
    本次介绍如何利用ansible一键初始化centos7。本文介绍的运行环境是CentOS7.6:[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[r......
  • k8s service
    目录k8sserviceService作用为什么要引入ServiceService需要注意的点Service的作用和原理k8sserviceService作用Service的核心作用就是为Pod提供稳定的网络连接。除此......