kubernetes(k8s)集群搭建

本文详细介绍了如何在三台CentOS7以上的虚拟机上手动搭建Kubernetes集群,包括关闭防火墙、selinux,禁用swap,设置主机名,配置hosts,开启iptables,同步时间,添加k8s源,安装kubeadm、kubelet和kubectl,初始化master节点,以及处理node节点加入集群的问题。
摘要由CSDN通过智能技术生成

搭建K8S集群,准备三台2核4g的虚拟机,操作系统选择centos7以上,安装好doker。

  • 三台机器前置准备
  • 关闭防火墙

        systemctl stop firewalld

        systemctl disable firewalld

  • 关闭selinux

        sed -i 's/enforcing/disabled/' /etc/selinux/config

  • 关闭swap

        vim /etc/fstab

        注释掉swap这行
                # /dev/mapper/centosswap swap swap defaults 0 0
        systemctl reboot          #重启生效
        free m          #查看下swap交换区是否都为0,如果都为0swap关闭成功
  • 给三台机器设置主机名

        hostnamectl set-hostname k8s-master

        hostnamectl set-hostname k8s-node1

        hostnamectl set-hostname k8s-node2

  • 给三台机器添加hosts,均执行下面命令,ip换成自己的

        vim /etc/hosts

        192.168.121.91 k8s-master
        192.168.121.82 k8s-node1
        192.168.121.83 k8s-node2

  • 将桥接的IPv4流量传递到iptables

        创建vim /etc/sysctl.d/k8s.conf

        添加

        net.bridge.bridge-nf-call-ip6tables = 1
        net.bridge.bridge-nf-call-iptables = 1

        sysctl --system        #使配置生效

  • 设置时间同步

        yum install ntpdate ‐y

        ntpdate time.windows.com

  • 添加k8s yum源

        vim /etc/yum.repos.d/kubernetes.repo

        添加以下代码

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=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.gpgernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

  • 查看是否安转过,如果有,卸载

       yum remove y kubelet kubeadm kubectl

  • 查看可用版本

         yum list kubelet --showduplicates | sort -r

  • 安装kubelet、kubeadm、kubectl指定版本,这里使用kubeadm安装集群

        yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

  • 开机启动kubelet

        systemctl enable kubelet

        systemctl start kubelet

初始化master节点 

kubeadm init --apiserver-advertise-address=192.168.121.91 --image-repository redistry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16

注意第一个ip要改成自己master节点的

在主节点上执行下面的命令 

#配置使用 kubectl 命令工具(类似docker这个命令)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#查看kubectl是否能正常使用
kubectl get nodes

#安装 Pod 网络插件
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
# 如果上面这个calico网络插件安装不成功可以试下下面这个
# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kubeflannel.yml

在所有k8s node机器执行主节点初始化后生成的代码,类似如下

kubeadm join 192.168.121.91:6443 --token ie2hbi.9deapempiv9l5doe \
    --discovery-token-ca-cert-hash sha256:b108b987be58f819e0615d52d943b3802131962fa453e4d0e9c18232c5058cdb

最后查看节点ready即成功,需要很长时间 

       kubectl get nodes

如果node节点进群失败,可以删除节点重新添加 

        要删除 k8s-node1 这个节点,首先在 master 节点上依次执行以下两个命令

kubectl drain k8s-node1 --delete-local-data --force --ignore-daemonsets
kubectl delete node k8s-node1

        执行后通过 kubectl get node 命令可以看到 k8s-node1 已被成功删除 

        接着在 k8s-node1 这个 Node 节点上执行如下命令

kubeadm reset

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值