k8s安装、初始化脚本

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
#!/bin/bash

initfire () {
iptables -P FORWARD ACCEPT
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0
systemctl disable firewalld && systemctl stop firewalld

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.max_map_count=262144
EOF

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sleep 1

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

}

installdocker () {

cat <<EOF > /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.ip_forward=1
EOF

modprobe br_netfilter
sysctl -p /etc/sysctl.d/docker.conf
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install docker-ce -y
systemctl start docker &&systemctl enable docker
mkdir -p /etc/docker
echo '{ "registry-mirrors" : [ "https://8xpk5wnt.mirror.aliyuncs.com" ] }' >>/etc/docker/daemon.json
echo '{ "exec-opts": ["native.cgroupdriver=systemd"] }' >>/etc/docker/daemon.json
systemctl start docker
systemctl enable docker

if [ -f "/usr/bin/docker" ];
then
echo "docker $(docker version|grep Version)安装成功"
else
echo "安装失败"
fi

}

masterinit () {

echo '拉取镜像,请稍等数分钟....'
kubeadm init --kubernetes-version=1.16.2 \
--apiserver-advertise-address=$(hostname -I|awk '{print $1}') \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16

}

while :
do
echo "--注:master和node节点同时执行1->2->3,随后master执行4生成token信息去node节点执行"
echo "--即:node节点执行1->2->3->6,master节点执行1->2->3->4->5->6."
echo -e "\033[46;30m 请选择 \033[0m"
read -ep "---------------------------
---1.配置初始化请按1-------
---2.安装docker请按2-------
---3.安装kubeadm请按3------
---4.master节点初始化化----
---5.安装Calico网络组件----
---6.退出------------------
---------------------------
在此处输入数字后,请按回车继续--->" a

case $a in
1)
initfire
echo '初始化完成'

;;
2)
installdocker

;;
3)

yum install -y kubelet-1.16.2 kubeadm-1.16.2 kubectl-1.16.2 --disableexcludes=kubernetes
kubeadm version
systemctl enable kubelet && systemctl start kubelet
sleep 1

;;
4)
masterinit
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "==================================================================================================
复制上面kubeadm join 192.168.xx.xxx:6443 --token seasjn.4ddtaulfm180av3i \
--discovery-token-ca-cert-hash sha256:8b0484a0ca7cdbc6b41a643exxxxxxxxxxxx这一段信息去node节点执行
===================================================================================================="

;;
5)

kubectl apply -f ./calico.yaml
echo '正在配置,请稍等....'
sleep 10
kubectl get pod --all-namespaces

;;
6)
break

;;
esac
done