Kubeadm初始化Kubernetes叢集
不得不說的話:2019年1月4日,註定讓我難忘,也註定要改變些什麼!我所做的事只是為了在2019年的7月份可以找到一份工作,不至於我畢業就失業了。我愛運維嗎?不愛!為什麼一直在這條路上,無非是上了賊船還由得我選嗎?
今天早上9點不到就開始了學習:Kubeadm初始化Kubernetes叢集 我看到過前輩們在這塊知識點上費了很多時間,所以我做好了用一天的時間來完成這塊知識點。視訊時間1小時24分整。我目前知道的是有三種方法可以部署kubernetes叢集,前輩也和我建議過用二進位制部署的方法即符合公司要求也可以少踩很多坑。可我想既然視訊買了,書也買了,總不能不學一下吧,於是我決定先跟視訊和書走一遍再二進位制部署一遍再ansible部署一遍。事實證明,真的踩了許多坑,踩坑是高興的,因為我做好了準備
中午想去吃飯,可看到錯誤還在那裡,怎麼也邁不動腿,隨性坐下繼續排錯。今天啊從早上9點不到到下午17點52分,上了一趟廁所,其餘的時間都在部署。終於成功了,心中很是開心。下面的路還有太多未知的坑,我願意一個一個的來踩。
下面給出我在本次部署中的所有程式碼,不是懶得整理,我放出來只是想告訴我自己,這就是我今天所做的一切!!!
主機名 | IP | 作用 |
master | 10.0.0.100 | master節點 |
node01 | 10.0.0.101 | node節點 |
node02 | 10.0.0.102 | node節點 |
kubeamd
1.master, nodes:安裝kubelet, kubeadm, docker
2.master:kubeadm init
3.nodes:kubadm join
https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.10.md
前提:時間一致;防火牆關閉,SElinx 關閉;
master
79 vim /etc/hosts
80 date
81 yum install ntpdate -y
82 vim /etc/crontab
83 hwclock --systohc
84 history
85 systemctl statue filld
86 service iptables status
87 systemctl status firewalld
88 getenforce
89 cd /etc/yum.repos.d/
90 ls
91 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
92 vim docker-ce.repo
93 vim kubernetes.repo
94 yum repolist
95 scp kubernetes.repo docker-ce.repo node01:/etc/yum.repos.d/
96 scp kubernetes.repo docker-ce.repo node02:/etc/yum.repos.d/
97 yum install docker-ce
98 yum install docker-ce kubelet kubeadm kubectl
99 vim kubernetes.repo
100 cd -
101 wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
102 ls
103 rpm --import yum-key.gpg
104 yum install docker-ce kubelet kubeadm kubectl
105 ll
106 wget https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
107 rpm --import rpm-package-key.gpg
108 wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
109 rpm --import rpm-package-key.gpg
110 yum install docker-ce kubelet kubeadm kubectl
111 history
112 vim /usr/lib/systemd/system/docker.service
113 cd /usr/lib/systemd/system/
114 cp docker.service{,.cp}
115 vim docker.service
116 systemctl daemon-reload
117 systemctl start docker
118 docker info
119 vim docker.service
120 systemctl daemon-reload
121 systemctl restart docker
122 docker info
123 vim /etc/sysctl.conf
124 cp /etc/sysctl.conf{,.cp}
125 vim /etc/sysctl.conf
126 systemctl restart docker
127 docker info
128 vim /etc/sysctl.conf
129 sysctl -p
130 docker info
131 cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
132 cat /proc/sys/net/bridge/bridge-nf-call-iptables
133 rpm -ql kubelet
134 cat /etc/systemd/system/kubelet.service
135 cat /etc/sysconfig/kubelet
136 systemctl start kubelet
137 systemctl status kubelet
138 cat /var/log/messages
139 systemctl stop kubelet
140 systemctl enable kubelet
141 systemctl enable docker
142 kubeadm init
143 kubeadm init --help
144 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0/16 --service-cidr=10.96.0.0/12
145 /etc/systemd/system/kubelet.service
146 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
147 free -m
148 vim /etc/sysconfig/kubelet
149 cp /etc/sysconfig/kubelet{,.cp}
150 vim /etc/sysconfig/kubelet
151 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ingnore-preflight-errors=Swap
152 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
153 cd ~
154 scp rpm-package-key.gpg node01:/root
155 scp rpm-package-key.gpg node02:/root
156 scp yum-key.gpg node02:/root
157 scp yum-key.gpg node01:/root
158 docker image ;s
159 docker image ls
160 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
161 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
162 docker
163 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
164 dig @114.114.114.114 registry-1.docker.io
165 yum install -y dig
166 yum install bind-utils
167 dig @114.114.114.114 registry-1.docker.io
168 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
169 vim /etc/hosts
170 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
171 vim /etc/hosts
172 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
173 history
174 cd /usr/lib/systemd/system/
175 vim docker.service
176 systemctl restart docker
177 systemctl stop docker
178 systemctl daemon-reload
179 systemctl restart docker
180 docker info
181 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
182 docker image ls
183 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
184 docker image ls
185 vim docker.service
186 history
187 docker image ls
188* docker tag /mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1
189 docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1
190 docker image ls
191 docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1
192 docker image ls
193 docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.13.1 k8s.gcr.io/kube-proxy:v1.13.1
194 docker image ls
195 docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
196 docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.24 k8s.gcr.io/etcd:3.2.24
197 docker tag docker.io/coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
198 docker image ls
199 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
200 docker image ls
201 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
202 dig @114.114.114.114 registry-1.docker.io
203 vim /etc/hosts
204 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
205 vim /etc/hosts
206 dig @114.114.114.114 registry-1.docker.io
207 vim /etc/hosts
208 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
209 systemctl restart docker
210 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
211 docker image ls
212 vim /etc/hosts
213 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
214 vim docker.service
215 ll
216 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
217 ping 47.106.109.149
218 ssh [email protected]
219 rsync -avz -e 'ssh -p22' [email protected]:/root/my.gz
220 docker image ls
221 rz
222 ll
223 docker load -i my.gz
224 docker image ls
225 docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1
226 docker image ls
227 docker image --h
228 docker image rm mirrorgooglecontainers/kube-proxy-amd64
229 docker image rm mirrorgooglecontainers/kube-proxy-amd64:v1.13.1
230 docker image ls
231 docker image rm mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
232 docker image ls
233 docker image rm mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.1
234 docker image ls
235 docker image rm mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1
236 docker image ls
237 docker image rm coredns/coredns:1.2.6
238 docker image ls
239 docker image rm mirrorgooglecontainers/etcd-amd64:3.2.24
240 docker image ls
241 docker image rm mirrorgooglecontainers/pause:3.1
242 docker image ls
243 docker save -o k8s-1.13.1.gz k8s.gcr.io/kube-proxy:v1.13.1 k8s.gcr.io/kube-controller-manager:v1.13.1 k8s.gcr.io/kube-scheduler:v1.13.1 k8s.gcr.io/kube-apiserver:v1.13.1 k8s.gcr.io/coredns:1.2.6 k8s.gcr.io/etcd:3.2.24 k8s.gcr.io/pause:3.1
244 ll
245 sz k8s-1.13.1.gz
246 history
247 cd ~
248 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
249 kubectl get
250 kubectl get -h
251 kubectl get cs
252 kubectl get componentstatus
253 kubectl get nodes
254 vim /etc/hosts
255 kubectl get nodes
256 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
257 kubectl get pods
258 docker image ls
259 kubectl get pods
260 kubectl get nodes
261 docker image ls
262 docker search flannel
263 docker image ls
264 kubectl describe node master
265 kubectl get pod -n kube-system -o wide
266 kubectl get nodes
267 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
268 kubectl get nodes
269 docker image ls
270 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
271 kubectl get pods -n kube-system
272 echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
273 source /etc/profile
274 echo $KUBECONFIG
275 sysctl net.bridge.bridge-nf-call-iptables=1
276 vim kube-flannel.yaml
277 kubectl apply -f kube-flannel.yaml
278 kubectl get pods --all-namespaces -o wide
279 docker image ls
280 history
281 docker image ls
282 docker pull quar.io/coreos/flannel:v0.10.0-adm64
283 kubectl get pods
284 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
285 vim /etc/hosts
286 docker image ls
287 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
288 docker imkage ls
289 systemctl restart docker\
290 systemctl restart docker
291 docker image ls
292 docker pull quay.io/coreos/flannel:v0.10.0-amd64
293 docker info
294 docker image ls
295 rz
296 docker load -i flannel.tar
297 docker image ls
298 kubectl get nodes
299 kubectl get pods -n kube-system
300 kubectl get ns
301 scp /etc/sysconfig/kubelet node01:/etc/sysconfig/
302 systemctl start docker
303 docker info
304 systemctl enable docker kublet
305 systemctl enable docker kubelet
306 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
307 history
308 scp /etc/sysconfig/kubelet node02:/etc/sysconfig/
309 kubectl get nodes
310 history
79 vim /etc/docker/daemon.json
80 history
81 systemctl restart docker
82 docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.13.1
83 docker image ls
84 docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1
85 docker image ls
86 docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.13.1
87 docker image ls
88 docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.13.1
89 docker image ls
90 docker pull mirrorgooglecontainers/pause:3.1
91 docker image ls
92 docker pull mirrorgooglecontainers/etcd-amd64:3.2.24
93 docker image ls
94 docker pull coredns/coredns:1.2.6
95 docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.13.1
96 vim /etc/hosts
97 docker image ls
98 mkdir -p $HOME/.kube
99 cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
100 kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
101 history
102 ss -tnl
103 docker image ls
104 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
105 docker image ls
106 kubectl get pods
107 kubectl get nodes
108 kubectl get pod --all-namespaces -o wide
109 docker image ls
110 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
111 ll
112 rm -rf yum-key.gpg.1
113 ll
114 docker image ls
115 docker info
116 docker image ls
117 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
118 kubectl get pods
119 ss -tnl
120 kubectl get pods
121 docker images ls
122 docker image ls
123 kubectl get pods
124 docker image ls
125 kubectl get pods
126 docker image ls
127 kubectl get pods
128 kubectl get nodes
129 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
130 kubectl get pods
131 docker image ls
132 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
133 docker image ls
134 cd /var/lib/systemd/
135 ll
136 cd ..
137 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
138 docker image ls
139 kubectl get nodes
140 kubectl get pod --all-namespaces -o wide
141 docker image ls
142 docker pull nginx
143 docker image ls
144 docker image rm nginx
145 docker image ls
146 kubectl get cs
147 docker pull quay.io/coreos/flannel:v0.10.0-ppc64le
148 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
149 vim /etc/docker/daemon.json
150 scp /usr/lib/systemd/system/docker.service node01:/usr/lib/systemd/systemd/
151 scp /usr/lib/systemd/system/docker.service node01:/usr/lib/systemd/systemd/docker.service
152 kubectl get nodes
153 kubectl get pods -n kube-system
154 kubectl get pods -n kube-system -o wide
155 kubectl get nodes
156 history
node01
79 vim /etc/hosts
80 date
81 yum install ntpdate -y
82 vim /etc/crontab
83 hwclock --systohc
84 history
85 rpm --import rpm-package-key.gpg
86 yum install dockerce kubelet kubeadm
87 yum install docker-ce
88 history
89 docker image ls
90 vim /etc/hosts
91 cd /usr/
92 cd lib
93 cd systemd/
94 cd system
95 ll
96 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
97 systemctl start docker
98 docker info
99 systemctl enable docker kubelet
100 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
101 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
102 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
103 docker image ls
104 rz
105 ll
106 mv k8s-1.13.1.gz ~
107 cd ~
108 ll
109 docker load -i k8s-1.13.1.gz
110 docker image ls
111 rz
112 docker load -i flannel.tar
113 docker image ls
114 docker image rm k8s.gcr.io/kube-scheduler:v1.13.1
115 docker image ls
116 docker image rm k8s.gcr.io/kube-controller-manager:v1.13.1
117 docker image rm k8s.gcr.io/kube-apiserver:v1.13.1
118 docker image rm k8s.gcr.io/coredns:1.2.6
119 docker image rm k8s.gcr.io/etcd:3.2.24
120 docker image ls
121 history
122 docker image ls
123 docker save -o k8s.1.13.1.node.tar k8s.gcr.io/kube-proxy:v1.13.1 quay.io/coreos/flannel:v0.10.0-amd64 k8s.gcr.io/pause:3.1
124 ll
125 rz flannel.tar
126 sz flannel.tar
127 scp flannel.tar node02:~
128 history
node02
79 vim /etc/hosts
80 date
81 crontab -e
82 yum install ntpdate -y
83 vim /etc/crontab
84 date
85 hwclock --systohc
86 hwclock
87 vim /etc/crontab
88 rpm --import rpm-package-key.gpg
89 yum install dockerce kubelet kubeadm
90 yum install docker-ce
91 history
92 systemctl start docker
93 systemctl enable docker kubelet
94 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
95 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
96 echo $?
97 ll
98 yum install dockerce kubelet kubeadm
99 docker image ls
100 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
101 systemctl start docker
102 docker info
103 systemctl enable docker kubelet
104 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
105 echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
106 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
107 cd /etc/kubernetes/
108 ll
109 rm -f kubelet.conf
110 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
111 ll
112 rm -rf *
113 ll
114 cd ..
115 cd kubernetes/
116 ll
117 cd /etc/sysconfig/
118 ll
119 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
120 kubeadm reset
121 kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf --ignore-preflight-errors=Swap
122 cd ~
123 ll
124 docker load -i flannel.tar
125 docker image ls
126 ll
127 docker imager ls
128 docker image ls
129 rz
130 ll
131 docker image ls
132 docker load -i k8s-1.13.1.gz
133 docker image rm k8s.gcr.io/kube-scheduler:v1.13.1
134 docker image rm k8s.gcr.io/kube-controller-manager:v1.13.1
135 docker image rm k8s.gcr.io/kube-apiserver:v1.13.1
136 docker image rm k8s.gcr.io/coredns:1.2.6
137 docker image ls
138 docker image rm k8s.gcr.io/etcd:3.2.24
139 docker image ls
140 history
kubeadm join 10.0.0.100:6443 --token ew86kc.3ggc6sml79d453tk --discovery-token-ca-cert-hash sha256:e730e1bf71edd7e18eabf4b2bb65397cb65fdb2d4657df269eb85beb320eb2cf
我排錯過程中藉助的其中兩篇博文
https://blog.csdn.net/judyjie/article/details/85008996
https://blog.csdn.net/zhydream77/article/details/81909939
注:所需部署 Kubernetes 1.13.1的全部軟體我都有,有需要請評論說出,我免費給!
---2019年1月4日