安装与启动docker
安装包下载,提取码ggc9
server1:172.25.16.1(k8s-master)
server2:172.25.16.2(k8s-node1)
server3:172.25.16.3(k8s-node2)
清理swarm的服务,没有搭建可以跳过
server2和3
docker swarm leave
docker container prune
server1
docker swarm leave --force
docker container prune
在所有的server上安装kubelet服务并禁止swap分区开机自动挂载
k8s,提取码3xcu
cd ~/k8s/
yum install -y kubeadm-1.12.2-0.x86_64.rpm kubelet-1.12.2-0.x86_64.rpm kubectl-1.12.2-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm cri-tools-1.12.0-0.x86_64.rpm
swapoff -a
vim /etc/fstab
#/dev/mapper/rhel-swap swap swap defaults 0 0
systemctl start kubelet.service
systemctl enable kubelet.service
docker load -i kube-apiserver.tar
docker load -i kube-controller-manager.tar
docker load -i kube-scheduler.tar
docker load -i kube-proxy.tar
docker load -i pause.tar
docker load -i etcd.tar
docker load -i coredns.tar
docker load -i flannel.tar
初始化
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.25.16.1
这里可能会出现报错
我们需要用echo改变这个文件的内容
以下为正确的返回值
添加用户并且免密
useradd k8s
vim /etc/sudoers
vim /home/k8s/.bashrc
source <(kubectl completion bash)'
yum install bash-* -y
su - k8s
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
ctrl+d
cd ~/k8s/
cp kube-flannel.yml /home/k8s
切换回k8s,根据配置文件开应用
su - k8s
kubectl apply -f kube-flannel.yml
sudo docker ps
把server2和3添加为节点
添加节点的命令是从master初始化的返回值复制过来的
swapon -s
modprobe ip_vs_wrr
modprobe ip_vs_sh
kubeadm join 172.25.16.1:6443 --token i0m1dj.zeobiqxin6vg9vu6 --discovery-token-ca-cert-hash sha256:654693e884e91cda7655ed5bcfd7fdf1db3e908b9147196502a867375f5043d9
kubectl get nodes
注意此时要把网关设置好
真机开启火墙策略
确保虚拟机能上网
查看所有配置的状态
kubectl get pod --all-namespaces
如果多次刷新都不是全running,可以尝试删除报错的NAME,此时服务会自动重新添加,达到重启的效果
kubectl delete pod coredns-576cbf47c7-bx8cl -n kube-system