-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathup-k8s-master.sh
More file actions
138 lines (107 loc) · 4.07 KB
/
Copy pathup-k8s-master.sh
File metadata and controls
138 lines (107 loc) · 4.07 KB
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
#!/bin/bash
read -p "是否添加node节点:yes / no: " CHOICE
if [ $CHOICE == 'yes' ];then
read -p "请输入需要添加的主机ip,用' '(空格)隔开: " NODE_IP
read -p "请输入node节点的密码:" NODE_PASSWD
fi
MASTER_IP=`hostname -i`
echo "###1.系统准备"
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
iptables -F
iptables -t nat -F
iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
cat <<EOF > /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
vm.swappiness=0
EOF
sysctl -p /etc/sysctl.d/k8s.conf
swapoff -a
echo "####2.安装相关软件包"
yum install -y yum-utils sshpass device-mapper-persistent-data lvm2
echo "###3.安装docker"
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install -y --setopt=obsoletes=0 \
docker-ce-18.06.1.ce-3.el7 #docker-ce-18.09.7-3.el7
systemctl start docker
systemctl enable docker
echo "###4.添加docker镜像仓库加速"
sudo mkdir -p /etc/docker
cat <<EOF > /etc/docker/daemon.json
{
"insecure-registries": ["$MASTER_IP:5000"],
"registry-mirrors": ["https://ran9u71w.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
echo "###5.安装k8s"
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl-1.12.2-0 kubelet-1.12.2-0 kubeadm-1.12.2-0 #1.15.0-0
systemctl enable kubelet && systemctl start kubelet
### 配置kubelet的cgroups
DOCKER_CGROUP=$(docker info | grep Cgroup | awk '{print $3}')
echo $DOCKER_CGROUP
cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS=--cgroup-driver=$DOCKER_CGROUP
EOF
echo "###6.准备k8s.grc.io镜像"
docker run -d -p 5000:5000 --restart=always --name registry docker.io/registry
docker pull sniperwang/flannel:v0.10.0-amd64
docker tag sniperwang/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker tag sniperwang/flannel:v0.10.0-amd64 $MASTER_IP:5000/flannel:v0.10.0-amd64
docker push $MASTER_IP:5000/flannel:v0.10.0-amd64
bash kubernetes/registry/master-pull-images.sh
docker images
echo "###7.初始化master节点"
kubeadm init \
--kubernetes-version=v1.12.2 \
--pod-network-cidr=10.254.0.0/16 \
--apiserver-advertise-address=$MASTER_IP >kube-init.txt
echo "###8.使master节点 ready"
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "###9.将master节点同时设置为计算节点"
kubectl taint nodes `hostname` node-role.kubernetes.io/master-
echo "###10.添加网络插件[fannel]"
kubectl apply -f kubernetes/yaml/k8s-base-plugins/flannel.yaml
sleep 50
echo "###11.安装dashboard"
kubectl apply -f kubernetes/yaml/k8s-base-plugins/k8s-dashboard.yaml
sleep 10
echo "StrictHostKeyChecking no" >>/etc/ssh/ssh_config
if [ $CHOICE == 'yes' ];then
echo "###12.添加node节点"
for i in $NODE_IP
do
sshpass -p "$NODE_PASSWD" ssh root@$i "mkdir -p /etc/docker/"
sshpass -p "$NODE_PASSWD" scp /etc/docker/daemon.json root@$i:/etc/docker
sshpass -p "$NODE_PASSWD" scp kubernetes/up-k8s-node.sh root@$i:/root
sshpass -p "$NODE_PASSWD" scp kube-init.txt root@$i:/root
sshpass -p "$NODE_PASSWD" ssh root@$i "bash up-k8s-node.sh $MASTER_IP"
sleep 50
done
fi
echo "###13.检查服务状态"
kubectl get nodes
kubectl get pods --all-namespaces
echo "###14.访问"
echo -e "请使用火狐浏览器访问dashboard界面:\n https://$MASTER_IP:30001 "
SECRET=`kubectl get secret -n kube-system|grep dashboard-token|awk '{print $1}'`
TOKEN=`kubectl describe secret -n kube-system $SECRET|grep "token:"|awk '{print $2}'`
echo -e "选择token方式访问,token为:\n $TOKEN"