1. 程式人生 > 實用技巧 >docker/k8s系統初始化指令碼

docker/k8s系統初始化指令碼

#!/bin/bash
#Auther jia.yu
#version v1.0

SELINUX_state=`getenforce`
FIREWALL_state=`systemctl status firewalld | awk 'NR==3 {print $2}'`

#stop firewall
if [ $FIREWALL_state = 'active' ];then
    systemctl stop firewalld
    systemctl disable firewalld
else
   echo "firewall is already stopped,nothing to do"
fi

#disable selinux
if [ $SELINUX_state = 'Enforcing' ];then
    sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
else
    echo "selinux is already disabled,nothing to do."
fi


#yum install tools
yum -y install wget vim net-tools yum-utils lrzsz git

#vim syntax
echo "alias vi='vim'">> /etc/bashrc
echo "export LS_OPTIONS='--color=auto'">> /etc/bashrc
source /etc/bashrc
echo "TERM=xterm-color">> /etc/profile
source /etc/profile

#fdisk /dev/sdb; docker root dir=/data/docker and /data/docker mount /dev/sdb1
fdisk /dev/sdb<<EOF
n
p
1


w
EOF

mkfs.xfs /dev/sdb1

DISK_UUID=`ls -l /dev/disk/by-uuid/* | grep sdb1 | awk '{print $9}' | awk -F "/" '{print $5}'`
if [ -d /data ];then
    echo "the data floder exists. nothing to do."
    exit
else
    mkdir /data
    echo "UUID=$DISK_UUID /data xfs rw,pquota 0 0">>/etc/fstab
    mount -a
fi


#install docker

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum -y install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker

#docker registry,storage-driver
sudo mkdir -p /etc/docker
cat >> /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://w97h49tv.mirror.aliyuncs.com"]
  "data-root": "/data/docker"
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
    "overlay2.size=1G"
  ]
}
EOF

#docker datadir
sed -i "s#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock#ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375 --graph=/data/docker -H fd:// --containerd=/run/containerd/containerd.sock#g" \
/usr/lib/systemd/system/docker.service

#reload docker
systemctl daemon-reload
systemctl restart docker

#sysctl
cat >>/etc/sysctl.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.swappiness=0
fs.file-max=52706963
fs.nr_open=52706963
EOF
sysctl -p

#hosts
cat >>/etc/hosts<<EOF
192.168.68.146 master01
192.168.68.147 master02
192.168.68.148 master03
192.168.68.149 node01
192.168.68.151 node02
EOF

#reboot