删除 kubernetes.sh
This commit is contained in:
parent
c187b20d23
commit
1f15b893ea
531
kubernetes.sh
531
kubernetes.sh
@ -1,531 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
menu() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= 菜单 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 主机名解析 ="
|
|
||||||
echo "= 2. 环境配置 ="
|
|
||||||
echo "= 3. 安装docker ="
|
|
||||||
echo "= 4. 安装kubernetes ="
|
|
||||||
echo "= 5. 导入镜像 ="
|
|
||||||
echo "= 6. master节点 ="
|
|
||||||
echo "= 7. node节点 ="
|
|
||||||
echo "= 8. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_first() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= 主机解析 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 查看主机名 ="
|
|
||||||
echo "= 2. 设置主机名 ="
|
|
||||||
echo "= 3. 查看解析文件 ="
|
|
||||||
echo "= 4. 主机解析 ="
|
|
||||||
echo "= 5. 删除特定行 ="
|
|
||||||
echo "= 6. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
first_option() {
|
|
||||||
while true; do
|
|
||||||
menu_first
|
|
||||||
read -p "请输入选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
host=`hostname`
|
|
||||||
echo "主机名为 $host"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
read -p "输入主机名:" host
|
|
||||||
hostnamectl set-hostname $host
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "设置主机名成功!"
|
|
||||||
new_host=`hostname`
|
|
||||||
echo "主机名为 $new_host"
|
|
||||||
else
|
|
||||||
echo "设置主机名失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
cat /etc/hosts
|
|
||||||
echo
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
while true; do
|
|
||||||
read -p "输入格式:IP 主机名(输入e退出):" host
|
|
||||||
if [[ $host == "e" ]]; then
|
|
||||||
echo "退出成功!"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
arr=($host)
|
|
||||||
|
|
||||||
if [[ ${#arr[@]} -ne 2 ]]; then
|
|
||||||
echo "输入格式不符合,必须包含IP和主机名。"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
ip="${arr[0]}"
|
|
||||||
hostname="${arr[1]}"
|
|
||||||
|
|
||||||
ip_regex='^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$'
|
|
||||||
if [[ ! $ip =~ $ip_regex ]]; then
|
|
||||||
echo "IP地址格式无效"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
hostname_regex='^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$'
|
|
||||||
if [[ ! $hostname =~ $hostname_regex ]]; then
|
|
||||||
echo "主机名格式无效(允许字母、数字、连字符,不以连字符开头/结尾,最长63字符)。"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$ip $hostname" >> /etc/hosts
|
|
||||||
echo "添加成功:$ip $hostname"
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
read -p "输入要删除的主机解析:" host
|
|
||||||
escaped_host=$(sed -e 's/[][\.^*$]/\\&/g' <<< "$host")
|
|
||||||
|
|
||||||
if grep -q "$escaped_host" /etc/hosts; then
|
|
||||||
sed -i "/$escaped_host/d" /etc/hosts
|
|
||||||
echo "删除成功!"
|
|
||||||
else
|
|
||||||
echo "未找到匹配的主机解析!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
6)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选项,请重新输入!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_second() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= 环境配置 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 查看firewalld状态 ="
|
|
||||||
echo "= 2. 启动firewalld ="
|
|
||||||
echo "= 3. 关闭firewalld ="
|
|
||||||
echo "= 4. 开机启动firewalld ="
|
|
||||||
echo "= 5. 开机关闭firewalld ="
|
|
||||||
echo "= 6. 查看selinux状态 ="
|
|
||||||
echo "= 7. 开启selinux ="
|
|
||||||
echo "= 8. 关闭selinux ="
|
|
||||||
echo "= 9. 开机启动selinux ="
|
|
||||||
echo "= 10. 开机关闭selinux ="
|
|
||||||
echo "= 11. 禁用swap分区 ="
|
|
||||||
echo "= 12. 开机禁用swap分区 ="
|
|
||||||
echo "= 13. 加载内核 ="
|
|
||||||
echo "= 14. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
second_option() {
|
|
||||||
while true; do
|
|
||||||
menu_second
|
|
||||||
read -p "请选择选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
status=$(systemctl is-active firewalld)
|
|
||||||
enabled=$(systemctl is-enabled firewalld)
|
|
||||||
|
|
||||||
if [ "$status" == "active" ]; then
|
|
||||||
echo "firewalld 当前状态:已启动!"
|
|
||||||
else
|
|
||||||
echo "firewalld 当前状态:未启动!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$enabled" == "enabled" ]; then
|
|
||||||
echo "firewalld 是否开机启动:是"
|
|
||||||
else
|
|
||||||
echo "firewalld 是否开机启动:否"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
systemctl start firewalld
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "启动成功!"
|
|
||||||
else
|
|
||||||
echo "启动失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
systemctl stop firewalld
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "关闭成功!"
|
|
||||||
else
|
|
||||||
echo "关闭失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
systemctl enable firewalld
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "永久启动成功!"
|
|
||||||
else
|
|
||||||
echo "永久启动失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
systemctl disable firewalld
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "永久关闭成功!"
|
|
||||||
else
|
|
||||||
echo "永久关闭失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
6)
|
|
||||||
state=`getenforce`
|
|
||||||
if [[ $state == "Enforcing" ]]; then
|
|
||||||
echo "selinux的状态为已启动!"
|
|
||||||
else
|
|
||||||
echo "selinux的状态为已关闭!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
7)
|
|
||||||
setenforce 1
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "selinux启动成功!"
|
|
||||||
else
|
|
||||||
echo "selinux启动失败!需要重启才能启动"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
8)
|
|
||||||
setenforce 0
|
|
||||||
if [ $? -eq 0]; then
|
|
||||||
echo "selinux关闭成功!"
|
|
||||||
else
|
|
||||||
echo "selinux关闭失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
9)
|
|
||||||
sed -i '/^SELINUX=/c SELINUX=enforcing/' /etc/selinux/config
|
|
||||||
if [ $? -eq 0]; then
|
|
||||||
echo "永久启动selinux成功!"
|
|
||||||
else
|
|
||||||
echo "永久启动selinux失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
10)
|
|
||||||
sed -i '/^SELINUX=/c SELINUX=disabled/' /etc/selinux/config
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "永久关闭selinux成功!"
|
|
||||||
else
|
|
||||||
echo "永久关闭selinux失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
11)
|
|
||||||
swapoff -a
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "禁用swap分区成功!"
|
|
||||||
else
|
|
||||||
echo "禁用swap分区失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
12)
|
|
||||||
sed -i 's/.*swap.*/#&/' /etc/fstab
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "永久禁用swap分区成功!"
|
|
||||||
else
|
|
||||||
echo "永久禁用swap分区失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
13)
|
|
||||||
modprobe br_netfilter
|
|
||||||
echo "net.bridge.bridge-nf-call-ip6tables = 1" >> /etc/sysctl.conf
|
|
||||||
echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
|
|
||||||
echo "vm.swappiness=0" >> /etc/sysctl.conf
|
|
||||||
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
|
|
||||||
|
|
||||||
sysctl -p
|
|
||||||
;;
|
|
||||||
14)
|
|
||||||
echo "退出成功!"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选择,请重新输入!"
|
|
||||||
;;
|
|
||||||
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_third() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= docker管理 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 安装docker ="
|
|
||||||
echo "= 2. 配置容器加速 ="
|
|
||||||
echo "= 3. 启动docker ="
|
|
||||||
echo "= 4. 关闭docker ="
|
|
||||||
echo "= 5. 开机启动docker ="
|
|
||||||
echo "= 6. 开机关闭docker ="
|
|
||||||
echo "= 7. 重启docker ="
|
|
||||||
echo "= 8. 清空 ="
|
|
||||||
echo "= 9. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
third_option(){
|
|
||||||
while true; do
|
|
||||||
menu_third
|
|
||||||
read -p "请选择选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
yum install -y yum-utils
|
|
||||||
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
|
|
||||||
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
echo '{
|
|
||||||
"max-concurrent-downloads": 10,
|
|
||||||
"max-concurrent-uploads": 5,
|
|
||||||
"default-shm-size": "1G",
|
|
||||||
"debug": true,
|
|
||||||
"experimental": false,
|
|
||||||
"registry-mirrors": [
|
|
||||||
"https://x9r52uz5.mirror.aliyuncs.com",
|
|
||||||
"https://dockerhub.icu",
|
|
||||||
"https://docker.chenby.cn",
|
|
||||||
"https://docker.1panel.live",
|
|
||||||
"https://docker.awsl9527.cn",
|
|
||||||
"https://docker.anyhub.us.kg",
|
|
||||||
"https://dhub.kubesre.xyz"
|
|
||||||
]
|
|
||||||
}' > /etc/docker/daemon.json
|
|
||||||
systemctl daemon-reload
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
systemctl start docker
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "启动docker成功!"
|
|
||||||
else
|
|
||||||
echo "启动docker失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
systemctl stop docker
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "关闭docker成功!"
|
|
||||||
else
|
|
||||||
echo "关闭docker失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
systemctl enable docker &> /dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "开机启动docker成功!"
|
|
||||||
else
|
|
||||||
echo "开机启动docker失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
6)
|
|
||||||
systemctl disable docker &> /dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "开机关闭docker成功!"
|
|
||||||
else
|
|
||||||
echo "开机关闭docker失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
7)
|
|
||||||
systemctl restart docker
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "docker重启成功!"
|
|
||||||
else
|
|
||||||
echo "docker重启失败"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
8)
|
|
||||||
clear
|
|
||||||
;;
|
|
||||||
9)
|
|
||||||
echo "退出成功!"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选择,请重新输入!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_fourth() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= kubernetes 安装 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 配置yum仓库 ="
|
|
||||||
echo "= 2. 安装 ="
|
|
||||||
echo "= 3. 配置cgroups ="
|
|
||||||
echo "= 4. 开机启动 ="
|
|
||||||
echo "= 5. 清空 ="
|
|
||||||
echo "= 6. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
fourth_option() {
|
|
||||||
while true; do
|
|
||||||
menu_fourth
|
|
||||||
read -p "请选择选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
echo "[kubernetes]
|
|
||||||
name=Kubernetes
|
|
||||||
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
|
|
||||||
enabled=1
|
|
||||||
gpgcheck=0
|
|
||||||
repo_gpgcheck=0
|
|
||||||
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg" > /etc/yum.repos.d/kubernetes.repo
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
yum -y install kubeadm-1.23.5 kubelet-1.23.5 kubectl-1.23.5 ipvsadm
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
echo 'KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"' > /etc/sysconfig/kubelet
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
systemctl enable kubelet &> /dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "开机启动成功!"
|
|
||||||
else
|
|
||||||
echo "开机启动失败!"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
clear
|
|
||||||
;;
|
|
||||||
6)
|
|
||||||
echo "推出成功!"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选择,请重新输入!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
menu_fifth() {
|
|
||||||
echo "========================="
|
|
||||||
echo "= 镜像导入 ="
|
|
||||||
echo "========================="
|
|
||||||
echo "= 1. 导入镜像文件 ="
|
|
||||||
echo "= 2. 加载镜像 ="
|
|
||||||
echo "= 3. 查看镜像 ="
|
|
||||||
echo "= 4. 清空 ="
|
|
||||||
echo "= 5. 退出 ="
|
|
||||||
echo "========================="
|
|
||||||
}
|
|
||||||
|
|
||||||
fifth_option() {
|
|
||||||
while true; do
|
|
||||||
menu_fifth
|
|
||||||
read -p "请选择选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
yum -y install lrzsz
|
|
||||||
mkdir /mnt/docker-image && cd /mnt/docker-image
|
|
||||||
pwd
|
|
||||||
rz
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
tar_dir="/mnt/docker-image"
|
|
||||||
tar_files=("$tar_dir"/*.tar)
|
|
||||||
|
|
||||||
if [ ${#tar_files[@]} -eq 0 ]; then
|
|
||||||
echo "在 $tar_dir 中未找到任何.tar文件"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
ERRORS=0
|
|
||||||
for file in "${tar_files[@]}"; do
|
|
||||||
docker load < $file
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
echo "加载 $file 镜像成功!"
|
|
||||||
else
|
|
||||||
echo "加载 $file 镜像失败!"
|
|
||||||
((ERRORS++))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $ERRORS -ne 0 ]; then
|
|
||||||
echo "警告:有 $ERRORS 个文件加载失败" >&2
|
|
||||||
else
|
|
||||||
echo "所有镜像已成功加载"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
docker images
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
clear
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
echo "推出成功!"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选择,请重新输入!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
menu
|
|
||||||
read -p "请选择选项:" i
|
|
||||||
case $i in
|
|
||||||
1)
|
|
||||||
first_option
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
second_option
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
third_option
|
|
||||||
;;
|
|
||||||
4)
|
|
||||||
fourth_option
|
|
||||||
;;
|
|
||||||
5)
|
|
||||||
fifth_option
|
|
||||||
;;
|
|
||||||
6)
|
|
||||||
while true; do
|
|
||||||
read -p "输入master的ip地址:" ip
|
|
||||||
|
|
||||||
ip_regex='^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$'
|
|
||||||
|
|
||||||
if [[ ! $ip =~ $ip_regex ]]; then
|
|
||||||
echo "IP地址格式无效"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
kubeadm init --kubernetes-version=1.23.5 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=$ip
|
|
||||||
break
|
|
||||||
done
|
|
||||||
mkdir -p $HOME/.kube
|
|
||||||
sudo cp -i /etc/kubernetes/admin.conf
|
|
||||||
sudo chown $(id -u):$(id -g) $HOME/.kube/config
|
|
||||||
export KUBECONFIG=/etc/kubernetes/admin.conf
|
|
||||||
kubectl apply -f kube-flannel-2402.yml
|
|
||||||
;;
|
|
||||||
7)
|
|
||||||
|
|
||||||
;;
|
|
||||||
8)
|
|
||||||
echo "退出成功!"
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "无效的选择,请重新输入!"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
Loading…
x
Reference in New Issue
Block a user