1. 程式人生 > >Kubeadm初始化Kubernetes叢集

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日