k8s 安装指南

1.首先准备三台虚机
       1.最低硬件要求 CPU*2 内存1G
2.安装前的准备
   1.Master和各node节点都需要关闭防火墙,防火墙相关操作
   systemctl stop firewalld.service #停止firewall
   systemctl disable firewalld.service #禁止firewall开机启动
   firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
   1.配置主机名  
       vim /etc/hosts  
       196.168.2.1 node1
       196.168.2.2 node2
       196.168.2.3 node3
    echo -e '192.168.2.1 node1\n192.168.2.2 node2\n192.168.2.3 node3' >> /etc/hosts    
   2.开启iptables转发    
        使用命令cat /proc/sys/net/bridge/bridge-nf-call-iptables 查看值是否为1,如果为1则如下步骤不需要执行,否则请继续下面的步骤开启相关功能。
        1.1修改文件

        sed -i 7,9s/0/1/g /usr/lib/sysctl.d/00-system.conf

        1.2加载netfilter模块(可以使用 lsmod | grep netfilter命令查看是否加载了模块)

        modprobe br_netfilter

        2.1.3使做的更改生效

        sysctl -p  /usr/lib/sysctl.d/00-system.conf
     2.1验证一下iptables和ip6tables
         cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
         cat /proc/sys/net/bridge/bridge-nf-call-iptables
   2.关闭Swap交换空间    
     echo 'vm.swappiness = 0' >> /usr/lib/sysctl.d/00-system.conf
     sysctl -p /usr/lib/sysctl.d/00-system.conf
     关闭swap
           swapoff -a
    3.注释掉“/etc/fstab”文件中关于swap的挂载代码 (关闭开机自动挂载)      
    vim /etc/fstab
      #UUID=7dac6afd-57ad-432c-8736-5a3ba67340ad swap                    swap    defaults        0 0
      free m 查看swap使用
    4.关闭iptables、selinux和firewalld服务

     vim /etc/selinux/config

    [root@node1 ~]# getenforce
    Disabled
    [root@node1 ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    [root@node1 ~]# systemctl status iptables
    ● iptables.service - IPv4 firewall with iptables
       Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
3.kubeadm安装有2种方式
      1.科学上网使用google下载离线安装
      2.通过国内三方源镜像仓库 本文使用阿里云仓库
4.配置yum源
      1.配置docker仓库   
      wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      不想使用阿里云仓库 可选择 docker官方中国仓库 https://www.docker-cn.com/registry-mirror
      2.配置kubernetes仓库   
      vim /etc/yum.repos.d/kubernetes.repo
        [kubernetes]
        name=Kubernetes Repo
        baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
        gpgcheck=0
        gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
        enabled=1
  5.三台服务器都要安装 docker、kubelet、kubectl、kubeladm
    5.1 安装docker
      yum install -y docker-ce
      查看docker版本 docker version
      启动docker
      systemctl start docker


      加载配置文件
      sudo systemctl daemon-reload
      重启docker
      sudo systemctl restart docker
    5.2 安装kubelet kubectl kubeadm  

       yum install -y kubelet kubectl kubeadm
       
       查看一下kubelet的文件位置
        rpm -ql kubelet

        /etc/kubernetes/manifests
        /etc/sysconfig/kubelet
        /etc/systemd/system/kubelet.service
        /usr/bin/kubelet

        cat /etc/sysconfig/kubelet
        KUBELET_EXTRA_ARGS="--fail-swap-on=false"

        rpm -ql kubeadm

        /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
        /usr/bin/kubeadm

     5.3
        设置开机自启
        systemctl enable docker kubelet  


        #!/bin/bash
        images=(kube-apiserver:v1.12.0 kube-controller-manager:v1.12.0 kube-scheduler:v1.12.0 kube-proxy:v1.12.0 pause:3.1 etcd:3.2.24 coredns:1.2.2 kubernetes-dashboard-amd64:v1.10.0 tiller:v2.6.1 addon-resizer:1.8.4 flannel:v0.10.0-amd64 grafana:5.3.4 heapster-influxdb-amd64:v1.5.2 metrics-server-amd64:v0.3.1 )
        
        for ima in ${images[@]}
        do
           docker pull   registry.cn-shanghai.aliyuncs.com/wangting/$ima
           docker tag    registry.cn-shanghai.aliyuncs.com/wangting/$ima   k8s.gcr.io/$ima
           docker rmi  -f  registry.cn-shanghai.aliyuncs.com/wangting/$ima
           docker tag 0ebffe5ba8a7 gcr.io/kubernetes-helm/tiller:v2.6.1
           docker tag f0fad859c909 quay.io/coreos/flannel:v0.10.0-amd64
        done

     

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.6

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.13.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.13.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.13.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.13.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.2.24

 

docker tag fdb321fd30a0 k8s.gcr.io/kube-proxy:v1.13.1

docker tag 26e6f1db2a52 k8s.gcr.io/kube-controller-manager:v1.13.1

docker tag 40a63db91ef8 k8s.gcr.io/kube-apiserver:v1.13.1

docker tag ab81d7360408  k8s.gcr.io/kube-scheduler:v1.13.1

docker tag f59dcacceff4 k8s.gcr.io/coredns:1.2.6

docker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1

docker tag 3cab8e1b9802 k8s.gcr.io/etcd:3.2.24

        在master 执行

        kubeadm init --kubernetes-version=v1.13.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
      
        安装完成之后 复制保存控制台打印的日志

        安装网络插件
        kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml

        在node节点执行 将node加入集群中

        kubeadm join 192.168.137.221:6443 --token gp4v34.hnm681943ca32jz2 --discovery-token-ca-cert-hash sha256:fa2cee41c2adef7fbe060c3a680f00cae40b616d4683d8826257a091de1258f5
        查看节点信息
        kubectl get node
        查看namespace
        kubectl get namespace
    6.常用命令


      1.移除NODE节点

     #先将节点设置为维护模式(node2是节点名称)
     kubectl drain node2 --delete-local-data --force --ignore-daemonsets
     #然后删除节点
     kubectl delete node node2
     查看kubelet日志命令
     journalctl -u kubelet -f
     查看pod日志
     kubectl logs -f kube-apiserver-node2.ztpt.com --namespace=kube-system
     #-f 是滚动输出,就像是tail -f中的-f一样
     #kube-apiserver-node2.ztpt.com是pod名字

     如果忘记了kubeadm join怎么办?

    kubeadm join使用的token默认有效期24小时,过期后可使用kubeadm token create创建
    如果忘记了可使用kubeadm token list查看,如果过期了还是得重新创建
    如果连--discovery-token-ca-cert-hash的值也忘记了,那就用命令openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'查看吧!然后用新的token和ca-hash加入集群

 

Logo

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

更多推荐