前置環境,選擇三台干凈的虛擬機 假設 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