K8s(Kubernetes)简介及安装部署
更新:HHH   时间:2023-1-7


提纲:

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

  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_netfilter
      modprobe br_netfilter
      
      cat >> /etc/sysctl.d/k8s.conf << EOF
      net.bridge.bridge-nf-call-iptables = 1
      net.bridge.bridge-nf-call-ip6tables = 1
      EOF
      
      sysctl -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.repo
      yum -y install docker-cesystemctl enable docker && systemctl start docker
      docker --version

  2. 部署kubernetes

    • 获取yum。

      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
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      EOF
    • 安装、开机自启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/.kube
      sudo 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


返回云计算教程...