zoukankan      html  css  js  c++  java
  • K8S-kubeadm集群安装

    K8S-kubeadm集群安装

    一.环境准备

                 1.服务器信息

                     

                  2.系统初始(所有服务器)

                          2.1修改主机名

     hostnamectl set-hostname <主机名>

                         2.2添加主机hosts

    [root@m1 ~]# cat /etc/hosts
    ::1    localhost    localhost.localdomain    localhost6    localhost6.localdomain6
    127.0.0.1    localhost    localhost.localdomain    localhost4    localhost4.localdomain4
    #K8S集群
    192.168.0.114 M1
    192.168.0.115 M2
    192.168.0.116 M3
    192.168.0.117 W1
    192.168.0.118 W2

                           2.3 更新软件包,安装依赖

    # 更新yum
    [root@m1 ~]# yum -y update
    # 重启
    [root@m1 ~]# reboot
    # 安装依赖包
    [root@m1 ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

                          2.4 关闭防⽕墙、swap,重置iptables

    # 关闭防⽕墙
    [root@m1 ~]# systemctl stop firewalld && systemctl disable firewalld
    # 重置iptables
    [root@m1 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
    # 关闭selinux
    [root@m1 ~]#setenforce 0
    # 关闭dnsmasq(否则可能导致docker容器⽆法解析域名)
    [root@m1 ~]#systemctl stop dnsmasq.service && systemctl disable dnsmasq             

                           2.5 系统参数设置

    [root@m1 ~]# cat > /etc/sysctl.d/kubernetes.conf <<EOF
    net.bridge.bridge-nf-call-iptables=1
    net.bridge.bridge-nf-call-ip6tables=1
    net.ipv4.ip_forward=1
    vm.swappiness=0
    vm.overcommit_memory=1
    vm.panic_on_oom=0
    fs.inotify.max_user_watches=89100
    EOF
    [root@m1 ~]# modprobe br_netfilter
    [root@m1 ~]# sysctl -p /etc/sysctl.d/kubernetes.conf

                  3. 安装docker(所有节点)

                         3.1 卸载旧版本

    较旧的Docker版本称为dockerdocker-engine如果已安装这些程序,请卸载它们以及相关的依赖项。
    yum remove docker docker
    -client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

                        3.2 安装docker

    1: 安装必要的一些系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    2: 添加软件源信息
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3: 更新并安装 Docker-CE
    yum makecache fast
    4: 查找Docker-CE的版本:
    yum list docker-ce.x86_64 --showduplicates | sort -r
    yum -y install docker-ce-19.03.9-3.el7
    5: 开启Docker服务
    systemctl start docker
    6: 开机启动
    systemctl enable docker
    
    
    如果您无法使用Docker的仓库来安装Docker,则可以下载该 .rpm文件以供手动安装。每次要升级Docker时,都需要下载一个新文件。
    1、访问 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 并下载.rpm您想要安装的Docker版本的文件。
    2、安装Docker CE,安装docker之前需要安装docker-ce-selinux 将下面的路径更改为您下载Docker软件包的路径。
    yum install docker-ce-selinux-***.ce-1.el7.centos.noarch.rpm
    yum install docker-ce-***.ce-1.el7.centos.x86_64.rpm
    3、启动Docker。
    systemctl start docker

                           3.3 修改docker 安装目录

                            方法一:软连接

    1 docker info  #查看docker的基本信息
    2 #停止docker服务
    3 systemctl stop docker
    4 #备份原目录
    5 cp -r /var/lib/docker  /data/docker
    6 mv /var/lib/docker /var/lib/docker.bak
    7 ln -s /data/docker /var/lib/docker
    8 systemctl start docker

                         方法二:新建或者编辑 daemon.json 

    vim /etc/docker/daemon.json 
    {
        "data-root": "/data/docker"
    }
    #重启docker
    systemctl restart docker 

                       方法三:修改docker配置文件

    #编辑文件 
    vim /usr/lib/systemd/system/docker.service 
    [Service]
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data/docker
    #重启docke
     systemctl daemon-reload 
     systemctl restart docker 

    二.K8S安装必要⼯具(所有节点)

          1 ⼯具说明

    1 kubeadm: 部署集群⽤的命令
    2 kubelet: 在集群中每台机器上都要运⾏的组件,负责管理pod、容器的⽣命周期
    3 kubectl: 集群管理⼯具(可选,只要在控制集群的节点上安装即可)

            2.配置yum源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes] name
    =Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF

             3.安装工具

    #找到要安装的版本号
    yum list kubeadm --showduplicates | sort -r
    #安装1.18.4-1
    yum install -y kubeadm-1.18.4-1 kubelet-1.18.4-1 kubectl-1.18.4-1

              4.设置kubelet的cgroupdriver

    # 设置kubelet的cgroupdriver(kubelet的cgroupdriver默认为systemd,如果上⾯没有设置docker的exec-opts为systemd,这⾥就需要将kubelet的设置为cgroupfs)
    # 由于各⾃的系统配置不同,配置位置和内容都不相同
    # 1. /etc/systemd/system/kubelet.service.d/10-kubeadm.conf(如果此配置存在的情况执⾏下⾯命令:)
    [root@m1 ~]# sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
    # 2. 如果1中的配置不存在,则此配置应该存在(不需要做任何操):/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
      # 启动kubelet
     [root@m1 ~]# systemctl enable kubelet && systemctl start kubelet

    kubeadm添加新master或node.    注意:需拷贝etcd ca client证书

    一、首先在master上生成新的token

    kubeadm token create --print-join-command
    1
    kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b

    二、在master上生成用于新master加入的证书

    kubeadm init phase upload-certs --experimental-upload-certs
    1
    [root@master ~]# kubeadm init phase upload-certs --experimental-upload-certs
    Flag --experimental-upload-certs has been deprecated, use --upload-certs instead
    W1228 17:15:02.356743 27154 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL “https://dl.k8s.io/release/stable-1.txt”: Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    W1228 17:15:02.356872 27154 version.go:99] falling back to the local client version: v1.15.1
    [upload-certs] Storing the certificates in Secret “kubeadm-certs” in the “kube-system” Namespace
    [upload-certs] Using certificate key:
    e799a655f667fc327ab8c91f4f2541b57b96d2693ab5af96314ebddea7a68526

    三、添加新node

    kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b

    四、添加新master,把红色部分加到–experimental-control-plane --certificate-key后。

    kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b --experimental-control-plane --certificate-key e799a655f667fc327ab8c91f4f2541b57b96d2693ab5af96314ebddea7a68526

                          

  • 相关阅读:
    高级UIKit-04(NSUserDefaults、NSKeyedArchiver、对象归档方法)
    mac忘记登陆密码解决
    JAVA实现各种排序算法----更新中----
    MFC:DoModal 函数的用法
    Serialize序列化函数(MFC)
    Java语法学习5
    数据库VC++课程设计:动漫新番信息管理系统(MFC+数据库ODBC接口)+外加两个副作品
    为什么Java byte 类型的取值范围是-128~127
    Java语法学习4
    MySQL-5.7.17-winx64 Windows环境下的配置
  • 原文地址:https://www.cnblogs.com/hushaojie/p/13198127.html
Copyright © 2011-2022 走看看