• CentOS7-部署kubernetes


    1 环境准备

     
    节点 主机名 IP OS
    Master     k8s-master        192.168.57.1       centos 7       
    Node1  k8s-node-1 192.168.57.2 centos 7

    2 离线包下载

       我已经整理好需要的可以@我

     

    3 设置主机名

         Master上执行:hostnamectl --static set-hostname k8s-master
         Node1上执行:hostnamectl --static set-hostname k8s-node-1
     
         重启
         reboot

    4 分别修改节点的hosts文件,并使内容保持一致

        # 编辑hosts文件

        vi /etc/hosts

       # 新增下面的内容,wq保存。

    192.168.57.1 k8s-master  
    192.168.57.2 k8s-node-1

    5 关闭防火墙

    systemctl stop firewalld       
    systemctl disable firewalld
    master节点与node节点做互信
        ssh-keygen
        ssh-copy-id k8s-node-1
     

    下面7-13步需要在Master和Node上都执行

     

    7 关闭selinux

        # 编辑config文件

        vi /etc/selinux/config

        将SELINUX=enforcing改为SELINUX=disabled,wq保存。

     

        # 当前临时关闭selinux(不重启临时关闭selinux的方式)

        setenforce 0
     

    8  关闭swap

        # 当前临时关闭虚拟内存

        swapoff -a
        若不关闭下面初始化master的时候会存在下图的错误:
        
     

        # 修改/etc/fstab文件

         vi /etc/fstab

     

       # 加#注释掉下面的语句屏蔽SWAP的自动挂载,wq保存

          #/dev/mapper/centos-swap swapswapdefaults0 0
     

    9 配置路由参数,防止kubeadm报路由警告

         # 将内容写入k8s.conf文件

     

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

     

         # 立即生效

          sysctl --system
    10 安装docker
       rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
       发现缺少依赖包的错误
     
       在mypackages目录下执行 
       yum -y install *.rpm
       然后再执行  
       rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
       
       rpm -ihv docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
    若出现下图情况需要先执行以下 rpm -ihv libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
     
       systemctl start docker && systemctl enable docker
       docker version
       
    11 导入镜像
      在k8s_images/docker_images目录下执行
        
         for i in $(ls *.tar);do docker load < $i;done
     
        
    12 安装kubelet  kubectl kubeadm包
         在k8s_images目录下执行    
         rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm
         rpm -ivh kubernetes-cni-0.6.0-0.x86_64.rpm kubelet-1.9.9-9.x86_64.rpm kubectl-1.9.0-0.x86_64.rpm
         rpm -ivh kubeadm-1.9.0-0.x86_64.rpm
               
    13 启动kubelet 
       systemctl start kubelet && sudo systemctl enable kubelet
     
    14  初始化MasterMaster执行
          kubeadm init --kubernetes-version=v1.9.0 --pod-network-cidr=10.244.0.0/16
        我执行的时候出现没有默认路由的错误,最后发现是我设置静态IP的时候忘了分配网关导致的,设置好网关重新执行
          发现存在错误
          
          cat /var/log/message
          
     
          是kubelet默认的cgroup的driver和docker的不一样导致的,docker默认的cgroupfs,kubelet默认为systemd,编辑10-                             kubeadm.conf修改为cgroupfs   (node也需要修改)
          vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
       
     
         重启
          systemctl daemon-reload && systemctl restart kubelet
          环境reset
          kubeadm reset
          重新初始化
          kubeadm init --kubernetes-version=v1.9.0 --pod-network-cidr=10.244.0.0/16
     
          kubeadm join 这句话要记录下来 node节点加入master的时候要用到
         
         忘了可以通过 kubeadm token list查看
         默认token 24小时就会过期,后续的机器要加入集群需要重新生成token
         kubeadm token create
         查看kubelet状态
          systemctl status kubelet
          
     
    15 此时root用户还不能使用kubelet控制集群需要,配置下环境变量Master执行

        对于非root用户

    mkdir -$HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config
        对于root用户
        export KUBECONFIG=/etc/kubernetes/admin.conf
        也可以直接放到~/.bash_profile
    echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
        source一下环境变量
    source ~/.bash_profile

       kubectl version查看版本

      
     
      
    16  安装网络,可以使用flannel、calico、weave、macvlan这里我用的flannelMaster执行
       
       kube-flannel.yml里面的网段要和 kubeadm --pod-network-cidr设置的一致 默认是10.244.0.0/16
       在k8s_images目录下执行 
       kubectl create -f kube-flannel.yml
     
     
    17 节点加入Master(Node执行
         执行上面保存的kubeadm join 这句话
         kubeadm join --token f22fa7.6a1d26bae177b5f4 192.168.57.1:6443 --discovery-token-ca-cert-hash             sha256:2043570da1eaebcf9229910b68b0840cc1080712f20e682504be317aae824d9c
     
    18 验证node 和pod 如下图代表Kubernetes 1.9.0 离线安装成功Master执行
      kubectl get nodes
      
     
      kubectl get pods --all-namespaces
       
     
      docker ps
       
     
    19 部署kubernetes-dashboardMaster执行
         编辑kubernetes-dashboard.yaml  设置type为 NodePort ,设置在范围30000-32767内的任意端口,我设置的是32000,(端口范围可以通过kube-apiserver.yaml修改)
       
     
         kubectl create -f kubernetes-dashboard.yaml
       
       
         设置验证方式默认验证方式有kubeconfig和token,这里都不用,我们使用basicauth的方式进行apiserver的验证。

         创建/etc/kubernetes/pki/basic_auth_file, 用于存放用户名、密码、用户ID。

          echo 'admin,admin,2' > /etc/kubernetes/pki/basic_auth_file

         编辑kube-apiserver.yaml,给kube-apiserver添加basic_auth验证

         vi /etc/kubernetes/manifests/kube-apiserver.yaml

     

         添加- --basic_auth_file=/etc/kubernetes/pki/basic_auth_file,wq保存。保存后若API pod停止了

         然后重启kubelet服务:

      systemctl restart kubelet        ,kubelet 会重启 kube-apiserver Pod

         ps:-与--之间的不是空格

         更新apiserver

         kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
     

        授权,k8s 1.6以后的版本都采用RBAC授权模型,给admin授权默认cluster-admin是拥有全部权限的,将admin和cluster-admin bind这样admin就有cluster-admin的权限。

        kubectl create clusterrolebinding login-on-dashboard-with-cluster-admin --clusterrole=cluster-admin --user=admin

    验证apiserver

    curl --insecure https://192.168.57.1:6443 -basic -u admin:admin
         
     

       

       通过火狐浏览器访问https://192.168.57.2:32000,192.168.57.2是节点IP

       

     

     基本下面输入用户名密码登录后页面   

     
    注:由于我在当前主机上装的时候忘了一些截图,所以上面部分截图是我在别的上装的时候的截图
  • 相关阅读:
    NOIP模拟 回文序列
    NOIP模拟 最佳序列
    BZOJ 2783 树
    BZOJ 3631 松鼠的新家
    洛谷 6道简单图论
    NOI模拟 颜色
    NOIP模拟 Game
    BZOJ1415 聪聪与可可
    Codeforces Round #443 (Div. 2) C: Short Program
    20171028洛谷NOIP模拟
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/9420611.html
Copyright © 2020-2023  润新知