查看三台主机的uuid
第一台
root@server1:~# sudo cat /sys/class/dmi/id/product_uuid
第一台
第二台
第三台
注意:三台主机名要不同-
编辑配置文件
root@server1:~# vim /etc/hosts
添加:
拷贝配置文件到 server2 server3
root@server1:~# scp /etc/hosts server2:/etc
root@server1:~# scp /etc/hosts server3:/etc
因为要放行的端口太多 所以直接关闭防火墙
root@server1:~# systemctl stop ufw && systemctl disable ufw
root@server2:~# systemctl stop ufw && systemctl disable ufw
root@server3:~# systemctl stop ufw && systemctl disable ufw
关闭swap分区 (三台)
root@server1:~# vim /etc/sysctl.conf
添加修改:
root@server1:~# sysctl –p
注释掉swap分区
root@server1:~# vim /etc/fstab
关闭swapoff (临时)
root@server1:~# swapoff –a
删掉docker引擎 (三台)
root@server1:~# apt remove docker*
root@server1:~# systemctl stop docker && systemctl disable docker
安装containerd(三台)
root@server1:~# apt install containerd.io
添加ipvs规则(三台)
root@server1:~# mkdir -p /etc/sysconfig/modules
root@server1:~# vim /etc/sysconfig/modules/ipvs.modules
添加:
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
root@server1:~# scp /etc/sysconfig/modules/ipvs.modules server2:/etc/sysconfig/modules/
root@server1:~# scp /etc/sysconfig/modules/ipvs.modules server3:/etc/sysconfig/modules/
root@server1:~# bash /etc/sysconfig/modules/ipvs.modules
查看加载模块
root@server1:~# lsmod | grep -e ip_vs -e nf_conntrack
root@server1:~# modprobe overlay
root@server1:~# modprobe br_netfilter
生成默认文件(三台)
root@server1:~# containerd config default
替换到刚刚生成的这个文件(三台)
root@server1:~# containerd config default | sudo tee /etc/containerd/config.toml
然后取修改配置文件(三台)
root@server1:~# vim /etc/containerd/config.toml
修改为阿里云地址
sandbox_image = "registry.aliyuncs.com/google-containers/pause:3.6"4
重启,查看一下containerd.service的状态
root@server1:~# systemctl restart containerd.service
root@server1:~# systemctl status containerd.service
root@server1:~# systemctl enable containerd
root@server1:~# ss -anput | grep containerd
安装kubernetes(三台)
进入到阿里云镜像站 进行
kubernetes镜像-kubernetes下载地址-kubernetes安装教程-阿里巴巴开源镜像站 (aliyun.com)
root@server1:~# apt-get update && apt-get install -y apt-transport-https
root@server1:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
root@server1:~# cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
root@server1:~# apt-get update
root@server1:~# apt-get install -y kubelet kubeadm kubectl
配置kubernetes(三台)
root@server1:~# source <(kubeadm completion bash)
root@server1:~# source <(kubectl completion bash)
root@server1:~# source <(crictl completion bash)
配置永久生效(三台)
root@server1:~# vim .bashrc
最底部添加:
root@server1:~# ll /run/containerd/containerd.sock
root@server1:~# crictl config runtime-endpoint unix:///run/containerd/containerd.sock
修改配置文件
root@server1:~# vim /etc/crictl.yaml
修改:
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
pull-image-on-create: false
disable-pull-on-run: false
root@server1:~# crictl config runtime-endpoint unix:///run/containerd/containerd.sock
以修改配置文件的方式初始化
root@server1:~# kubeadm config print init-defaults > init.yaml
root@server1:~# vim init.yaml
registry.aliyuncs.com/google_containers
进行初始化
root@server1:~# kubeadm init --config=init.yaml
root@server1:~# mkdir -p $HOME/.kube
root@server1:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
root@server1:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config
root@server1:~# export KUBECONFIG=/etc/kubernetes/admin.conf
下载一个网络
Install Calico networking and network policy for on-premises deployments (tigera.io)
root@server1:~# curl https://projectcalico.docs.tigera.io/manifests/calico.yaml -O
root@server1:~# vim calico.yaml
root@server1:~# kubectl apply -f calico.yaml
(Ip地址换了,但是问题不大)
后两台加入群集:
root@server2:~# kubeadm join 192.168.0.143:6443 --token abcdef.0123456789abcdef \
> --discovery-token-ca-cert-hash sha256:df70bd2121dac5b7badce8874a161f5becd71a5cd45ad60f91f2e2eee5c6b3de
root@server3:~# kubeadm join 192.168.0.143:6443 --token abcdef.0123456789abcdef \
> --discovery-token-ca-cert-hash sha256:df70bd2121dac5b7badce8874a161f5becd71a5cd45ad60f91f2e2eee5c6b3de
查看namespaces下载
root@server1:~# kubectl get pod --all-namespaces
root@server2:~# kubectl get nodes