前置环境,选择三台干净的虚拟机 假设 master为A 另外两个slave为B C
把各自的域名和ip在hosts文件配置好:
xx.xx,xx,xx AAA
xx.xx,xx,xx BBB
xx.xx,xx,xx CCC
vi /etc/hosts
master slave 即 A B C 都要做的(声明:前面带 ---表示执行的命令):
关闭防火墙
--- systemctl stop firewalld
--- systemctl disable firewalld
关闭 swap
--- swapoff -a
--- setenforce 0
避免每次要关闭 swap,需要修改一下文件,vi /etc/fstab 删除里面带 swap的那一行。此操作为可选
vi /etc/selinux/config disabled 也是为可选,目的是避免每次开机需要 setenforce 0
--- sed -i 's/enforcing/disabled/' /etc/selinux/config
安装 docker 参考资料:https://www.linuxprobe.com/docker-installation-configuration.html
执行:
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgckeck=0
repo_gpgcheck=0
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 kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3
--- systemctl enable kubelet
--- systemctl start kubelet
接下来操作master
运行 master_images 文件,运行前 修改权限 -- chmod 700 master_images.sh
执行:
kubeadm init --apiserver-advertise-address=[master的IP] --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
如果报错,出现什么 bridge-nf-call-iptables
执行: echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
如果执行成功:会出现如下东东:
东东1:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
东东2:
kubeadm join master IP:6443 --token 2n62km.lmo93soot3kp4r4u \
--discovery-token-ca-cert-hash sha256:fb1b0cb8b3481fd7ab12e583c9ecfa0653136b26d268563ebd66de24755d2541
执行 东东1
申请 kube-flannel.yml
kubectl apply -f kube-flannel.yml
然后在 两个 slave上执行:
东东2
到此已经安装完成,接下来,测试一下是否安装成功:
-- kubectl get pods --all-namespaces
-- kubectl get nodes
生成永久token
kubeadm token create ttl 0 --print-join-command