千家信息网

K8s(Kubernetes)简介及安装部署

发表于:2024-10-25 作者:千家信息网编辑
千家信息网最后更新 2024年10月25日,提纲:一.环境准备二.部署前操作借助ntp服务设置各节点的时间同步通过DNS完成各节点名称解析,测试环境主机,测试用hosts文件代替配置ssh免密登入关闭各节点iptables和firewalld服
千家信息网最后更新 2024年10月25日K8s(Kubernetes)简介及安装部署

提纲:

一.环境准备
二.部署前操作

  1. 借助ntp服务设置各节点的时间同步

  2. 通过DNS完成各节点名称解析,测试环境主机,测试用hosts文件代替

  3. 配置ssh免密登入

  4. 关闭各节点iptables和firewalld服务

  5. 禁用SELinux

  6. 禁用Swap设备

  7. 打开iptables桥接功能及路由转发

三.部署k8s集群

  1. 部署docker

  2. 部署kubernetes

  3. 配置Master节点初始化

  4. 在master安装flannel插入

  5. Node节点加入

  6. 在master上查看

一.环境准备

系统主机名ip
Centos7.5master4X.5X.44.101
Centos7.5node014X.5X.38.116
Centos7.5node024X.5X.39.27

二.部署前操作

  1. 借助ntp服务设置各节点的时间同步

    • 下载

      yum -y install chrony


    • 启动

      systemctl start chronyd && systemctl enable chronyd


    • 检测

      chronyc sources


  2. 通过DNS完成各节点名称解析,测试环境主机,测试用hosts文件代替

    • hostnamectl set-hostname master

    • 同理设置node01、node02

    • 配置各节点hosts

  3. 配置master配置ssh免密登入。

    ssh-keygen -t rsa


    ssh-copy-id node01


    ssh-copy-id node02
  4. 如有firewalld服务或iptables规则关闭各节点iptables和firewalld服务

    systemctl stop firewalld && systemctl disable firewalld


    iptables -F


  5. 禁用SELinux

    • 关闭临时

      setenforce 0


    • 永久关闭

      /etc/sysconfig/selinux 中改SELINUX=disabled


  6. 禁用Swap设备

    • 检查

      swapoff -a


      free


  7. 打开iptables桥接功能及路由转发

    • 各节点开启桥接。

      sysctl -a |grep bridge过滤bridge不存在就用下面命令加载br_netfiltermodprobe br_netfiltercat >> /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-iptables = 1net.bridge.bridge-nf-call-ip6tables = 1EOFsysctl -p /etc/sysctl.d/k8s.conf
    • 各节点开启转发。

      echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p

三.部署k8s集群

  1. 部署docker

    • 获取yum、安装、开启。

      wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum -y install docker-cesystemctl enable docker && systemctl start dockerdocker --version

  2. 部署kubernetes

    • 获取yum。

      cat > /etc/yum.repos.d/kubernetes.repo << EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
    • 安装、开机自启kubelet。


    yum -y install kubelet kubectl kubeadm    systemctl enable kubelet


  1. 配置Master节点初始化

    • 部署(由于访问k8s源达不到,用阿里源)。

      kubeadm version #查看安装的版本kubeadm init --kubernetes-version="v1.20.5" --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers #根据上面版本填写


    • 保存初始化中信息,方便节点加入。

    • 执行初始化中提示必要步骤

      mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
    • kubectl查看节点状态。

      kubectl get nodes


  1. 在master中安装flannel插入

    • 根据上图,状态是NotReady,安装flannel插件

      wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml如果wget下载有问题就用其他方法把yml文件下载下来kubectl apply -f kube-flannel.yml
    • 用kubectl查看状态是否变化为Ready。

      kubectl get nodes


  2. Node节点加入

    • 将 master初始中保存的 kueadm join ip:6443 --token **复制到node01、node02中执行

  3. 在master上查看

    • 查看节点是否加入。

      kubectl get nodes


    • 查看pod资源状态(Running正常)。

      kubectl get pod -n kube-system


0