zoukankan      html  css  js  c++  java
  • 部署k8s集群(二)

                    k8s   adm方式部署详解步骤

    本章详解K8sadm方式部署(也可参考官方部署文档 https://docs.rancher.cn/    目前rancher提供的解决方案rke是最快的部署方式,官网有非常详细的解释)

    本章部署步骤细致,更加详细了解部署过程

    本章字体颜色分类

    •        棕色是输入的命令语句
    •        绿色是编辑文本内容
    •        红色是标红重要路径
    •        黑色是旁白

    废话不多说,开始***************************************************************************************************

    一,先准备三台虚拟机(这里我是以我虚拟机来演示)

    centos7.6 k8s-master01 192.168.30.145
    centos7.6 k8s-node01 192.168.30.144
    centos7.6 k8s-node02 192.168.30.143

    在VM创建虚拟机时,将内存给到2G以上(这里我是2G),cpu内核总数给到4以上,如图:

     最后,一定要各机之间可以联通,且都能够ping通网络!!!

    ========================================================================================================


    以上准备工作做完后,开始为部署k8s初始化这三个节点机器
    每台主机修改主机名并做好映射(/etc/hosts)
    #hostnamectl set-hostname k8s-master01/node01/node02
    安装依赖包
    #yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
    设置防火墙关闭和设置空规则
    #systemctl stop firewalld && systemctl disable firewalld
    #yum -y install iptables-services && systemctl start iptables && systemctl enable iptables && iptables -F && service iptables save
    关闭selinux
    #swapoff -a &&sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab
    #setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/'  /etc/selinux/config
    调整内核参数
    #cat  > kubernetes.conf  << EOF
    net.bridge.bridge-nf-call-iptables=1
    net.bridge.bridge-nf-call-ip6tables=1
    net.ipv4.ip_forward=1
    net.ipv4.tcp_tw_recycle=0
    vm.swappiness=0
    vm.overcommit_memory=1
    vm.panic_on_oom=0
    fs.inotify.max_user_instances=8192
    fs.inotify.max_user_watches=1048576
    fs.file-max=52706963
    fs.nr_open=52796963
    net.ipv6.conf.all.disable_ipv6=1
    net.netfilter.nf_conntrack_max=2310720
    EOF
    #cp kubernetes.conf  /etc/sysctl.d/
    调整系统时区
    #timedatectl set-timezone Asia/Shanghai
    #timedatectl set-local-rtc 0
    #systemctl restart rsyslog
    #systemctl restart crond
    关闭系统不需要服务
    #systemctl stop postfix && systemctl disable postfix


    设置rsyslogd和systemd journald
    #mkdir /var/log/journal   
    #mkdir /etc/systemd/journald.conf.d
    #cat  /etc/systemd/journald.conf.d/99-proph et.conf   (内容如图:)


    #systemctl restart systemd-journald(如图)

     
    7.6升级内核(3.10内核不稳定,不利于接下了的操作,如图)

     所以升级到4以上内核
    #rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    #yum --enablerepo=elrepo-kernel install -y kernel-lt
    #grub2-set-default 'CentOS Linux (4.4.240-1.el7.elrepo.x86_64) 7 (Core)'

    切换完后,每个节点重启(reboot)一下机器,让系统自动识别并使用新内核

     以上初始化就完了,总结一下,要注意各机之间的互通,和可以通网,防火墙要关闭和空规则,还有要注意要关闭swap,调整内核参数。各各节点按以上步骤做完,系统的初始化就做完了,下一步就是开始部署k8s集群(一台主,两台节点)


    ===========================================================================================================
                                                                                  开始部署k8s
    部署调度(所有节点)
    #modprobe br_netfilter
    #cat > /etc/sysconfig/modules/ipvs.modules <<EOF
    #!/bin/bash
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    EOF
    #chmod 755 /etc/sysconfig/modules/ && bash /etc/sysconfig/modules/ipvs.modules
    #lsmod | grep -e ip_vs -e nf_conntrack_ipv4

     
    ********************每个节点安装docker前需要的软件包********************************

    #yum install -y yum-utils   device-mapper-persistent-data lvm2
    *********************导入阿里云镜像仓库并安装docker-ce*************************
    #yum-config-manager
        --add-repo 
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    #yum update -y && yum install -y docker-ce
    这里安装时间比较长(大约624个包)慢慢等待即可..........

    安装完后如图:


    ************创建docker目录***********
    #mkdir /etc/docker
    ********************配置daemon*(如图)*************

    创建docker-server目录

    #mkdir -p /etc/systemd/system/docker.service.d
    重启docker
    #systemctl daemon-reload && systemctl restart docker && systemctl enable docker

    ********************************************安装kubeadm(主从配置)********************************
    构建kubeadm源厂(如图):

    安装

    #yum -y install  kubeadm-1.15.1 kubectl-1.15.1   kubelet-1.15.1
    #systemctl enable kubelet.service

    ***********************master节点先导入镜像(kubeadm-basic.images.tar.gz)*********
    #tar -zxvf kubeadm-basic.images.tar.gz   
    编辑一个导入脚本
    cat > image.sh <<EOF
    #!/bin/bash
    ls /root/kubeadm-basic.images > /tmp/image.txt
    cd /root/kubeadm-basic.images

    for i in $( cat /tmp/image.txt )
    do
            docker load -i $i
    done
    rm -rf /tmp/image.txt
    EOF

    *****************初始化节点*****************************
    #kubeadm config print init-defaults > kubeadm-config.yaml

    #vim  kubeadm-config.yaml                        (如图)

     

     

    修改完成后
    初始化k8s
    #kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
    完成后,可以查看一些信息(#vim  kubeadm-init.log)这个文件里包含很多信息和提示,下面的加入节点都需要参看这个Log日志里内容,根据里面的提示,来完成相应的操作!!
    下面先简单解释一下kubeadm-init.log里的内容(如图:)

    内容过多,这里的先截取重要的信息进行说明

     如图上[kubelet-start] 这一行,表明了kubelet的配置写入文件"/var/lib/kubelet/config.yaml"位置

    如图[certs]这一行,指明了安全认证ca证书的存放位置  Using certificateDir folder "/etc/kubernetes/pki"

    文件里最后几行(如图)

     这几行显示初始化成功,这里指明需要运行一下几条命令作为一个常规用户

     # mkdir -p $HOME/.kube
     # sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
     # sudo chown $(id -u):$(id -g) $HOME/.kube/config

    后面几行提示要给POD部署一个网路到集群

    Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
      https://kubernetes.io/docs/concepts/cluster-administration/addons/

    ****************************加入主节点和其他工作节点*********************
    #vim kubeadm-init.log
    加入主按照提示来做
    加入其他节点提示在最后几行,复制粘贴到其他节点上运行(上一步操作)
    以上部署完成后,实时查看各节点是否运行成功(在主节点上)
    #kubectl   get  pod  -n   kube-system             -w

     添加子节点(Node)

    首先要确保node上有kubelet  kubeadm  kubeclt 已经安装,但是不要start

    此时,在主节点上,打开kubeadm-init.log文件,找到最后几行,复制粘贴到子节点,回车即可(如图)

     完成后,查看节点是否加入到集群中

    在主节点上查看

    #kubectl get nodes

     但是这里不是ready ,是因为没有配置子节点网络
    **********************************部署网络flannly*******************************

    #mkdir k8s-flannly

    #cd  k8s-flannly

    #wget  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    #kubectl create -f kube-flannel.yml

    查看是否运行成功

    #kubectl get pod -n kube-system

    #kubectl  get nodes   

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/123456likun/p/13886248.html
Copyright © 2011-2022 走看看