/
k8s-pre-worker.sh
154 lines (127 loc) · 6.33 KB
/
k8s-pre-worker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
#Author:weimengmeng
#Date:August 3, 2019
#Mail:1300042631@qq.com
#Version:v0.1
#K8s:V1.15.1
#Docker:V18.09.8-3.el7
#This is Kubernetes Install One-Click Scripts
source /opt/k8s-openrc.sh
printf "==========================================\n"
printf "+ +\n"
printf "+ +\n"
echo -e "\033[32m+ Hi. Welcome To Kubernetes +\033[0m"
printf "+ +\n"
printf "+ +\n"
printf "==========================================\n"
#-------------------Judge EveryOne Node Hostname------------------------------
if [[ `ip a |grep -w $HOST_MASTER_IP ` != '' ]];then
hostnamectl set-hostname $HOST_MASTER_NAME
elif [[ `ip a |grep -w $HOST_WORKER1_IP ` != '' ]];then
hostnamectl set-hostname $HOST_WORKER1_NAME
elif [[ `ip a |grep -w $HOST_WORKER2_IP ` != '' ]];then
hostnamectl set-hostname $HOST_WORKER2_NAME
else
hostnamectl set-hostname $HOST_MASTER_NAME
fi
#--------------------Hosts Map----------------------------
sed -i -e "/$HOST_MASTER_NAME/d" -e "/$HOST_WORKER1_NAME/d" -e "/$HOST_WORKER2_NAME/d" /etc/hosts
echo "$HOST_MASTER_IP $HOST_MASTER_NAME" >> /etc/hosts
echo "$HOST_WORKER1_IP $HOST_WORKER1_NAME" >> /etc/hosts
echo "$HOST_WORKER2_IP $HOST_WORKER2_NAME" >> /etc/hosts
#------------------DNS Examine-------------------
sed -i -e 's/#UseDNS yes/UseDNS no/g' -e 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
#----------------Judge install software for wget--------------------
TMP_WGET=`rpm -qa wget`
if [ $TMP_WGET==" " ];then
echo -e "\033[33m##-----------------------------Please wait a moment Checking install wget------------------------##\033[0m"
yum install -y wget
else
echo -e "\033[31mThis wget aleary exist\n\033[0m"
fi
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
#-----------------Selinux config---------------------
sed -i 's/SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
setenforce 0
getenforce
#-----------------Firewalld config---------------
systemctl stop firewalld & systemctl disable firewalld
#-----------------Swap config--------------------
swapoff -a
sed -i '/ swap / s/^/#/' /etc/fstab
#-----------------Judge Install Need Software yum-utils.noarch---------------------
TMP_YUMUTILS=`rpm -qa yum-config-manager`
if [ $TMP_YUMUTILS==" " ];then
echo -e "\033[33m##----------------------------------------Please wait a moment installing yum-utils.noarch----------------------##\n\033[0m"
yum install -y yum-utils.noarch
else
echo -e "\033[31mThe software for yum-utils.noarch aleary exist\n\033[0m"
fi
#------ailiyun.Registry----------------
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#-----------------Install Docker-----------------
yum install docker-ce-18.09.8-3.el7 -y
printf "\033[35m $(docker --version)\n\033[0m"
#-----------------Docker config------------------
systemctl start docker & systemctl enable docker
#-----------------Judge Docker run-----------
docker run hello-world > /opt/Hello_Docker.txt
HELLO_DOCKER=`cat Hello_Docker.txt | grep -o Hello[[:space:]]from[[:space:]]Docker`
if [ ! "$HELLO_DOCKER" ];then
printf "Docker Run is failed\n"
exit
else
echo -e "\033[32mDocker Run Successful!\n\033[0m"
fi
#=============k8s.yum.repo============
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
#=============k8s.install.kubelet、kubeadm、kubectl==============
yum install -y kubelet kubeadm kubectl
echo 'Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs" ' >> /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
systemctl daemon-reload
systemctl enable kubelet && systemctl start kubelet
#=============Download.K8S===================
echo -e "\033[32mUp to date version\n\033[0m"
kubeadm config images list
#=============pull images====================
#kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#pwxwmm#g' |sh -x
#docker pull coredns/coredns:1.3.1
docker pull pwxwmm/kube-controller-manager:v1.15.1
docker pull pwxwmm/kube-apiserver:v1.15.1
docker pull pwxwmm/kube-scheduler:v1.15.1
docker pull pwxwmm/kube-proxy:v1.15.1
docker pull pwxwmm/pause:3.1
docker pull pwxwmm/etcd:3.3.10
docker pull pwxwmm/coredns:1.3.1
#=============Alter Tag=====================
docker images |grep pwxwmm |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#pwxwmm#k8s.gcr.io#2' |sh -x
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
#=============Delete Repeat images===========
docker images | grep pwxwmm | awk '{print "docker rmi " $1":"$2}' | sh -x
#docker rmi coredns/coredns:1.3.1
docker images
printf "==================================================================================================\n"
printf "+ +\n"
printf "+ If you want See kubeadm join Token, Please Use cat Command See Master Node: /opt/k8s-init.txt +\n"
printf "+ +\n"
printf "+ If has place of the mistake, asks respectfully to point out mistakes. +\n"
printf "+ +\n"
printf "+ You can contact me ,Mail:1300042631@qq.com +\n"
printf "+ +\n"
printf "==================================================================================================\n"
printf "==============================================\n"
printf "+ +\n"
printf "+ +\n"
echo -e "\033[32m+ Kubernetes Install Completed. ByeBye +\033[0m"
printf "+ +\n"
printf "+ +\n"
printf "==============================================\n"