一,准备工作

1,master节点硬件要求: cpu:至少2核 内存:至少2G 2,禁用所有节点swap: swapoff -a 注释/etc/fstab文件中swap一行 3,禁用所有节点selinux: setenforce 0 修改/etc/selinux/config 4,禁用所有节点防火墙: sytemctl stop firewalld systemctl disable firewalld 5,修改节点主机名: hostname xxx hostnamectl set-hostname xxx 6,所有节点将ipv4桥接流量传递到iptables链: cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl –system 7,所有节点开启ip转发: echo “net.ipv4.ip_forward = 1”>>/etc/sysctl.conf

二,开始安装

1,所有节点添加k8s源 cat > /etc/yum.repos.d/kubernetes.repo << EOF [k8s] name=k8s enabled=1 gpgcheck=0 baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ EOF

2,所有节点安装docker yum install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.9-3.el7.x86_64.rpm https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpm -y --nobest

所有节点都需要修改docker源:

默认为 /etc/docker/daemon.json,非默认路径需要修改 dockerd 的 –config-file,在该文件中加入如下内容:  {  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]  }

速度还是很慢,如下方法: http://f1361db2.m.daocloud.io 或者 "registry-mirrors":["https://f3lu6ju1.mirror.aliyuncs.com"]

3,所有节点安装k8s yum install kubeadm kubectl kubelet -y

4,所有节点启用docker systemctl enable docker systemctl start docker 5,所有节点启用kubelet systemctl enable kubelet 6,初始化master节点 kubeadm init
--apiserver-advertise-address=192.168.122.100
--image-repository=registry.aliyun.com/google_containers
--kubernetes-version=v1.18.0
--service-cidr=10.1.1.0/16
--pod-network-cidr=10.0.0.0/16 7,根据初始化完成后的提示在主节点执行

在其余各节点执行

8,在主节点执行docker images,结果如下

在其余节点执行,结果如下 9,在主节点执行kubectl get nodes,结果如下 10,在主节点安装网络组件,flannel(或者calico,或者其它) 安装前,查看,执行kubectl get pods -n kube-system,结果如下: 执行安装: wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f kube-flannel.yml

安装后,查看,执行kubectl get pods -n kube-system 如果出现 需要等待拉取镜像如果一分钟左右status没有变为Running,或者出现如下所示:

则是镜像源速度太慢所致 此时,修改kube-flannel.yml文件中的源即可解决 sed -i 's#quay.io/coreos#jmgao1983#g' kube-flannel.yml kubectl apply -f kube-flannel.yml 再次执行 kubectl get pods -n kube-system 有一个flannel镜像拉取失败,但是不影响使用,应该是有一个ok就可以了(这个后面发现是有问题的,对应节点状态是notready)

执行 kubectl get node 如果某个节点的status一直为Notready, 那么,在该节点如下操作 mkdir -p /etc/cni/net.d/ scp root@192.168.122.100/etc/cni/net.d/10-flannel.conflist /etc/cni/net.d/ 其中,192.168.122.100为任意一个状态正常的节点ip

这样的结果,才是正常状态 配置好后重启kubelet,docker,然后等待5分钟所有就可以拉取完所有镜像 状态终于变为Ready 后续加入两个从节点 注意:从节点加入后,需要在该节点重启kubelet,docker,并且等待该节点拉取镜像,运行容器 11,安装dashboard(web管理面板) wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml kubectl apply -f recommended.yaml 获取web管理面板所在节点 可以看见,web管理面板在节点node2,端口为30000 访问https://192.168.122.102:30000 获取token,然后使用token登录 kubectl -n kube-system describe $(kubectl -n kube-system get secret -o name | grep namespace) | grep token