美文网首页喜茶技术分享
本地环境搭建学习Kubernetes集群

本地环境搭建学习Kubernetes集群

作者: c80bbe47f715 | 来源:发表于2020-01-13 17:29 被阅读0次
    背景

    标题由于公司架构主要是采用公有云k8s运维部署,所以在学习了解过程中,记录本地安装k8s主要过程。
    本文主要记录了,在虚拟机环境下,安装Kubernetes的过程,其中有很多本地踩过的坑,撰写本文,
    也希望能够帮助到大家。

    1.安装说明

    安装环境 由于博主使用的是mac系统,所以,虚拟机使用的是Parallels Desktop(14.1.3),个人感觉这个是在mac很好用的虚拟机,安装很简单,网上都可以找到教程。

    • 虚拟机系统 CentOS7
    • 安装规划
      mster节点 1台
      node节点 1台
      虚拟机网络配置 主机能够ping上述虚拟机的任何一台;上述两台机之前需要能够互相ping通,而且需要保证master节点与node节点的IP地址保持不变。虚拟机网络配置这块,本文给不了教程,大家还需要搜索资料。如果是Parallels Desktop虚拟机,采用默认的就好。
      安装方法 采用Kubernetes提供的kebuadm进行安装。由于自己手动部署配置,很复杂,本文采用了Kubernetes自带的kubeadm进行安装。

    2.安装步骤

    2.1安装Docker

    1. 删除机器上的旧版Docker
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    2. 安装必要的一些系统工具
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
    3. 添加软件源信息
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    4. 更新并安装Docker-CE
    sudo yum makecache fast
    sudo yum -y install docker-ce
    
    5.开启Docker服务
    sudo service docker start
    
    6.添加用户组 配置系统开机启动
      # 添加用户组
      sudo groupadd docker
      sudo usermod -aG docker $USER
    
      #系统启动
      sudo systemctl enable docker
    
    7.安装成功后,可以使用docker version 查看docker的运行情况。

    以上的安装步骤,参考阿里云的安装说明,https://yq.aliyun.com/articles/110806。其中也包含其他系统的安装Docker说明。安装成功后,鉴于国内下载镜像速度的原因,也可以配置docker的镜像加速器,具体可参考阿里云的开源镜像市场,https://developer.aliyun.com/mirror。其中包含很多的源,后面用到k8s的国内源,在上面也可以找到。​​

    2.2 安装kubeadm,kubectl,kubelet

    在安装之前,主要是针对CentOS系统的一些配置,类似关闭内存共享,防火墙等等。

    # 1.关闭swap
     # 临时禁用
     sudo swapoff -a
     # 永久禁用(推荐)先打开对于文件,注释掉swap那一行
     vim /etc/fstab 
    
    # 2.关闭SELinux
     # 临时禁用
     setenforce 0
     # 永久禁用(推荐)
     sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
    
    # 3.关闭防火墙
     systemctl disable firewalld
     systemctl stop firewalld
    
    # 4.修改网络参数(如果这步不设置,后面安装会有问题)
     cat <<EOF > /etc/sysctl.d/k8s.conf 
     net.bridge.bridge-nf-call-ip6tables = 1 
     net.bridge.bridge-nf-call-iptables = 1 
     EOF
    
     sysctl --system
    
    # 5.修改国内安装的k8s镜像下载源(如果能够科学上网,可以直接使用google对应的官方安装文档,直接安装)
     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=0
     repo_gpgcheck=0
     gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg 
     https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
     EOF
    
     ## 重建yum缓存
     yum clean all 
     yum makecache fast 
     yum -y update
    
    # 6.执行安装
     # 这步执行的时间依赖于你自己的网络,会需要一段时间,采用以下命令会安装最新版本,如果按照指定版本需要带上版本号。如果在这一步指定了版本号,在集群初始化的时候,也必须加上版本号。
     yum install -y kubelet kubeadm kubectl
    
    
     # 安装成功后验证
     kubeadm version
    
     #设置开机启动
     systemctl enable kubelet && systemctl statt kubelet
    

    至此,以上的步骤(包括安装Docker)都必须在master与node节点中执行。

    2.3 初始化集群(初始化master)

    # 初始化k8s集群 注意命令中的版本号。由于之前安装 kubeadm kubectl kebulet 采用的是最新版本,所以在初始化的时候也必须制定对应的版本号。'--pod-network-cidr=10.244.0.0/16'参数,是由于需要安装fannel网络时,必须指定的。关于fannel网络及安装,大家可以查看相关资料。https://github.com/coreos/flannel/blob/master/Documentation/kubernetes.md。 
    # 在初始化成功后,安装日志会打印一段类似于‘kubeadm join 10.211.55.39:6443 --token jh7j30.3e4igzontf4vep3x --discovery-token-ca-cert-hash sha256:ca6086e0594aa2935bc1c6f2152739119c5179ddcdaf3a2bd95ea827c2d3e305’ 的日志,该命令就是node节点加入此集群的命令。
    # 初始化成功后,日志还会打印一些叫你执行的sh日志('mkdir -p $HOME/.kube 等等,总共3条'),目的主要是用户的相关操作,直接复制执行即可
    kubeadm init --image-repository registry.aliyuncs.com/google_containers -kubernetes-version v1.16.0 --pod-network-cidr=10.244.0.0/16
    
    
    # 安装fannel 大家可以参考kubeadm git地址:https://github.com/coreos/flannel#flannel
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

    此步骤,只需在master节点上执行。等待系统下载对应的镜像后,使用kubectl get pod --all-namespace来查看当前集群中的pod运行情况,待所有的pod处于running状态,及表示master初始化成功。

    在这里插入图片描述

    2.4 将node加入集群

    在node节点上,执行上述打印日志的‘kubeadm join .....’ 日志。然后,在maste节点上,执行kubectl get node,查看节点。如果类似于下图,则恭喜你,Kubernetes安装成功!

    在这里插入图片描述

    2.5 node节点ROLES为none处理

    在上述node截图中,如果ROLES列为none,则通过打标签来进行修复。其实,该列的实现就是通过标签来实现,不过这个标签比较特殊。如果master节点的ROLES为none,则可为master的节点打上标签node-role.kubernetes.io/master=;如果node节点的ROLES为none,则可为node节点打上标签node-role.kubernetes.io/node=

    总结:
    文章主要以实用参考,并没有提供每个步骤执行截图,所以对于新手,可能不太适合。仔细把整个流程首先梳理一遍,然后再动手,可能效果会更好。安装主要痛点就是在下载Kubernetes镜像问题,目前采用国内的阿里云的源,问题不大。不过也会可能出现下载不了的问题,我第一次安装的时候,在执行yum install -y kubelet kubeadm kubectl进行安装时,就提示下载不了对应的镜像,如果出现这种情况,要么就等阿里云同步成功,要么就使用其他的源,华为或者网易貌似也有。

    相关文章

      网友评论

        本文标题:本地环境搭建学习Kubernetes集群

        本文链接:https://www.haomeiwen.com/subject/qvrnactx.html