zoukankan      html  css  js  c++  java
  • Kubernetes-3.安装

    • docker version:19.03.14
    • kubernetes version:1.19.4

    本文介绍使用kubeadm安装Kubernetes集群的简单过程。

    使用kubeadm安装k8s过程

    各节点安装的软件及操作:

    1. master,nodes:安装docker、kubelet、kubeadm、kubectl
    2. master:kubeadm init
    3. nodes:kubadm join

    安装

    基本配置

    1. 关闭iptables、firewalld、selinux
    2. br_filter
    # 未启用模块则无此目录及文件;通过modprobe br_netfilter命令启用
    # 查看值是否均为1
    cat /proc/sys/net/bridge/bridge-nf-call-iptables
    cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
    
    1. 替换安装源
      替换安装源为国内速度较快的源

    使用阿里云docker源安装docker

    # step 1: 安装必要的一些系统工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    # Step 2: 添加软件源信息
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # Step 3: 更新并安装Docker-CE
    yum makecache fast
    yum -y install docker-ce
    # Step 4: 开启Docker服务
    service docker start
    
    # 注意:
    # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
    # vim /etc/yum.repos.d/docker-ee.repo
    #   将[docker-ce-test]下方的enabled=0修改为enabled=1
    #
    # 安装指定版本的Docker-CE:
    # Step 1: 查找Docker-CE的版本:
    # yum list docker-ce.x86_64 --showduplicates | sort -r
    #   Loading mirror speeds from cached hostfile
    #   Loaded plugins: branch, fastestmirror, langpacks
    #   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
    #   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
    #   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
    #   Available Packages
    # Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
    #  yum -y install docker-ce-[VERSION]
    

    使用阿里云kebernetes源安装kubernetes

    # 由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 yum install -y --nogpgcheck kubelet kubeadm kubectl 安装
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [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
    yum install -y kubelet kubeadm kubectl
    systemctl enable kubelet && systemctl start kubelet
    
    1. 时间一致
      确认服务器间时间同步一致
    2. 更换docker仓库
    # 使用aliyun docker仓库或其它
    mkdir -p /etc/docker
    tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://4bu92zt0.mirror.aliyuncs.com"]
    }
    EOF
    systemctl daemon-reload
    systemctl restart docker
    

    初始化kubernetes master

    初始化命令

    # 指定网络信息;10.244.0.0/16是flannel的默认地址段,学习使用期间为了省事建议不修改。
    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12
    

    错误解决

    [ERROR Swap]: running with swap on is not supported
    
    # 关闭Swap或添加ignore选项参数忽略
    # 更改配置文件
    cat /etc/sysconfig/kubelet
    KUBELET_EXTRA_ARGS="--fail-swap-on=false"
    # 使用错误忽略参数再次执行
    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12 --ignore-preflight-errors=Swap
    

    初始化过程会拉取一些相关docker镜像包,也可以通过命令提前拉取,减少等待

    kubeadm config images pull
    

    初始化中的一些问题

    安装kubernetes必须组件的一些镜像存储于google镜像站点,无法正常访问,可以通过网络上其他人已经共享的同步好的仓库来拉取这些必要的镜像

    # 查看所要拉取的镜像
    kubeadm config images list
    
    # 通过网络上其他人已共享的仓库拉取;指定仓库地址
    kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.0.0.0/12 --ignore-preflight-errors=Swap --image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"
    

    初始化完成后的一些操作

    按照提示进行以下操作

    # 配置kubectl向API服务器请求时的验证信息
    mkdir -p $HOME/.kube
    cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    

    初始化完成后记得保存以下信息,然后在nodes节点上执行以下命令使其加入kubernetes集群

    kubeadm join 172.16.25.130:6443 --token ****** 
        --discovery-token-ca-cert-hash ******
    

    确认可用

    # 执行此命令会显示client和server版本,能够显示则表示两者均正常
    kubectl version
    
    # 查看当前kubernetes namespaces
    kubectl get ns
    
    # 查看当前pods,指定查看namespace为kube-system中的pods
    kubectl get pods -n kube-system
    
    # 查看当前集群中的nodes
    kubectl get nodes
    
    # 查看组件状态
    # 查看组件状态时scheduler和controller-manager可能显示为unhealthy
    # 由于默认这两个pod的非安全端口没有开启,健康检查时报错,但是由于本身服务是正常的,只是健康检查的端口没启,所以不影响正常使用。
    # 若启用则修改/etc/kubernetes/manifests/kube-controller-manager.yaml和/etc/kubernetes/manifests/kube-scheduler.yaml中--port=0选项,将此行注释或删除后restart kubelet即可
    kubectl get cs
    
    

    node节点

    1. 安装docker、kubectl、kubelet、kubeadm
    2. 使用命令加入kubernetes集群
    kubeadm join 172.16.25.130:6443 --token ****** 
      --discovery-token-ca-cert-hash ******
    

    部署flannel

    
    # 安装完成后可通过kubectl get pod -n kube-system查看到flannel已经running
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
    
  • 相关阅读:
    Latex文件如何拆分进行独立编译?
    梯度下降优化算法
    Google大脑科学家贾杨清(Caffe缔造者)-微信讲座
    Jeecg 如何执行批量insert或者update操作,高效率
    【JEECG_3.7.1】列表多表头的设计
    t:formvalid中定义callback函数
    Excel导入的时候日期格式会变成double式的String数据处理
    sql 跨表修改的方式
    js判断字符串str是否包含字符串substr
    帆软报表和jeecg的进一步整合--ajax给后台传递map类型的参数
  • 原文地址:https://www.cnblogs.com/ioops/p/14313115.html
Copyright © 2011-2022 走看看