环境:4台服务器,1台master(192.168.2.248),3台node(192.168.2.249~251)
前提:都安装好Docker
修改主机名
每台主机都要修改
hostnamectl set-hostname master hostnamectl set-hostname node1 hostnamectl set-hostname node2 hostnamectl set-hostname node3
修改Cgroup驱动
由于我们是在虚拟机的场景下运行,硬件资源比较紧缺,因此我们还需要修改Cgroup的驱动,将每一台主机的驱动改为systemd。
cat </etc/docker/daemon.json { "exec-opts":["native.cgroupdriver=systemd"] } EOF
systemctl restart docker #重启 docker info | grep Cgroup #查看驱动
安装完Docker执行命令docker info时如果报以下警告
WARNING: bridge-nf-call-iptables is disabled WARNING:bridge-nf-call-ip6tables is disabled
执行命令vim /etc/sysctl.conf,在文件中追加以下内容后保存退出
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-arptables = 1
关闭swap分区
每台主机都要关闭
swapoff -a #临时关闭 sed -i '/swap/s/^(.*)$/#1/g' /etc/fstab #永久关闭,注释/ext/fstab/的/dev/mapper/centos-swap cat /etc/fstab #查看是否注释
su -root
添加解析记录
cat >>/etc/hosts <kubelet kubeadm kubectl安装
配置Kubernetes的yum仓库cat >/etc/yum.repos.d/kubernetes.repo < yum install kubelet kubeadm kubectl -ysystemctl enable kubelet部署Kubernetes Master准备coredns镜像
docker pull coredns/coredns docker tag coredns/coredns registry.aliyuncs.com/google_containers/corednskubeadm init --apiserver-advertise-address 192.168.2.248 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16–apiserver-advertise-address 192.168.2.248 填写你自己master的IP地址
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/confignode节点加入K8S集群建议不要在node节点运行kublet服务,不然会导致join失败,如果已经运行,建议执行kubeadm reset然后删除提示的文件和目录。
kubeadm join 192.168.2.248:6443 --token m5p64y.x4x1k0hthzic9ss4 --discovery-token-ca-cert-hash sha256:6e43392975c729de140d8f11bb8375844461b19b3be1686f0453e64b43380fe4默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:
kubeadm token create --print-join-command报错就重启docker服务,问题就会解决。
master查看node节点状态
kubectl get nodes现在还没有准备好
删除节点可以使用命令
kubectl drain node1 --delete-emptydir-data --force --ignore-daemonsets node/node1 kubectl delete node node1kubectl get pods -n kube-system -o widemaster安装网络插件fanelwget https://raw.githubusercontent.com/yutao517/code/main/kube-flannel.yml kubectl apply -f kube-flannel.ymlkubectl get nodes -n kube-system -o wide



