1. 系统配置(master和node节点都配置)

    1. 修改yum源为阿里源

      1. 备份本地yum源

        mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

      2. 获取阿里yum源配置文件

        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

      3. 更新yum缓存

        yum makecache

      4. 查看当前yum源

        yum repolist
        已加载插件:fastestmirror, langpacks
        Loading mirror speeds from cached hostfile
        * base: mirrors.aliyun.com
        * extras: mirrors.aliyun.com
        * updates: mirrors.aliyun.com
        源标识

    2. 关闭防火墙(必须关闭)

      systemctl stop firewalld
      systemctl disable firewalld

    3. 关闭selinux

      setenforce 0

    4. 关闭交换区

      swapoff -a    临时关闭
      free     可以通过这个命令查看swap是否关闭了
      vim /etc/fstab  永久关闭
      注释掉swap行数据

    5. 添加主机名与IP对应关系

      vim /etc/hosts
      添加如下内容:
      10.3.133.115     k8s-master
      10.3.133.116     k8s-node1
      10.3.133.117     k8s-node2

    6. 将桥接的IPV4流量传递到iptables的链接

      cat > /etc/sysctl.d/k8s.conf << EOF
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      EOF
      
      sysctl --system

    7. 安装docker

      1. 下载并安装docker

        wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo
        yum install -y docker-ce

      2. 设置docker的配置

        # 创建docker-root的目录
        mkdir /data
        # 创建docker配置存储的目录
        mkdir /etc/docker
        # 设置docker配置文件(注意:"exec-opts": ["native.cgroupdriver=systemd"])
        sudo vim /etc/docker/daemon.json
        内容如下:
        {
          "exec-opts": ["native.cgroupdriver=systemd"],
          "log-driver": "json-file",
          "log-opts": {
            "max-size": "100m"
          },
          "storage-driver": "overlay2",
          "storage-opts": [
            "overlay2.override_kernel_check=true"
          ],
          "data-root": "/data/docker"
        }

      3. 设置开机启动

        systemctl enable docker
        systemctl start docker

      4. 查看docker版本

        docker --version
        Docker version 20.10.10, build b485636

      5. 添加阿里云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

      6. 安装kubeadm,kubelet和kubectl

        在部署kubernetes时,要求master node和worker node上的版本保持一致,否则会出现版本不匹配导致奇怪的问题出现。
        使用yum安装程序时,提示xxx.rpm公钥尚未安装
        使用 yum install xxx.rpm --nogpgcheck 命令格式跳过公钥检查
        yum install -y kubelet kubectl kubeadm --nogpgcheck
        1. 设置kubelet开机启动

           
          systemctl enable kubelet
           

  2. k8s安装配置

    1. 规划
      10.3.133.115     k8s-master
      10.3.133.116     k8s-node1
      10.3.133.117     k8s-node2

    2. 部署Kubernetes Master(Master节点)

      1. 初始化kubeadm
        # 10.3.133.115 master节点IP
        kubeadm init \
        --apiserver-advertise-address=10.3.133.115 \
        --image-repository registry.aliyuncs.com/google_containers \
        --kubernetes-version v1.22.3 \
        --service-cidr=10.1.0.0/16 \
        --pod-network-cidr=10.244.0.0/16

      2. 初始化成功标识

      3. 使用kubectl工具

        复制如下命令直接执行
        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 node

    3. 安装Pod网络插件(CNI) 10.1 安装插件
      1. 安装命令如下:建议本地安装
        kubectl apply -f kube-flannel.yml

        文件原始地址:kube-flannel.yml/kube-flannel.yml at master · caoran/kube-flannel.yml · GitHub

        原始地址文件使用会有警告,经修改后的最终文件如下:kube-flannel.yml 

      2. 成功的标识
      3. 查看是否部署成功
        kubectl get pods -n kube-system
         
        1.   pod全部为running表示成功
      4. 再次查看node,可以看到状态为ready

    4. Node节点加入集群 向集群添加新节点,执行在kubeadm init输出的kubeadm join命令: 复制上面命令,在node节点上执行
      清空当前初始化环境
      kubeadm reset
      直接命令快捷生成(在master上执行):kubeadm token create --print-join-command
      kubeadm join 10.3.133.115:6443 --token ctn46e.qw4vlqs9t55j85wx \
          --discovery-token-ca-cert-hash sha256:548f0da61990b628356f91bef7784d5113ece69bf8c7f19b132d5c256f921c26

  3. 部署dashboard的Web-UI界面

    1. 下载文件原始地址,修改后的最终文件:最终文件
    2. 编辑文件
      //编辑yaml文件
      [root@docker-k8s01 ~]# vim recommended.yaml 
      //跳转到40行左右,修改其对应的service,类型配置为Nodeport
      kind: Service
      apiVersion: v1
      metadata:
        labels:
          k8s-app: kubernetes-dashboard
        name: kubernetes-dashboard
        namespace: kubernetes-dashboard
      spec:
        type: NodePort    //添加类型为NodePort
        ports:
          - port: 443
            targetPort: 8443
            nodePort: 31010      //映射到宿主机的端口为31010
        selector:
          k8s-app: kubernetes-dashboard
      //执行yaml文件
      [root@docker-k8s01 ~]# kubectl apply -f recommended.yaml 
      //查看Pod是否运行
      [root@docker-k8s01 ~]# kubectl get pod -n kubernetes-dashboard 
      //查看其详细信息
      [root@docker-k8s01 ~]# kubectl describe pod -n kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-sbcvw 
      //确保该yaml文件提供的pod都正常运行
      [root@docker-k8s01 ~]# kubectl get svc -n kubernetes-dashboard 
      NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
      dashboard-metrics-scraper   ClusterIP   10.103.65.117   <none>        8000/TCP        3m3s
      kubernetes-dashboard        NodePort    10.110.154.42   <none>        443:31010/TCP   3m3s

    3. 访问测试:这里使用的dashboard版本较高,相较于之前的版本访问必须使用火狐浏览器,这里不需要。
      1. 访问https://10.3.133.115:31010(访问集群内的任意节点IP都可以,注意是https)
        1. 选择token方式,另一种方式待研究 
      2. 使用如下方式获取token值

      3. 将Token值粘贴到下面
        1.  至此,就可以在web界面进行监控群集节点的信息,及创建资源对象
        2. 注:一般不会在这上面进行创建资源对象

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐